From f673df6d8437ba3928b536321e9b5942a025e131 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Thu, 16 May 2024 11:48:19 -0500 Subject: [PATCH 01/53] refactor: Convert helper functions to TypeScript (#2132) --- .github/workflows/ci.yml | 4 ++-- src/CoreManager.ts | 21 ++++++++--------- src/ParseObject.ts | 10 ++++---- src/__tests__/escape-test.js | 2 +- ...ntainsObject.js => arrayContainsObject.ts} | 4 ---- ...{canBeSerialized.js => canBeSerialized.ts} | 4 ---- src/{decode.js => decode.ts} | 4 ---- src/{encode.js => encode.ts} | 14 ++++------- src/{equals.js => equals.ts} | 2 +- src/{escape.js => escape.ts} | 4 ---- ...ocableSession.js => isRevocableSession.ts} | 4 ---- src/{parseDate.js => parseDate.ts} | 6 +---- src/{promiseUtils.js => promiseUtils.ts} | 23 ++++++++++--------- src/{unique.js => unique.ts} | 8 ++----- ...{unsavedChildren.js => unsavedChildren.ts} | 6 +---- src/uuid.ts | 2 +- types/CoreManager.d.ts | 10 ++++---- types/arrayContainsObject.d.ts | 2 +- types/canBeSerialized.d.ts | 2 +- types/encode.d.ts | 2 +- types/isRevocableSession.d.ts | 3 --- types/parseDate.d.ts | 3 --- types/promiseUtils.d.ts | 12 +++++++--- types/unique.d.ts | 2 +- types/unsavedChildren.d.ts | 4 ++-- 25 files changed, 60 insertions(+), 98 deletions(-) rename src/{arrayContainsObject.js => arrayContainsObject.ts} (96%) rename src/{canBeSerialized.js => canBeSerialized.ts} (98%) rename src/{decode.js => decode.ts} (94%) rename src/{encode.js => encode.ts} (93%) rename src/{equals.js => equals.ts} (96%) rename src/{escape.js => escape.ts} (93%) rename src/{isRevocableSession.js => isRevocableSession.ts} (85%) rename src/{parseDate.js => parseDate.ts} (88%) rename src/{promiseUtils.js => promiseUtils.ts} (70%) rename src/{unique.js => unique.ts} (81%) rename src/{unsavedChildren.js => unsavedChildren.ts} (96%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c3499115..f310bdf84 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,10 +25,10 @@ jobs: - run: npm ci - name: Build Types run: npm run build:types - - name: Lint Types - run: npm run lint:types - name: Test Types run: npm run test:types + - name: Lint Types + run: npm run lint:types check-docs: name: Check Docs timeout-minutes: 5 diff --git a/src/CoreManager.ts b/src/CoreManager.ts index 9ee9697ba..dff47e32a 100644 --- a/src/CoreManager.ts +++ b/src/CoreManager.ts @@ -15,9 +15,6 @@ import type ParseConfig from './ParseConfig'; import type LiveQueryClient from './LiveQueryClient'; import type ParseSchema from './ParseSchema'; import type ParseInstallation from './ParseInstallation'; -import type ParseQuery from './ParseQuery'; -import type * as ParseOp from './ParseOp'; -import type ParseRole from './ParseRole'; type AnalyticsController = { track: (name: string, dimensions: { [key: string]: string }) => Promise, @@ -598,7 +595,7 @@ const CoreManager = { return config['HooksController']!; }, - setParseOp(op: typeof ParseOp) { + setParseOp(op: any) { config['ParseOp'] = op; }, @@ -606,35 +603,35 @@ const CoreManager = { return config['ParseOp']!; }, - setParseObject(object: typeof ParseObject) { + setParseObject(object: any) { config['ParseObject'] = object; }, - getParseObject(): ParseObject { + getParseObject() { return config['ParseObject']!; }, - setParseQuery(query: typeof ParseQuery) { + setParseQuery(query: any) { config['ParseQuery'] = query; }, - getParseQuery(): ParseQuery { + getParseQuery() { return config['ParseQuery']!; }, - setParseRole(role: typeof ParseRole) { + setParseRole(role: any) { config['ParseRole'] = role; }, - getParseRole(): ParseRole { + getParseRole() { return config['ParseRole']!; }, - setParseUser(user: typeof ParseUser) { + setParseUser(user: any) { config['ParseUser'] = user; }, - getParseUser(): ParseUser { + getParseUser() { return config['ParseUser']!; }, }; diff --git a/src/ParseObject.ts b/src/ParseObject.ts index 23c699524..f00be9eef 100644 --- a/src/ParseObject.ts +++ b/src/ParseObject.ts @@ -2385,7 +2385,7 @@ const DefaultController = { return Promise.resolve(target); }, - save(target: ParseObject | Array, options: RequestOptions): Promise | ParseFile> { + save(target: ParseObject | null | Array, options: RequestOptions): Promise | ParseFile> { const batchSize = options && options.batchSize ? options.batchSize : CoreManager.get('REQUEST_BATCH_SIZE'); const localDatastore = CoreManager.getLocalDatastore(); @@ -2452,11 +2452,11 @@ const DefaultController = { // Queue up tasks for each object in the batch. // When every task is ready, the API request will execute - const batchReturned = new resolvingPromise(); - const batchReady = []; - const batchTasks = []; + const batchReturned = resolvingPromise(); + const batchReady: ReturnType>[] = []; + const batchTasks: Promise[] = []; batch.forEach((obj, index) => { - const ready = new resolvingPromise(); + const ready = resolvingPromise(); batchReady.push(ready); const task = function () { ready.resolve(); diff --git a/src/__tests__/escape-test.js b/src/__tests__/escape-test.js index 11e6e07af..767d5723a 100644 --- a/src/__tests__/escape-test.js +++ b/src/__tests__/escape-test.js @@ -1,6 +1,6 @@ jest.autoMockOff(); -const escape = require('../escape.js').default; +const escape = require('../escape').default; describe('escape', () => { it('escapes special HTML characters', () => { diff --git a/src/arrayContainsObject.js b/src/arrayContainsObject.ts similarity index 96% rename from src/arrayContainsObject.js rename to src/arrayContainsObject.ts index 188d21cfa..3c4ba6188 100644 --- a/src/arrayContainsObject.js +++ b/src/arrayContainsObject.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import type ParseObject from './ParseObject'; diff --git a/src/canBeSerialized.js b/src/canBeSerialized.ts similarity index 98% rename from src/canBeSerialized.js rename to src/canBeSerialized.ts index 3923a3545..a109b9236 100644 --- a/src/canBeSerialized.js +++ b/src/canBeSerialized.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import ParseFile from './ParseFile'; import type ParseObject from './ParseObject'; diff --git a/src/decode.js b/src/decode.ts similarity index 94% rename from src/decode.js rename to src/decode.ts index c358437a0..fc4c876ca 100644 --- a/src/decode.js +++ b/src/decode.ts @@ -1,8 +1,4 @@ -/** - * @flow - */ import CoreManager from './CoreManager'; -import ParseACL from './ParseACL'; // eslint-disable-line no-unused-vars import ParseFile from './ParseFile'; import ParseGeoPoint from './ParseGeoPoint'; import ParsePolygon from './ParsePolygon'; diff --git a/src/encode.js b/src/encode.ts similarity index 93% rename from src/encode.js rename to src/encode.ts index 3bcba74f3..e5558400f 100644 --- a/src/encode.js +++ b/src/encode.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import ParseACL from './ParseACL'; import ParseFile from './ParseFile'; @@ -10,10 +6,10 @@ import ParsePolygon from './ParsePolygon'; import ParseRelation from './ParseRelation'; function encode( - value: mixed, + value: any, disallowObjects: boolean, forcePointers: boolean, - seen: Array, + seen: Array, offline: boolean ): any { const ParseObject = CoreManager.getParseObject(); @@ -57,7 +53,7 @@ function encode( if (isNaN(value)) { throw new Error('Tried to encode an invalid date.'); } - return { __type: 'Date', iso: (value: any).toJSON() }; + return { __type: 'Date', iso: (value as Date).toJSON() }; } if ( Object.prototype.toString.call(value) === '[object RegExp]' && @@ -84,10 +80,10 @@ function encode( } export default function ( - value: mixed, + value: any, disallowObjects?: boolean, forcePointers?: boolean, - seen?: Array, + seen?: Array, offline?: boolean ): any { return encode(value, !!disallowObjects, !!forcePointers, seen || [], offline); diff --git a/src/equals.js b/src/equals.ts similarity index 96% rename from src/equals.js rename to src/equals.ts index bbc731f04..08b4d42da 100644 --- a/src/equals.js +++ b/src/equals.ts @@ -3,7 +3,7 @@ import ParseACL from './ParseACL'; import ParseFile from './ParseFile'; import ParseGeoPoint from './ParseGeoPoint'; -export default function equals(a, b) { +export default function equals(a: any, b: any): boolean { const toString = Object.prototype.toString; if (toString.call(a) === '[object Date]' || toString.call(b) === '[object Date]') { const dateA = new Date(a); diff --git a/src/escape.js b/src/escape.ts similarity index 93% rename from src/escape.js rename to src/escape.ts index e4b101aee..e7e6308e7 100644 --- a/src/escape.js +++ b/src/escape.ts @@ -1,7 +1,3 @@ -/* - * @flow - */ - const encoded = { '&': '&', '<': '<', diff --git a/src/isRevocableSession.js b/src/isRevocableSession.ts similarity index 85% rename from src/isRevocableSession.js rename to src/isRevocableSession.ts index 5da2de5fb..75309509b 100644 --- a/src/isRevocableSession.js +++ b/src/isRevocableSession.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - export default function isRevocableSession(token: string): boolean { return token.indexOf('r:') > -1; } diff --git a/src/parseDate.js b/src/parseDate.ts similarity index 88% rename from src/parseDate.js rename to src/parseDate.ts index 04ff6ea7f..13e922619 100644 --- a/src/parseDate.js +++ b/src/parseDate.ts @@ -1,8 +1,4 @@ -/** - * @flow - */ - -export default function parseDate(iso8601: string): ?Date { +export default function parseDate(iso8601: string): Date | null { const regexp = new RegExp( '^([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})' + 'T' + diff --git a/src/promiseUtils.js b/src/promiseUtils.ts similarity index 70% rename from src/promiseUtils.js rename to src/promiseUtils.ts index 176c32a0b..8e82a8191 100644 --- a/src/promiseUtils.js +++ b/src/promiseUtils.ts @@ -1,17 +1,18 @@ // Create Deferred Promise -export function resolvingPromise() { - let res; - let rej; - const promise = new Promise((resolve, reject) => { +export function resolvingPromise() { + let res: (value: T) => void; + let rej: (error: T) => void; + const promise = new Promise((resolve, reject) => { res = resolve; rej = reject; }); - promise.resolve = res; - promise.reject = rej; - return promise; + const defer: typeof promise & { resolve: (res: T) => void, reject: (err: any) => void } = promise as any; + defer.resolve = res!; + defer.reject = rej!; + return defer; } -export function when(promises) { +export function when(promises: any) { let objects; const arrayArgument = Array.isArray(promises); if (arrayArgument) { @@ -32,7 +33,7 @@ export function when(promises) { return Promise.resolve(returnValue); } - const promise = new resolvingPromise(); + const promise = resolvingPromise(); const resolveOne = function () { total--; @@ -45,7 +46,7 @@ export function when(promises) { } }; - const chain = function (object, index) { + const chain = function (object: Promise, index: number) { if (object && typeof object.then === 'function') { object.then( function (result) { @@ -70,7 +71,7 @@ export function when(promises) { return promise; } -export function continueWhile(test, emitter) { +export function continueWhile(test: () => any, emitter: () => Promise) { if (test()) { return emitter().then(() => { return continueWhile(test, emitter); diff --git a/src/unique.js b/src/unique.ts similarity index 81% rename from src/unique.js rename to src/unique.ts index 15bf6248b..fd31f74bf 100644 --- a/src/unique.js +++ b/src/unique.ts @@ -1,16 +1,12 @@ -/** - * @flow - */ - import arrayContainsObject from './arrayContainsObject'; import CoreManager from './CoreManager'; export default function unique(arr: Array): Array { - const uniques = []; + const uniques: T[] = []; arr.forEach(value => { const ParseObject = CoreManager.getParseObject(); if (value instanceof ParseObject) { - if (!arrayContainsObject(uniques, value)) { + if (!arrayContainsObject(uniques, value as typeof ParseObject)) { uniques.push(value); } } else { diff --git a/src/unsavedChildren.js b/src/unsavedChildren.ts similarity index 96% rename from src/unsavedChildren.js rename to src/unsavedChildren.ts index 3386e91c8..ce11d2966 100644 --- a/src/unsavedChildren.js +++ b/src/unsavedChildren.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import ParseFile from './ParseFile'; import type ParseObject from './ParseObject'; @@ -69,7 +65,7 @@ function traverse( return; } if (obj instanceof ParseFile) { - if (!obj.url() && encountered.files.indexOf(obj) < 0) { + if (!(obj as ParseFile).url() && encountered.files.indexOf(obj) < 0) { encountered.files.push(obj); } return; diff --git a/src/uuid.ts b/src/uuid.ts index 03be8a07e..1ba54b844 100644 --- a/src/uuid.ts +++ b/src/uuid.ts @@ -1,6 +1,6 @@ import { v4 } from 'uuid'; -let uuid: () => string = null as any; +let uuid: () => string; if (process.env.PARSE_BUILD === 'weapp') { uuid = function () { diff --git a/types/CoreManager.d.ts b/types/CoreManager.d.ts index 3dde6b121..dcf8cfcf4 100644 --- a/types/CoreManager.d.ts +++ b/types/CoreManager.d.ts @@ -286,13 +286,13 @@ declare const CoreManager: { getHooksController(): HooksController; setParseOp(op: any): void; getParseOp(): any; - setParseObject(object: typeof ParseObject): void; - getParseObject(): ParseObject; + setParseObject(object: any): void; + getParseObject(): any; setParseQuery(query: any): void; - getParseQuery(): ParseQuery; + getParseQuery(): any; setParseRole(role: any): void; - getParseRole(): ParseRole; + getParseRole(): any; setParseUser(user: any): void; - getParseUser(): ParseUser; + getParseUser(): any; }; export default CoreManager; diff --git a/types/arrayContainsObject.d.ts b/types/arrayContainsObject.d.ts index 764acda42..a6a357188 100644 --- a/types/arrayContainsObject.d.ts +++ b/types/arrayContainsObject.d.ts @@ -1,2 +1,2 @@ +import type ParseObject from './ParseObject'; export default function arrayContainsObject(array: Array, object: ParseObject): boolean; -import ParseObject from './ParseObject'; diff --git a/types/canBeSerialized.d.ts b/types/canBeSerialized.d.ts index 7cc2db046..fdf8e3775 100644 --- a/types/canBeSerialized.d.ts +++ b/types/canBeSerialized.d.ts @@ -1,2 +1,2 @@ +import type ParseObject from './ParseObject'; export default function canBeSerialized(obj: ParseObject): boolean; -import ParseObject from './ParseObject'; diff --git a/types/encode.d.ts b/types/encode.d.ts index 510cff8d7..d63c1e75a 100644 --- a/types/encode.d.ts +++ b/types/encode.d.ts @@ -1 +1 @@ -export default function _default(value: mixed, disallowObjects?: boolean, forcePointers?: boolean, seen?: Array, offline?: boolean): any; +export default function (value: any, disallowObjects?: boolean, forcePointers?: boolean, seen?: Array, offline?: boolean): any; diff --git a/types/isRevocableSession.d.ts b/types/isRevocableSession.d.ts index 29d483cbb..f85d82130 100644 --- a/types/isRevocableSession.d.ts +++ b/types/isRevocableSession.d.ts @@ -1,4 +1 @@ -/** - * @flow - */ export default function isRevocableSession(token: string): boolean; diff --git a/types/parseDate.d.ts b/types/parseDate.d.ts index 4ec986b68..45630f59e 100644 --- a/types/parseDate.d.ts +++ b/types/parseDate.d.ts @@ -1,4 +1 @@ -/** - * @flow - */ export default function parseDate(iso8601: string): Date | null; diff --git a/types/promiseUtils.d.ts b/types/promiseUtils.d.ts index ae6efac22..e652712a0 100644 --- a/types/promiseUtils.d.ts +++ b/types/promiseUtils.d.ts @@ -1,3 +1,9 @@ -export function resolvingPromise(): Promise; -export function when(promises: any, ...args: any[]): any; -export function continueWhile(test: any, emitter: any): any; +export declare function resolvingPromise(): Promise & { + resolve: (res: T) => void; + reject: (err: any) => void; +}; +export declare function when(promises: any): Promise | (Promise & { + resolve: (res: any) => void; + reject: (err: any) => void; +}); +export declare function continueWhile(test: () => any, emitter: () => Promise): any; diff --git a/types/unique.d.ts b/types/unique.d.ts index 1736d2e04..c305608cf 100644 --- a/types/unique.d.ts +++ b/types/unique.d.ts @@ -1 +1 @@ -export default function unique(arr: T[]): T[]; +export default function unique(arr: Array): Array; diff --git a/types/unsavedChildren.d.ts b/types/unsavedChildren.d.ts index ec1be90ca..57881ba36 100644 --- a/types/unsavedChildren.d.ts +++ b/types/unsavedChildren.d.ts @@ -1,3 +1,5 @@ +import ParseFile from './ParseFile'; +import type ParseObject from './ParseObject'; /** * Return an array of unsaved children, which are either Parse Objects or Files. * If it encounters any dirty Objects without Ids, it will throw an exception. @@ -7,5 +9,3 @@ * @returns {Array} */ export default function unsavedChildren(obj: ParseObject, allowDeepUnsaved?: boolean): Array; -import ParseObject from './ParseObject'; -import ParseFile from './ParseFile'; From 22360b4dc96ca7ebfcc2441855456b241bf450ac Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Thu, 16 May 2024 15:54:05 -0500 Subject: [PATCH 02/53] fix: `Parse.Installation` not working when installation is deleted on server (#2126) --- integration/test/ParseUserTest.js | 32 ++++++ src/ParseInstallation.ts | 49 ++++++++- src/__tests__/ParseInstallation-test.js | 134 ++++++++++++++++++++++++ 3 files changed, 213 insertions(+), 2 deletions(-) diff --git a/integration/test/ParseUserTest.js b/integration/test/ParseUserTest.js index 75a216ca0..3060986e3 100644 --- a/integration/test/ParseUserTest.js +++ b/integration/test/ParseUserTest.js @@ -179,6 +179,38 @@ describe('Parse User', () => { }); }); + it('can save new installation when deleted', async () => { + const currentInstallationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const installation = await Parse.Installation.currentInstallation(); + expect(installation.installationId).toBe(currentInstallationId); + expect(installation.deviceType).toBe(Parse.Installation.DEVICE_TYPES.WEB); + await installation.save(); + expect(installation.id).toBeDefined(); + const objectId = installation.id; + await installation.destroy({ useMasterKey: true }); + await installation.save(); + expect(installation.id).toBeDefined(); + expect(installation.id).not.toBe(objectId); + const currentInstallation = await Parse.Installation.currentInstallation(); + expect(currentInstallation.id).toBe(installation.id); + }); + + it('can fetch installation when deleted', async () => { + const currentInstallationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const installation = await Parse.Installation.currentInstallation(); + expect(installation.installationId).toBe(currentInstallationId); + expect(installation.deviceType).toBe(Parse.Installation.DEVICE_TYPES.WEB); + await installation.save(); + expect(installation.id).toBeDefined(); + const objectId = installation.id; + await installation.destroy({ useMasterKey: true }); + await installation.fetch(); + expect(installation.id).toBeDefined(); + expect(installation.id).not.toBe(objectId); + const currentInstallation = await Parse.Installation.currentInstallation(); + expect(currentInstallation.id).toBe(installation.id); + }); + it('can login with userId', async () => { Parse.User.enableUnsafeCurrentUser(); diff --git a/src/ParseInstallation.ts b/src/ParseInstallation.ts index d0e0195e8..8e9bce4da 100644 --- a/src/ParseInstallation.ts +++ b/src/ParseInstallation.ts @@ -1,4 +1,5 @@ import CoreManager from './CoreManager'; +import ParseError from './ParseError'; import ParseObject from './ParseObject'; import type { AttributeMap } from './ObjectStateMutations'; @@ -197,17 +198,61 @@ class ParseInstallation extends ParseObject { } /** - * Wrap the default save behavior with functionality to save to local storage. + * Wrap the default fetch behavior with functionality to update local storage. + * If the installation is deleted on the server, retry the fetch as a save operation. + * + * @param {...any} args + * @returns {Promise} + */ + async fetch(...args: Array): Promise { + try { + await super.fetch.apply(this, args); + } catch (e) { + if (e.code !== ParseError.OBJECT_NOT_FOUND) { + throw e; + } + // The installation was deleted from the server. + // We always want fetch to succeed. + delete this.id; + this._getId(); // Generate localId + this._markAllFieldsDirty(); + await super.save.apply(this, args); + } + await CoreManager.getInstallationController().updateInstallationOnDisk(this); + return this; + } + + /** + * Wrap the default save behavior with functionality to update the local storage. + * If the installation is deleted on the server, retry saving a new installation. * * @param {...any} args * @returns {Promise} */ async save(...args: Array): Promise { - await super.save.apply(this, args); + try { + await super.save.apply(this, args); + } catch (e) { + if (e.code !== ParseError.OBJECT_NOT_FOUND) { + throw e; + } + // The installation was deleted from the server. + // We always want save to succeed. + delete this.id; + this._getId(); // Generate localId + this._markAllFieldsDirty(); + await super.save.apply(this, args); + } await CoreManager.getInstallationController().updateInstallationOnDisk(this); return this; } + _markAllFieldsDirty() { + for (const [key, value] of Object.entries(this.attributes)) { + this.set(key, value); + } + } + /** * Get the current Parse.Installation from disk. If doesn't exists, create an new installation. * diff --git a/src/__tests__/ParseInstallation-test.js b/src/__tests__/ParseInstallation-test.js index 3bdc11fce..7870fce0b 100644 --- a/src/__tests__/ParseInstallation-test.js +++ b/src/__tests__/ParseInstallation-test.js @@ -12,6 +12,7 @@ jest.dontMock('../TaskQueue'); jest.dontMock('../SingleInstanceStateController'); jest.dontMock('../UniqueInstanceStateController'); +const ParseError = require('../ParseError').default; const LocalDatastore = require('../LocalDatastore'); const ParseInstallation = require('../ParseInstallation'); const CoreManager = require('../CoreManager'); @@ -84,6 +85,67 @@ describe('ParseInstallation', () => { expect(InstallationController.updateInstallationOnDisk).toHaveBeenCalledTimes(1); }); + it('can save if object not found', async () => { + const InstallationController = { + async updateInstallationOnDisk() {}, + async currentInstallationId() {}, + async currentInstallation() {}, + }; + let once = true; // save will be called twice first time will reject + CoreManager.setInstallationController(InstallationController); + CoreManager.setRESTController({ + request() { + if (!once) { + return Promise.resolve({}, 200); + } + once = false; + const parseError = new ParseError( + ParseError.OBJECT_NOT_FOUND, + 'Object not found.' + ); + return Promise.reject(parseError); + }, + ajax() {}, + }); + CoreManager.setLocalDatastore(LocalDatastore); + jest.spyOn(InstallationController, 'updateInstallationOnDisk').mockImplementationOnce(() => {}); + const installation = new ParseInstallation(); + installation.set('deviceToken', '1234'); + jest.spyOn(installation, '_markAllFieldsDirty'); + await installation.save(); + expect(installation._markAllFieldsDirty).toHaveBeenCalledTimes(1); + expect(InstallationController.updateInstallationOnDisk).toHaveBeenCalledTimes(1); + }); + + it('can save and handle errors', async () => { + const InstallationController = { + async updateInstallationOnDisk() {}, + async currentInstallationId() {}, + async currentInstallation() {}, + }; + CoreManager.setInstallationController(InstallationController); + CoreManager.setRESTController({ + request() { + const parseError = new ParseError( + ParseError.INTERNAL_SERVER_ERROR, + 'Cannot save installation on client.' + ); + return Promise.reject(parseError); + }, + ajax() {}, + }); + CoreManager.setLocalDatastore(LocalDatastore); + jest.spyOn(InstallationController, 'updateInstallationOnDisk').mockImplementationOnce(() => {}); + const installation = new ParseInstallation(); + installation.set('deviceToken', '1234'); + try { + await installation.save(); + } catch (e) { + expect(e.message).toEqual('Cannot save installation on client.'); + } + expect(InstallationController.updateInstallationOnDisk).toHaveBeenCalledTimes(0); + }); + it('can get current installation', async () => { const InstallationController = { async updateInstallationOnDisk() {}, @@ -100,4 +162,76 @@ describe('ParseInstallation', () => { expect(installation.deviceType).toEqual('web'); expect(installation.installationId).toEqual('1234'); }); + + it('can fetch and save to disk', async () => { + const InstallationController = { + async updateInstallationOnDisk() {}, + async currentInstallationId() {}, + async currentInstallation() {}, + }; + CoreManager.setInstallationController(InstallationController); + CoreManager.setRESTController({ + request() { + return Promise.resolve({}, 200); + }, + ajax() {}, + }); + CoreManager.setLocalDatastore(LocalDatastore); + jest.spyOn(InstallationController, 'updateInstallationOnDisk').mockImplementationOnce(() => {}); + const installation = new ParseInstallation(); + installation.id = 'abc'; + await installation.fetch(); + expect(InstallationController.updateInstallationOnDisk).toHaveBeenCalledTimes(1); + }); + + it('can fetch if object not found', async () => { + const InstallationController = { + async updateInstallationOnDisk() {}, + async currentInstallationId() {}, + async currentInstallation() {}, + }; + let once = true; + CoreManager.setInstallationController(InstallationController); + CoreManager.setRESTController({ + request() { + if (!once) { + // save() results + return Promise.resolve({}, 200); + } + once = false; + // fetch() results + const parseError = new ParseError( + ParseError.OBJECT_NOT_FOUND, + 'Object not found.' + ); + return Promise.reject(parseError); + }, + ajax() {}, + }); + CoreManager.setLocalDatastore(LocalDatastore); + jest.spyOn(InstallationController, 'updateInstallationOnDisk').mockImplementationOnce(() => {}); + const installation = new ParseInstallation(); + installation.id = '1234'; + jest.spyOn(installation, '_markAllFieldsDirty'); + await installation.fetch(); + expect(installation._markAllFieldsDirty).toHaveBeenCalledTimes(1); + expect(InstallationController.updateInstallationOnDisk).toHaveBeenCalledTimes(1); + }); + + it('can fetch and handle errors', async () => { + const InstallationController = { + async updateInstallationOnDisk() {}, + async currentInstallationId() {}, + async currentInstallation() {}, + }; + CoreManager.setInstallationController(InstallationController); + jest.spyOn(InstallationController, 'updateInstallationOnDisk').mockImplementationOnce(() => {}); + const installation = new ParseInstallation(); + try { + await installation.fetch(); + } catch (e) { + expect(e.message).toEqual('Object does not have an ID'); + } + expect(InstallationController.updateInstallationOnDisk).toHaveBeenCalledTimes(0); + }); }); From 094f440d25e85cc30b907926121774661a019291 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 16 May 2024 20:55:18 +0000 Subject: [PATCH 03/53] chore(release): 5.1.1-alpha.1 [skip ci] ## [5.1.1-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0...5.1.1-alpha.1) (2024-05-16) ### Bug Fixes * `Parse.Installation` not working when installation is deleted on server ([#2126](https://github.com/parse-community/Parse-SDK-JS/issues/2126)) ([22360b4](https://github.com/parse-community/Parse-SDK-JS/commit/22360b4dc96ca7ebfcc2441855456b241bf450ac)) --- changelogs/CHANGELOG_alpha.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index ba4a4c89f..299ee5382 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,10 @@ +## [5.1.1-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0...5.1.1-alpha.1) (2024-05-16) + + +### Bug Fixes + +* `Parse.Installation` not working when installation is deleted on server ([#2126](https://github.com/parse-community/Parse-SDK-JS/issues/2126)) ([22360b4](https://github.com/parse-community/Parse-SDK-JS/commit/22360b4dc96ca7ebfcc2441855456b241bf450ac)) + # [5.1.0-alpha.11](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0-alpha.10...5.1.0-alpha.11) (2024-05-16) diff --git a/package-lock.json b/package-lock.json index abdca2bcc..6f1079b79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.1.0", + "version": "5.1.1-alpha.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.1.0", + "version": "5.1.1-alpha.1", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.23.2", diff --git a/package.json b/package.json index d2d8cc950..0a4f0f3e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.1.0", + "version": "5.1.1-alpha.1", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From 3123819923538f88210997d98afdbeca618a528a Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Thu, 16 May 2024 18:00:37 -0500 Subject: [PATCH 04/53] refactor: Fix TypeScript type correctness test (#2134) --- src/CoreManager.ts | 2 +- ...teMutations.js => ObjectStateMutations.ts} | 10 +- src/Parse.ts | 3 +- src/{ParseFile.js => ParseFile.ts} | 60 +-- src/ParseGeoPoint.ts | 12 +- src/{ParseHooks.js => ParseHooks.ts} | 26 +- src/ParseObject.ts | 25 +- src/{ParseQuery.js => ParseQuery.ts} | 175 +++--- src/{ParseRole.js => ParseRole.ts} | 12 +- src/{ParseUser.js => ParseUser.ts} | 79 +-- src/{Push.js => Push.ts} | 11 +- src/{TaskQueue.js => TaskQueue.ts} | 12 +- tsconfig.json | 1 + types/CoreManager.d.ts | 2 +- types/ObjectStateMutations.d.ts | 34 +- types/Parse.d.ts | 2 +- types/ParseFile.d.ts | 70 +-- types/ParseGeoPoint.d.ts | 12 +- types/ParseHooks.d.ts | 27 + types/ParseObject.d.ts | 3 +- types/ParseQuery.d.ts | 219 ++++---- types/ParseRole.d.ts | 19 +- types/ParseSession.d.ts | 2 +- types/ParseUser.d.ts | 498 +++++++++--------- types/Push.d.ts | 25 +- types/TaskQueue.d.ts | 12 +- types/tsconfig.json | 2 +- types/tslint.json | 6 +- 28 files changed, 732 insertions(+), 629 deletions(-) rename src/{ObjectStateMutations.js => ObjectStateMutations.ts} (98%) rename src/{ParseFile.js => ParseFile.ts} (92%) rename src/{ParseHooks.js => ParseHooks.ts} (80%) rename src/{ParseQuery.js => ParseQuery.ts} (94%) rename src/{ParseRole.js => ParseRole.ts} (94%) rename src/{ParseUser.js => ParseUser.ts} (95%) rename src/{Push.js => Push.ts} (92%) rename src/{TaskQueue.js => TaskQueue.ts} (83%) create mode 100644 types/ParseHooks.d.ts diff --git a/src/CoreManager.ts b/src/CoreManager.ts index dff47e32a..f13e76694 100644 --- a/src/CoreManager.ts +++ b/src/CoreManager.ts @@ -51,7 +51,7 @@ type ObjectController = { forceFetch: boolean, options: RequestOptions ) => Promise | ParseObject | undefined>, - save: (object: ParseObject | Array | null, options: RequestOptions) => Promise | ParseFile>, + save: (object: ParseObject | Array | null, options: RequestOptions) => Promise | ParseFile | undefined>, destroy: (object: ParseObject | Array, options: RequestOptions) => Promise>, }; type ObjectStateController = { diff --git a/src/ObjectStateMutations.js b/src/ObjectStateMutations.ts similarity index 98% rename from src/ObjectStateMutations.js rename to src/ObjectStateMutations.ts index 6fc32e911..2a11cd856 100644 --- a/src/ObjectStateMutations.js +++ b/src/ObjectStateMutations.ts @@ -1,15 +1,11 @@ -/** - * @flow - */ - import encode from './encode'; import CoreManager from './CoreManager'; import ParseFile from './ParseFile'; import ParseRelation from './ParseRelation'; import TaskQueue from './TaskQueue'; import { RelationOp } from './ParseOp'; - import type { Op } from './ParseOp'; +import type ParseObject from './ParseObject'; export type AttributeMap = { [attr: string]: any }; export type OpsMap = { [attr: string]: Op }; @@ -43,7 +39,7 @@ export function setServerData(serverData: AttributeMap, attributes: AttributeMap } } -export function setPendingOp(pendingOps: Array, attr: string, op: ?Op) { +export function setPendingOp(pendingOps: Array, attr: string, op?: Op) { const last = pendingOps.length - 1; if (op) { pendingOps[last][attr] = op; @@ -84,7 +80,7 @@ export function estimateAttribute( pendingOps: Array, object: ParseObject, attr: string -): mixed { +): any { let value = serverData[attr]; for (let i = 0; i < pendingOps.length; i++) { if (pendingOps[i][attr]) { diff --git a/src/Parse.ts b/src/Parse.ts index b271b013e..345efdcc9 100644 --- a/src/Parse.ts +++ b/src/Parse.ts @@ -43,8 +43,7 @@ import WebSocketController from './WebSocketController'; * @global * @class * @hideconstructor -*/ - + */ interface ParseType { ACL: typeof ACL, Parse?: ParseType, diff --git a/src/ParseFile.js b/src/ParseFile.ts similarity index 92% rename from src/ParseFile.js rename to src/ParseFile.ts index 491487ca7..8d8ae79b7 100644 --- a/src/ParseFile.js +++ b/src/ParseFile.ts @@ -1,11 +1,7 @@ -/** - * @flow - */ /* global XMLHttpRequest, Blob */ import CoreManager from './CoreManager'; import type { FullOptions } from './RESTController'; - -const ParseError = require('./ParseError').default; +import ParseError from './ParseError'; let XHR = null; if (typeof XMLHttpRequest !== 'undefined') { @@ -66,13 +62,13 @@ function b64Digit(number: number): string { */ class ParseFile { _name: string; - _url: ?string; + _url?: string; _source: FileSource; - _previousSave: ?Promise; - _data: ?string; - _requestTask: ?any; - _metadata: ?Object; - _tags: ?Object; + _previousSave?: Promise; + _data?: string; + _requestTask?: any; + _metadata?: Object; + _tags?: Object; /** * @param name {String} The file's name. This will be prefixed by a unique @@ -125,17 +121,17 @@ class ParseFile { file: data, type: specifiedType, }; - } else if (data && typeof data.uri === 'string' && data.uri !== undefined) { + } else if (data && typeof (data as Uri).uri === 'string' && (data as Uri).uri !== undefined) { this._source = { format: 'uri', - uri: data.uri, + uri: (data as Uri).uri, type: specifiedType, }; - } else if (data && typeof data.base64 === 'string') { - const base64 = data.base64.split(',').slice(-1)[0]; + } else if (data && typeof (data as Base64).base64 === 'string') { + const base64 = (data as Base64).base64.split(',').slice(-1)[0]; const dataType = specifiedType || - data.base64.split(';').slice(0, 1)[0].split(':').slice(1, 2)[0] || + (data as Base64).base64.split(';').slice(0, 1)[0].split(':').slice(1, 2)[0] || 'text/plain'; this._data = base64; this._source = { @@ -156,7 +152,7 @@ class ParseFile { * * @returns {Promise} Promise that is resolve with base64 data */ - async getData(): Promise { + async getData(): Promise { if (this._data) { return this._data; } @@ -190,7 +186,7 @@ class ParseFile { * @param {object} options An object to specify url options * @returns {string | undefined} */ - url(options?: { forceSecure?: boolean }): ?string { + url(options?: { forceSecure?: boolean }): string | undefined { options = options || {}; if (!this._url) { return; @@ -207,7 +203,7 @@ class ParseFile { * * @returns {object} */ - metadata(): Object { + metadata() { return this._metadata; } @@ -216,7 +212,7 @@ class ParseFile { * * @returns {object} */ - tags(): Object { + tags() { return this._tags; } @@ -243,7 +239,7 @@ class ParseFile { * * @returns {Promise | undefined} Promise that is resolved when the save finishes. */ - save(options?: FullOptions): ?Promise { + save(options?: FileSaveOptions): Promise | undefined { options = options || {}; options.requestTask = task => (this._requestTask = task); options.metadata = this._metadata; @@ -267,7 +263,7 @@ class ParseFile { return {}; } const newSource = { - format: 'base64', + format: 'base64' as const, base64: result.base64, type: result.contentType, }; @@ -275,7 +271,7 @@ class ParseFile { this._requestTask = null; return controller.saveBase64(this._name, newSource, options); }) - .then(res => { + .then((res: { name?: string, url?: string }) => { this._name = res.name; this._url = res.url; this._requestTask = null; @@ -317,7 +313,7 @@ class ParseFile { *
    * @returns {Promise} Promise that is resolved when the delete finishes.
    */
-  destroy(options?: FullOptions = {}) {
+  destroy(options: FullOptions = {}) {
     if (!this._name) {
       throw new ParseError(ParseError.FILE_DELETE_UNNAMED_ERROR, 'Cannot delete an unnamed file.');
     }
@@ -333,7 +329,7 @@ class ParseFile {
     });
   }
 
-  toJSON(): { name: ?string, url: ?string } {
+  toJSON(): { __type: 'File', name?: string, url?: string } {
     return {
       __type: 'File',
       name: this._name,
@@ -341,7 +337,7 @@ class ParseFile {
     };
   }
 
-  equals(other: mixed): boolean {
+  equals(other: any): boolean {
     if (this === other) {
       return true;
     }
@@ -413,7 +409,7 @@ class ParseFile {
     return file;
   }
 
-  static encodeBase64(bytes: Array): string {
+  static encodeBase64(bytes: Array | Uint8Array): string {
     const chunks = [];
     chunks.length = Math.ceil(bytes.length / 3);
     for (let i = 0; i < chunks.length; i++) {
@@ -441,10 +437,10 @@ const DefaultController = {
     if (source.format !== 'file') {
       throw new Error('saveFile can only be used with File-type sources.');
     }
-    const base64Data = await new Promise((res, rej) => {
+    const base64Data = await new Promise((res, rej) => {
       // eslint-disable-next-line no-undef
       const reader = new FileReader();
-      reader.onload = () => res(reader.result);
+      reader.onload = () => res(reader.result as string);
       reader.onerror = error => rej(error);
       reader.readAsDataURL(source.file);
     });
@@ -455,9 +451,9 @@ const DefaultController = {
     // use the entire string instead
     const data = second ? second : first;
     const newSource = {
-      format: 'base64',
+      format: 'base64' as const,
       base64: data,
-      type: source.type || (source.file ? source.file.type : null),
+      type: source.type || (source.file ? source.file.type : undefined),
     };
     return await DefaultController.saveBase64(name, newSource, options);
   },
@@ -510,7 +506,7 @@ const DefaultController = {
     }
   },
 
-  downloadAjax: function (uri, options) {
+  downloadAjax: function (uri: string, options: any) {
     return new Promise((resolve, reject) => {
       const xhr = new XHR();
       xhr.open('GET', uri, true);
diff --git a/src/ParseGeoPoint.ts b/src/ParseGeoPoint.ts
index b821dc838..62b3c525e 100644
--- a/src/ParseGeoPoint.ts
+++ b/src/ParseGeoPoint.ts
@@ -180,9 +180,15 @@ class ParseGeoPoint {
    * Creates a GeoPoint with the user's current location, if available.
    *
    * @param {object} options The options.
-   * @param {boolean} [options.enableHighAccuracy=false] A boolean value that indicates the application would like to receive the best possible results. If true and if the device is able to provide a more accurate position, it will do so. Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example). On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false.
-   * @param {number} [options.timeout=Infinity] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position. The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available.
-   * @param {number} [options.maximumAge=0] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return. If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position. If set to Infinity the device must return a cached position regardless of its age. Default: 0.
+   * @param {boolean} [options.enableHighAccuracy=false] A boolean value that indicates the application would like to receive the best possible results.
+   *  If true and if the device is able to provide a more accurate position, it will do so.
+   *  Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example).
+   *  On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false.
+   * @param {number} [options.timeout=Infinity] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position.
+   *  The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available.
+   * @param {number} [options.maximumAge=0] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return.
+   *  If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position.
+   *  If set to Infinity the device must return a cached position regardless of its age. Default: 0.
    * @static
    * @returns {Promise} User's current location
    */
diff --git a/src/ParseHooks.js b/src/ParseHooks.ts
similarity index 80%
rename from src/ParseHooks.js
rename to src/ParseHooks.ts
index 43375ba7a..313d089c2 100644
--- a/src/ParseHooks.js
+++ b/src/ParseHooks.ts
@@ -13,52 +13,52 @@ export function getTriggers() {
   return CoreManager.getHooksController().get('triggers');
 }
 
-export function getFunction(name) {
+export function getFunction(name: string) {
   return CoreManager.getHooksController().get('functions', name);
 }
 
-export function getTrigger(className, triggerName) {
+export function getTrigger(className: string, triggerName: string) {
   return CoreManager.getHooksController().get('triggers', className, triggerName);
 }
 
-export function createFunction(functionName, url) {
+export function createFunction(functionName: string, url: string) {
   return create({ functionName: functionName, url: url });
 }
 
-export function createTrigger(className, triggerName, url) {
+export function createTrigger(className: string, triggerName: string, url: string) {
   return create({ className: className, triggerName: triggerName, url: url });
 }
 
-export function create(hook) {
+export function create(hook: HookDeclaration) {
   return CoreManager.getHooksController().create(hook);
 }
 
-export function updateFunction(functionName, url) {
+export function updateFunction(functionName: string, url: string) {
   return update({ functionName: functionName, url: url });
 }
 
-export function updateTrigger(className, triggerName, url) {
+export function updateTrigger(className: string, triggerName: string, url: string) {
   return update({ className: className, triggerName: triggerName, url: url });
 }
 
-export function update(hook) {
+export function update(hook: HookDeclaration) {
   return CoreManager.getHooksController().update(hook);
 }
 
-export function removeFunction(functionName) {
+export function removeFunction(functionName: string) {
   return remove({ functionName: functionName });
 }
 
-export function removeTrigger(className, triggerName) {
+export function removeTrigger(className: string, triggerName: string) {
   return remove({ className: className, triggerName: triggerName });
 }
 
-export function remove(hook) {
+export function remove(hook: HookDeleteArg) {
   return CoreManager.getHooksController().remove(hook);
 }
 
 const DefaultController = {
-  get(type, functionName, triggerName) {
+  get(type: string, functionName?: string, triggerName?: string) {
     let url = '/hooks/' + type;
     if (functionName) {
       url += '/' + functionName;
@@ -111,7 +111,7 @@ const DefaultController = {
     return this.sendRequest('PUT', url, hook);
   },
 
-  sendRequest(method, url, body) {
+  sendRequest(method: string, url: string, body?: any) {
     return CoreManager.getRESTController()
       .request(method, url, body, { useMasterKey: true })
       .then(res => {
diff --git a/src/ParseObject.ts b/src/ParseObject.ts
index f00be9eef..0c3c9f4cd 100644
--- a/src/ParseObject.ts
+++ b/src/ParseObject.ts
@@ -1343,7 +1343,7 @@ class ParseObject {
     const unsaved = options.cascadeSave !== false ? unsavedChildren(this) : null;
     return controller.save(unsaved, saveOptions).then(() => {
       return controller.save(this, saveOptions);
-    });
+    }) as Promise as Promise;
   }
 
   /**
@@ -2210,11 +2210,11 @@ const DefaultController = {
       if (target.length < 1) {
         return Promise.resolve([]);
       }
-      const objs = [];
-      const ids = [];
-      let className = null;
-      const results = [];
-      let error = null;
+      const objs: ParseObject[] = [];
+      const ids: string[] = [];
+      let className: string | null = null;
+      const results: ParseObject[] = [];
+      let error: ParseError | null = null;
       target.forEach(el => {
         if (error) {
           return;
@@ -2232,7 +2232,7 @@ const DefaultController = {
           error = new ParseError(ParseError.MISSING_OBJECT_ID, 'All objects must have an ID');
         }
         if (forceFetch || !el.isDataAvailable()) {
-          ids.push(el.id);
+          ids.push(el.id!);
           objs.push(el);
         }
         results.push(el);
@@ -2385,7 +2385,7 @@ const DefaultController = {
     return Promise.resolve(target);
   },
 
-  save(target: ParseObject | null | Array, options: RequestOptions): Promise | ParseFile> {
+  save(target: ParseObject | null | Array, options: RequestOptions): Promise | ParseFile | undefined> {
     const batchSize =
       options && options.batchSize ? options.batchSize : CoreManager.get('REQUEST_BATCH_SIZE');
     const localDatastore = CoreManager.getLocalDatastore();
@@ -2404,13 +2404,14 @@ const DefaultController = {
 
       let unsaved = target.concat();
       for (let i = 0; i < target.length; i++) {
-        if (target[i] instanceof ParseObject) {
-          unsaved = unsaved.concat(unsavedChildren(target[i], true));
+        const target_i = target[i];
+        if (target_i instanceof ParseObject) {
+          unsaved = unsaved.concat(unsavedChildren(target_i, true));
         }
       }
       unsaved = unique(unsaved);
 
-      const filesSaved: Array = [];
+      const filesSaved: Array | undefined> = [];
       let pending: Array = [];
       unsaved.forEach(el => {
         if (el instanceof ParseFile) {
@@ -2558,7 +2559,7 @@ const DefaultController = {
         }
       );
     }
-    return Promise.resolve();
+    return Promise.resolve(undefined);
   },
 };
 
diff --git a/src/ParseQuery.js b/src/ParseQuery.ts
similarity index 94%
rename from src/ParseQuery.js
rename to src/ParseQuery.ts
index 2a26122a7..47a548624 100644
--- a/src/ParseQuery.js
+++ b/src/ParseQuery.ts
@@ -1,7 +1,3 @@
-/*
- * @flow
- */
-
 import CoreManager from './CoreManager';
 import encode from './encode';
 import { continueWhile } from './promiseUtils';
@@ -14,10 +10,29 @@ import { DEFAULT_PIN } from './LocalDatastoreUtils';
 import type LiveQuerySubscription from './LiveQuerySubscription';
 import type { RequestOptions, FullOptions } from './RESTController';
 
-type BatchOptions = FullOptions & { batchSize?: number };
+type BatchOptions = FullOptions & {
+  batchSize?: number
+  useMasterKey?: boolean,
+  sessionToken?: string,
+  context?: { [key: string]: any },
+  json?: boolean
+};
 
 export type WhereClause = {
-  [attr: string]: mixed,
+  [attr: string]: any,
+};
+
+type QueryOptions = {
+  useMasterKey?: boolean,
+  sessionToken?: string,
+  context?: { [key: string]: any },
+  json?: boolean,
+};
+
+type FullTextQueryOptions = {
+  language?: string,
+  caseSensitive?: boolean,
+  diacriticSensitive?: boolean,
 };
 
 export type QueryJSON = {
@@ -31,7 +46,7 @@ export type QueryJSON = {
   order?: string,
   className?: string,
   count?: number,
-  hint?: mixed,
+  hint?: any,
   explain?: boolean,
   readPreference?: string,
   includeReadPreference?: string,
@@ -60,8 +75,8 @@ function quote(s: string): string {
  * @private
  * @returns {string}
  */
-function _getClassNameFromQueries(queries: Array): ?string {
-  let className = null;
+function _getClassNameFromQueries(queries: Array): string | null {
+  let className: string | null = null;
   queries.forEach(q => {
     if (!className) {
       className = q.className;
@@ -234,13 +249,13 @@ class ParseQuery {
   _skip: number;
   _count: boolean;
   _order: Array;
-  _readPreference: string;
-  _includeReadPreference: string;
-  _subqueryReadPreference: string;
+  _readPreference: string | null;
+  _includeReadPreference: string | null;
+  _subqueryReadPreference: string | null;
   _queriesLocalDatastore: boolean;
   _localDatastorePinName: any;
-  _extraOptions: { [key: string]: mixed };
-  _hint: mixed;
+  _extraOptions: { [key: string]: any };
+  _hint: any;
   _explain: boolean;
   _xhrRequest: any;
   _comment: string;
@@ -258,10 +273,11 @@ class ParseQuery {
     } else if (objectClass instanceof ParseObject) {
       this.className = objectClass.className;
     } else if (typeof objectClass === 'function') {
-      if (typeof objectClass.className === 'string') {
-        this.className = objectClass.className;
+      const objClass = objectClass as any;
+      if (typeof objClass.className === 'string') {
+        this.className = objClass.className;
       } else {
-        const obj = new objectClass();
+        const obj = new objClass();
         this.className = obj.className;
       }
     } else {
@@ -341,7 +357,7 @@ class ParseQuery {
    * @param value
    * @returns {Parse.Query}
    */
-  _addCondition(key: string, condition: string, value: mixed): ParseQuery {
+  _addCondition(key: string, condition: string, value: any): ParseQuery {
     if (!this._where[key] || typeof this._where[key] === 'string') {
       this._where[key] = {};
     }
@@ -359,7 +375,7 @@ class ParseQuery {
     return '^' + quote(string);
   }
 
-  async _handleOfflineQuery(params: any) {
+  async _handleOfflineQuery(params: QueryJSON) {
     OfflineQuery.validateQuery(this);
     const localDatastore = CoreManager.getLocalDatastore();
     const objects = await localDatastore._serializeObjectsFromPinName(this._localDatastorePinName);
@@ -620,10 +636,10 @@ class ParseQuery {
    * @returns {Promise} A promise that is resolved with the result when
    * the query completes.
    */
-  get(objectId: string, options?: FullOptions): Promise {
+  get(objectId: string, options?: QueryOptions): Promise {
     this.equalTo('objectId', objectId);
 
-    const firstOptions = {};
+    const firstOptions: QueryOptions = {};
     if (options && options.hasOwnProperty('useMasterKey')) {
       firstOptions.useMasterKey = options.useMasterKey;
     }
@@ -662,10 +678,10 @@ class ParseQuery {
    * @returns {Promise} A promise that is resolved with the results when
    * the query completes.
    */
-  find(options?: FullOptions): Promise> {
+  find(options?: QueryOptions): Promise> {
     options = options || {};
 
-    const findOptions = {};
+    const findOptions: QueryOptions = {};
     if (options.hasOwnProperty('useMasterKey')) {
       findOptions.useMasterKey = options.useMasterKey;
     }
@@ -689,7 +705,7 @@ class ParseQuery {
       if (this._explain) {
         return response.results;
       }
-      const results = response.results.map(data => {
+      const results = response.results?.map(data => {
         // In cases of relations, the server may send back a className
         // on the top level of the payload
         const override = response.className || this.className;
@@ -713,7 +729,7 @@ class ParseQuery {
       const count = response.count;
 
       if (typeof count === 'number') {
-        return { results, count };
+        return { results, count } as any;
       } else {
         return results;
       }
@@ -755,10 +771,10 @@ class ParseQuery {
    * @returns {Promise} A promise that is resolved with the count when
    * the query completes.
    */
-  count(options?: FullOptions): Promise {
+  count(options?: { useMasterKey?: boolean, sessionToken?: string }): Promise {
     options = options || {};
 
-    const findOptions = {};
+    const findOptions: { useMasterKey?: boolean, sessionToken?: string } = {};
     if (options.hasOwnProperty('useMasterKey')) {
       findOptions.useMasterKey = options.useMasterKey;
     }
@@ -789,11 +805,10 @@ class ParseQuery {
    * 
    * @returns {Promise} A promise that is resolved with the query completes.
    */
-  distinct(key: string, options?: FullOptions): Promise> {
+  distinct(key: string, options?: { sessionToken?: string }): Promise> {
     options = options || {};
 
-    const distinctOptions = {};
-    distinctOptions.useMasterKey = true;
+    const distinctOptions: { sessionToken?: string, useMasterKey: boolean } = { useMasterKey: true};
 
     if (options.hasOwnProperty('sessionToken')) {
       distinctOptions.sessionToken = options.sessionToken;
@@ -807,7 +822,7 @@ class ParseQuery {
       hint: this._hint,
     };
     return controller.aggregate(this.className, params, distinctOptions).then(results => {
-      return results.results;
+      return results.results!;
     });
   }
 
@@ -821,10 +836,9 @@ class ParseQuery {
    * 
    * @returns {Promise} A promise that is resolved with the query completes.
    */
-  aggregate(pipeline: mixed, options?: FullOptions): Promise> {
+  aggregate(pipeline: any, options?: { sessionToken?: string }): Promise> {
     options = options || {};
-    const aggregateOptions = {};
-    aggregateOptions.useMasterKey = true;
+    const aggregateOptions: { sessionToken?: string, useMasterKey: boolean } = { useMasterKey: true };
 
     if (options.hasOwnProperty('sessionToken')) {
       aggregateOptions.sessionToken = options.sessionToken;
@@ -851,7 +865,7 @@ class ParseQuery {
       readPreference: this._readPreference,
     };
     return controller.aggregate(this.className, params, aggregateOptions).then(results => {
-      return results.results;
+      return results.results!;
     });
   }
 
@@ -871,10 +885,8 @@ class ParseQuery {
    * @returns {Promise} A promise that is resolved with the object when
    * the query completes.
    */
-  first(options?: FullOptions): Promise {
-    options = options || {};
-
-    const findOptions = {};
+  first(options: QueryOptions = {}): Promise {
+    const findOptions: QueryOptions = {};
     if (options.hasOwnProperty('useMasterKey')) {
       findOptions.useMasterKey = options.useMasterKey;
     }
@@ -903,7 +915,7 @@ class ParseQuery {
     }
 
     return controller.find(this.className, params, findOptions).then(response => {
-      const objects = response.results;
+      const objects = response.results!;
       if (!objects[0]) {
         return undefined;
       }
@@ -947,7 +959,7 @@ class ParseQuery {
    *     iteration has completed.
    */
   eachBatch(
-    callback: (objs: Array) => Promise<*>,
+    callback: (objs: Array) => void,
     options?: BatchOptions
   ): Promise {
     options = options || {};
@@ -985,7 +997,7 @@ class ParseQuery {
 
     query.ascending('objectId');
 
-    const findOptions = {};
+    const findOptions: BatchOptions = {};
     if (options.hasOwnProperty('useMasterKey')) {
       findOptions.useMasterKey = options.useMasterKey;
     }
@@ -1000,7 +1012,7 @@ class ParseQuery {
     }
 
     let finished = false;
-    let previousResults = [];
+    let previousResults: ParseObject[] = [];
     return continueWhile(
       () => {
         return !finished;
@@ -1061,7 +1073,7 @@ class ParseQuery {
    * @param {(string|object)} value String or Object of index that should be used when executing query
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  hint(value: mixed): ParseQuery {
+  hint(value: any): ParseQuery {
     if (typeof value === 'undefined') {
       delete this._hint;
     }
@@ -1109,7 +1121,7 @@ class ParseQuery {
     callback: (currentObject: ParseObject, index: number, query: ParseQuery) => any,
     options?: BatchOptions
   ): Promise> {
-    const array = [];
+    const array: ParseObject[] = [];
     let index = 0;
     await this.each(object => {
       return Promise.resolve(callback(object, index, this)).then(result => {
@@ -1197,7 +1209,7 @@ class ParseQuery {
     callback: (currentObject: ParseObject, index: number, query: ParseQuery) => boolean,
     options?: BatchOptions
   ): Promise> {
-    const array = [];
+    const array: ParseObject[] = [];
     let index = 0;
     await this.each(object => {
       return Promise.resolve(callback(object, index, this)).then(flag => {
@@ -1220,16 +1232,16 @@ class ParseQuery {
    * @param value The value that the Parse.Object must contain.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  equalTo(key: string | { [key: string]: any }, value: ?mixed): ParseQuery {
+  equalTo(key: string | { [key: string]: any }, value?: any): ParseQuery {
     if (key && typeof key === 'object') {
       Object.entries(key).forEach(([k, val]) => this.equalTo(k, val));
       return this;
     }
     if (typeof value === 'undefined') {
-      return this.doesNotExist(key);
+      return this.doesNotExist(key as string);
     }
 
-    this._where[key] = encode(value, false, true);
+    this._where[key as string] = encode(value, false, true);
     return this;
   }
 
@@ -1241,12 +1253,12 @@ class ParseQuery {
    * @param value The value that must not be equalled.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  notEqualTo(key: string | { [key: string]: any }, value: ?mixed): ParseQuery {
+  notEqualTo(key: string | { [key: string]: any }, value?: any): ParseQuery {
     if (key && typeof key === 'object') {
       Object.entries(key).forEach(([k, val]) => this.notEqualTo(k, val));
       return this;
     }
-    return this._addCondition(key, '$ne', value);
+    return this._addCondition(key as string, '$ne', value);
   }
 
   /**
@@ -1257,7 +1269,7 @@ class ParseQuery {
    * @param value The value that provides an upper bound.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  lessThan(key: string, value: mixed): ParseQuery {
+  lessThan(key: string, value: any): ParseQuery {
     return this._addCondition(key, '$lt', value);
   }
 
@@ -1269,7 +1281,7 @@ class ParseQuery {
    * @param value The value that provides an lower bound.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  greaterThan(key: string, value: mixed): ParseQuery {
+  greaterThan(key: string, value: any): ParseQuery {
     return this._addCondition(key, '$gt', value);
   }
 
@@ -1281,7 +1293,7 @@ class ParseQuery {
    * @param value The value that provides an upper bound.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  lessThanOrEqualTo(key: string, value: mixed): ParseQuery {
+  lessThanOrEqualTo(key: string, value: any): ParseQuery {
     return this._addCondition(key, '$lte', value);
   }
 
@@ -1293,7 +1305,7 @@ class ParseQuery {
    * @param {*} value The value that provides an lower bound.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  greaterThanOrEqualTo(key: string, value: mixed): ParseQuery {
+  greaterThanOrEqualTo(key: string, value: any): ParseQuery {
     return this._addCondition(key, '$gte', value);
   }
 
@@ -1305,7 +1317,7 @@ class ParseQuery {
    * @param {Array<*>} value The values that will match.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  containedIn(key: string, value: Array): ParseQuery {
+  containedIn(key: string, value: Array): ParseQuery {
     return this._addCondition(key, '$in', value);
   }
 
@@ -1317,7 +1329,7 @@ class ParseQuery {
    * @param {Array<*>} value The values that will not match.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  notContainedIn(key: string, value: Array): ParseQuery {
+  notContainedIn(key: string, value: Array): ParseQuery {
     return this._addCondition(key, '$nin', value);
   }
 
@@ -1329,7 +1341,7 @@ class ParseQuery {
    * @param {Array} values The values that will match.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  containedBy(key: string, values: Array): ParseQuery {
+  containedBy(key: string, values: Array): ParseQuery {
     return this._addCondition(key, '$containedBy', values);
   }
 
@@ -1341,7 +1353,7 @@ class ParseQuery {
    * @param {Array} values The values that will match.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  containsAll(key: string, values: Array): ParseQuery {
+  containsAll(key: string, values: Array): ParseQuery {
     return this._addCondition(key, '$all', values);
   }
 
@@ -1392,20 +1404,22 @@ class ParseQuery {
    * This may be slow for large datasets.
    *
    * @param {string} key The key that the string to match is stored in.
-   * @param {RegExp} regex The regular expression pattern to match.
+   * @param {RegExp | string} regex The regular expression pattern to match.
    * @param {string} modifiers The regular expression mode.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  matches(key: string, regex: RegExp, modifiers: string): ParseQuery {
+  matches(key: string, regex: RegExp | string, modifiers: string): ParseQuery {
     this._addCondition(key, '$regex', regex);
     if (!modifiers) {
       modifiers = '';
     }
-    if (regex.ignoreCase) {
-      modifiers += 'i';
-    }
-    if (regex.multiline) {
-      modifiers += 'm';
+    if (typeof regex !== 'string') {
+      if (regex.ignoreCase) {
+        modifiers += 'i';
+      }
+      if (regex.multiline) {
+        modifiers += 'm';
+      }
     }
     if (modifiers.length) {
       this._addCondition(key, '$options', modifiers);
@@ -1527,7 +1541,7 @@ class ParseQuery {
    * @param {boolean} options.diacriticSensitive A boolean flag to enable or disable diacritic sensitive search.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  fullText(key: string, value: string, options: ?Object): ParseQuery {
+  fullText(key: string, value: string, options: FullTextQueryOptions = {}): ParseQuery {
     options = options || {};
 
     if (!key) {
@@ -1540,7 +1554,7 @@ class ParseQuery {
       throw new Error('The value being searched for must be a string.');
     }
 
-    const fullOptions = {};
+    const fullOptions: { $term?: string, $language?: string, $caseSensitive?: boolean, $diacriticSensitive?: boolean } = {};
     fullOptions.$term = value;
 
     for (const option in options) {
@@ -1972,8 +1986,8 @@ class ParseQuery {
     subqueryReadPreference?: string
   ): ParseQuery {
     this._readPreference = readPreference;
-    this._includeReadPreference = includeReadPreference;
-    this._subqueryReadPreference = subqueryReadPreference;
+    this._includeReadPreference = includeReadPreference || null;
+    this._subqueryReadPreference = subqueryReadPreference || null;
     return this;
   }
 
@@ -1987,13 +2001,13 @@ class ParseQuery {
   async subscribe(sessionToken?: string): Promise {
     const currentUser = await CoreManager.getUserController().currentUserAsync();
     if (!sessionToken) {
-      sessionToken = currentUser ? currentUser.getSessionToken() : undefined;
+      sessionToken = currentUser ? currentUser.getSessionToken() || undefined : undefined;
     }
     const liveQueryClient = await CoreManager.getLiveQueryController().getDefaultLiveQueryClient();
     if (liveQueryClient.shouldOpen()) {
       liveQueryClient.open();
     }
-    const subscription = liveQueryClient.subscribe(this, sessionToken);
+    const subscription = liveQueryClient.subscribe(this, sessionToken!);
     return subscription.subscribePromise.then(() => {
       return subscription;
     });
@@ -2013,7 +2027,7 @@ class ParseQuery {
    */
   static or(...queries: Array): ParseQuery {
     const className = _getClassNameFromQueries(queries);
-    const query = new ParseQuery(className);
+    const query = new ParseQuery(className!);
     query._orQuery(queries);
     return query;
   }
@@ -2032,7 +2046,7 @@ class ParseQuery {
    */
   static and(...queries: Array): ParseQuery {
     const className = _getClassNameFromQueries(queries);
-    const query = new ParseQuery(className);
+    const query = new ParseQuery(className!);
     query._andQuery(queries);
     return query;
   }
@@ -2051,7 +2065,7 @@ class ParseQuery {
    */
   static nor(...queries: Array): ParseQuery {
     const className = _getClassNameFromQueries(queries);
-    const query = new ParseQuery(className);
+    const query = new ParseQuery(className!);
     query._norQuery(queries);
     return query;
   }
@@ -2091,7 +2105,7 @@ class ParseQuery {
    * @param {string} name The name of query source.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
    */
-  fromPinWithName(name?: string): ParseQuery {
+  fromPinWithName(name?: string | null): ParseQuery {
     const localDatastore = CoreManager.getLocalDatastore();
     if (localDatastore.checkIfEnabled()) {
       this._queriesLocalDatastore = true;
@@ -2113,7 +2127,8 @@ class ParseQuery {
       this._xhrRequest.onchange = () => {};
       return this;
     }
-    return (this._xhrRequest.onchange = () => this.cancel());
+    this._xhrRequest.onchange = () => this.cancel();
+    return this;
   }
 
   _setRequestTask(options) {
@@ -2125,7 +2140,7 @@ class ParseQuery {
 
   /**
    * Sets a comment to the query so that the query
-   *can be identified when using a the profiler for MongoDB.
+   * can be identified when using a the profiler for MongoDB.
    *
    * @param {string} value a comment can make your profile data easier to interpret and trace.
    * @returns {Parse.Query} Returns the query, so you can chain this call.
@@ -2144,12 +2159,12 @@ class ParseQuery {
 }
 
 const DefaultController = {
-  find(className: string, params: QueryJSON, options: RequestOptions): Promise> {
+  find(className: string, params: QueryJSON, options: RequestOptions): Promise<{ results: Array }> {
     const RESTController = CoreManager.getRESTController();
     return RESTController.request('GET', 'classes/' + className, params, options);
   },
 
-  aggregate(className: string, params: any, options: RequestOptions): Promise> {
+  aggregate(className: string, params: any, options: RequestOptions): Promise<{ results: Array }> {
     const RESTController = CoreManager.getRESTController();
 
     return RESTController.request('GET', 'aggregate/' + className, params, options);
diff --git a/src/ParseRole.js b/src/ParseRole.ts
similarity index 94%
rename from src/ParseRole.js
rename to src/ParseRole.ts
index 546a28577..67e5a5b31 100644
--- a/src/ParseRole.js
+++ b/src/ParseRole.ts
@@ -1,7 +1,3 @@
-/**
- * @flow
- */
-
 import CoreManager from './CoreManager';
 import ParseACL from './ParseACL';
 import ParseError from './ParseError';
@@ -43,7 +39,7 @@ class ParseRole extends ParseObject {
    *
    * @returns {string} the name of the role.
    */
-  getName(): ?string {
+  getName(): string | null {
     const name = this.get('name');
     if (name == null || typeof name === 'string') {
       return name;
@@ -68,7 +64,7 @@ class ParseRole extends ParseObject {
    *     callbacks.
    * @returns {(ParseObject|boolean)} true if the set succeeded.
    */
-  setName(name: string, options?: mixed): ParseObject | boolean {
+  setName(name: string, options?: any): ParseObject | boolean {
     this._validateName(name);
     return this.set('name', name, options);
   }
@@ -115,8 +111,8 @@ class ParseRole extends ParseObject {
     }
   }
 
-  validate(attrs: AttributeMap, options?: mixed): ParseError | boolean {
-    const isInvalid = super.validate(attrs, options);
+  validate(attrs: AttributeMap, options?: any): ParseError | boolean {
+    const isInvalid = (super.validate as typeof this['validate'])(attrs, options);
     if (isInvalid) {
       return isInvalid;
     }
diff --git a/src/ParseUser.js b/src/ParseUser.ts
similarity index 95%
rename from src/ParseUser.js
rename to src/ParseUser.ts
index 328512452..48a0c2a66 100644
--- a/src/ParseUser.js
+++ b/src/ParseUser.ts
@@ -1,25 +1,28 @@
-/**
- * @flow
- */
-
 import CoreManager from './CoreManager';
 import isRevocableSession from './isRevocableSession';
 import ParseError from './ParseError';
 import ParseObject from './ParseObject';
-import ParseSession from './ParseSession';
 import Storage from './Storage';
 
 import type { AttributeMap } from './ObjectStateMutations';
 import type { RequestOptions, FullOptions } from './RESTController';
 
-export type AuthData = ?{ [key: string]: mixed };
-
+export type AuthData = { [key: string]: any };
+export type AuthProviderType = {
+  authenticate?(options: {
+    error?: (provider: AuthProviderType, error: string | any) => void,
+    success?: (provider: AuthProviderType, result: AuthData) => void,
+  }): void,
+  restoreAuthentication(authData: any): boolean;
+  getAuthType(): string;
+  deauthenticate?(): void;
+};
 const CURRENT_USER_KEY = 'currentUser';
 let canUseCurrentUser = !CoreManager.get('IS_NODE');
 let currentUserCacheMatchesDisk = false;
-let currentUserCache = null;
+let currentUserCache: ParseUser | null = null;
 
-const authProviders = {};
+const authProviders: { [key: string]: AuthProviderType } = {};
 
 /**
  * 

A Parse.User object is a local representation of a user persisted to the @@ -35,7 +38,7 @@ class ParseUser extends ParseObject { /** * @param {object} attributes The initial set of data to store in the user. */ - constructor(attributes: ?AttributeMap) { + constructor(attributes?: AttributeMap) { super('_User'); if (attributes && typeof attributes === 'object') { if (!this.set(attributes || {})) { @@ -54,7 +57,7 @@ class ParseUser extends ParseObject { _upgradeToRevocableSession(options: RequestOptions): Promise { options = options || {}; - const upgradeOptions = {}; + const upgradeOptions: RequestOptions = {}; if (options.hasOwnProperty('useMasterKey')) { upgradeOptions.useMasterKey = options.useMasterKey; } @@ -79,9 +82,9 @@ class ParseUser extends ParseObject { * @returns {Promise} A promise that is fulfilled with the user is linked */ linkWith( - provider: any, + provider: AuthProviderType, options: { authData?: AuthData }, - saveOpts?: FullOptions = {} + saveOpts: FullOptions = {} ): Promise { saveOpts.sessionToken = saveOpts.sessionToken || this.getSessionToken() || ''; let authType; @@ -123,7 +126,7 @@ class ParseUser extends ParseObject { return new Promise((resolve, reject) => { provider.authenticate({ success: (provider, result) => { - const opts = {}; + const opts: { authData?: AuthData } = {}; opts.authData = result; this.linkWith(provider, opts, saveOpts).then( () => { @@ -152,7 +155,7 @@ class ParseUser extends ParseObject { _linkWith( provider: any, options: { authData?: AuthData }, - saveOpts?: FullOptions = {} + saveOpts: FullOptions = {} ): Promise { return this.linkWith(provider, options, saveOpts); } @@ -163,7 +166,7 @@ class ParseUser extends ParseObject { * * @param provider */ - _synchronizeAuthData(provider: string) { + _synchronizeAuthData(provider: string | AuthProviderType) { if (!this.isCurrent() || !provider) { return; } @@ -336,7 +339,7 @@ class ParseUser extends ParseObject { * * @returns {string} */ - getUsername(): ?string { + getUsername(): string | null { const username = this.get('username'); if (username == null || typeof username === 'string') { return username; @@ -368,7 +371,7 @@ class ParseUser extends ParseObject { * * @returns {string} User's Email */ - getEmail(): ?string { + getEmail(): string | null { const email = this.get('email'); if (email == null || typeof email === 'string') { return email; @@ -393,7 +396,7 @@ class ParseUser extends ParseObject { * * @returns {string} the session token, or undefined */ - getSessionToken(): ?string { + getSessionToken(): string | null{ const token = this.get('sessionToken'); if (token == null || typeof token === 'string') { return token; @@ -424,10 +427,10 @@ class ParseUser extends ParseObject { * @returns {Promise} A promise that is fulfilled when the signup * finishes. */ - signUp(attrs: AttributeMap, options?: FullOptions): Promise { + signUp(attrs: AttributeMap, options?: FullOptions & { context?: AttributeMap }): Promise { options = options || {}; - const signupOptions = {}; + const signupOptions: FullOptions & { context?: AttributeMap } = {}; if (options.hasOwnProperty('useMasterKey')) { signupOptions.useMasterKey = options.useMasterKey; } @@ -456,10 +459,10 @@ class ParseUser extends ParseObject { * @returns {Promise} A promise that is fulfilled with the user when * the login is complete. */ - logIn(options?: FullOptions): Promise { + logIn(options: FullOptions & { context?: AttributeMap } = {}): Promise { options = options || {}; - const loginOptions = { usePost: true }; + const loginOptions: FullOptions & { context?: AttributeMap } = { usePost: true }; if (options.hasOwnProperty('useMasterKey')) { loginOptions.useMasterKey = options.useMasterKey; } @@ -486,11 +489,11 @@ class ParseUser extends ParseObject { * @param {...any} args * @returns {Promise} */ - async save(...args: Array): Promise { + async save(...args: Array): Promise { await super.save.apply(this, args); const current = await this.isCurrentAsync(); if (current) { - return CoreManager.getUserController().updateUserOnDisk(this); + return CoreManager.getUserController().updateUserOnDisk(this) as Promise; } return this; } @@ -502,7 +505,7 @@ class ParseUser extends ParseObject { * @param {...any} args * @returns {Parse.User} */ - async destroy(...args: Array): Promise { + async destroy(...args: Array): Promise { await super.destroy.apply(this, args); const current = await this.isCurrentAsync(); if (current) { @@ -607,7 +610,7 @@ class ParseUser extends ParseObject { * @static * @returns {Parse.Object} The currently logged in Parse.User. */ - static current(): ?ParseUser { + static current(): ParseUser | null { if (!canUseCurrentUser) { return null; } @@ -622,7 +625,7 @@ class ParseUser extends ParseObject { * @returns {Promise} A Promise that is resolved with the currently * logged in Parse User */ - static currentAsync(): Promise { + static currentAsync(): Promise { if (!canUseCurrentUser) { return Promise.resolve(null); } @@ -759,7 +762,7 @@ class ParseUser extends ParseObject { * @static * @returns {Promise} A promise that is fulfilled with the user is fetched. */ - static me(sessionToken: string, options?: RequestOptions = {}) { + static me(sessionToken: string, options: RequestOptions = {}) { const controller = CoreManager.getUserController(); const meOptions: RequestOptions = { sessionToken: sessionToken, @@ -834,7 +837,7 @@ class ParseUser extends ParseObject { static requestPasswordReset(email: string, options?: RequestOptions) { options = options || {}; - const requestOptions = {}; + const requestOptions: RequestOptions = {}; if (options.hasOwnProperty('useMasterKey')) { requestOptions.useMasterKey = options.useMasterKey; } @@ -855,7 +858,7 @@ class ParseUser extends ParseObject { static requestEmailVerification(email: string, options?: RequestOptions) { options = options || {}; - const requestOptions = {}; + const requestOptions: RequestOptions = {}; if (options.hasOwnProperty('useMasterKey')) { requestOptions.useMasterKey = options.useMasterKey; } @@ -1027,7 +1030,7 @@ const DefaultController = { return DefaultController.updateUserOnDisk(user); }, - currentUser(): ?ParseUser { + currentUser(): ParseUser | null{ if (currentUserCache) { return currentUserCache; } @@ -1065,13 +1068,13 @@ const DefaultController = { userData.sessionToken = userData._sessionToken; delete userData._sessionToken; } - const current = ParseObject.fromJSON(userData); + const current = ParseObject.fromJSON(userData) as ParseUser; currentUserCache = current; current._synchronizeAllAuthData(); return current; }, - currentUserAsync(): Promise { + currentUserAsync(): Promise { if (currentUserCache) { return Promise.resolve(currentUserCache); } @@ -1103,7 +1106,7 @@ const DefaultController = { userData.sessionToken = userData._sessionToken; delete userData._sessionToken; } - const current = ParseObject.fromJSON(userData); + const current = ParseObject.fromJSON(userData) as ParseUser; currentUserCache = current; current._synchronizeAllAuthData(); return Promise.resolve(current); @@ -1201,7 +1204,7 @@ const DefaultController = { }); }, - logOut(options: RequestOptions): Promise { + logOut(options: RequestOptions): Promise { const RESTController = CoreManager.getRESTController(); if (options.sessionToken) { return RESTController.request('POST', 'logout', {}, options); @@ -1243,9 +1246,7 @@ const DefaultController = { const RESTController = CoreManager.getRESTController(); const result = await RESTController.request('POST', 'upgradeToRevocableSession', {}, options); - const session = new ParseSession(); - session._finishFetch(result); - user._finishFetch({ sessionToken: session.getSessionToken() }); + user._finishFetch({ sessionToken: result?.sessionToken || '' }); const current = await user.isCurrentAsync(); if (current) { return DefaultController.setCurrentUser(user); diff --git a/src/Push.js b/src/Push.ts similarity index 92% rename from src/Push.js rename to src/Push.ts index a565396be..2c0581921 100644 --- a/src/Push.js +++ b/src/Push.ts @@ -1,10 +1,7 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import ParseQuery from './ParseQuery'; +import type ParseObject from './ParseObject'; import type { WhereClause } from './ParseQuery'; import type { FullOptions } from './RESTController'; @@ -49,9 +46,9 @@ export type PushData = { * be used for this request. * * @returns {Promise} A promise that is fulfilled when the push request - * completes. + * completes and returns `pushStatusId`. */ -export function send(data: PushData, options?: FullOptions = {}): Promise { +export function send(data: PushData, options: FullOptions = {}): Promise { if (data.where && data.where instanceof ParseQuery) { data.where = data.where.toJSON().where; } @@ -89,7 +86,7 @@ export function send(data: PushData, options?: FullOptions = {}): Promise { * * @returns {Parse.Object} Status of Push. */ -export function getPushStatus(pushStatusId: string, options?: FullOptions = {}): Promise { +export function getPushStatus(pushStatusId: string, options: FullOptions = {}): Promise { const pushOptions = { useMasterKey: true }; if (options.hasOwnProperty('useMasterKey')) { pushOptions.useMasterKey = options.useMasterKey; diff --git a/src/TaskQueue.js b/src/TaskQueue.ts similarity index 83% rename from src/TaskQueue.js rename to src/TaskQueue.ts index eedd769fe..0d14c32d4 100644 --- a/src/TaskQueue.js +++ b/src/TaskQueue.ts @@ -1,11 +1,8 @@ -/** - * @flow - */ import { resolvingPromise } from './promiseUtils'; type Task = { - task: () => Promise, - _completion: Promise, + task: () => Promise, + _completion: any, }; class TaskQueue { @@ -15,8 +12,8 @@ class TaskQueue { this.queue = []; } - enqueue(task: () => Promise): Promise { - const taskComplete = new resolvingPromise(); + enqueue(task: () => Promise): Promise { + const taskComplete = resolvingPromise(); this.queue.push({ task: task, _completion: taskComplete, @@ -55,3 +52,4 @@ class TaskQueue { } module.exports = TaskQueue; +export default TaskQueue; diff --git a/tsconfig.json b/tsconfig.json index b5166cc62..1b20e1a56 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "module": "commonjs", "target": "es2015", + "lib": ["dom"], "declaration": true, "emitDeclarationOnly": true, "outDir": "types", diff --git a/types/CoreManager.d.ts b/types/CoreManager.d.ts index dcf8cfcf4..d2bbd484f 100644 --- a/types/CoreManager.d.ts +++ b/types/CoreManager.d.ts @@ -60,7 +60,7 @@ type InstallationController = { }; type ObjectController = { fetch: (object: ParseObject | Array, forceFetch: boolean, options: RequestOptions) => Promise | ParseObject | undefined>; - save: (object: ParseObject | Array | null, options: RequestOptions) => Promise | ParseFile>; + save: (object: ParseObject | Array | null, options: RequestOptions) => Promise | ParseFile | undefined>; destroy: (object: ParseObject | Array, options: RequestOptions) => Promise>; }; type ObjectStateController = { diff --git a/types/ObjectStateMutations.d.ts b/types/ObjectStateMutations.d.ts index c82bd0d6c..7a2086d80 100644 --- a/types/ObjectStateMutations.d.ts +++ b/types/ObjectStateMutations.d.ts @@ -1,28 +1,28 @@ -// @ts-nocheck -export function defaultState(): State; -export function setServerData(serverData: AttributeMap, attributes: AttributeMap): void; -export function setPendingOp(pendingOps: Array, attr: string, op: Op | null): void; -export function pushPendingState(pendingOps: Array): void; -export function popPendingState(pendingOps: Array): OpsMap; -export function mergeFirstPendingState(pendingOps: Array): void; -export function estimateAttribute(serverData: AttributeMap, pendingOps: Array, className: string, id: string | null, attr: string): mixed; -export function estimateAttributes(serverData: AttributeMap, pendingOps: Array, className: string, id: string | null): AttributeMap; -export function commitServerChanges(serverData: AttributeMap, objectCache: ObjectCache, changes: AttributeMap): void; -type AttributeMap = { +import TaskQueue from './TaskQueue'; +import type { Op } from './ParseOp'; +import type ParseObject from './ParseObject'; +export type AttributeMap = { [attr: string]: any; }; -type OpsMap = { +export type OpsMap = { [attr: string]: Op; }; -type ObjectCache = { +export type ObjectCache = { [attr: string]: string; }; -type State = { +export type State = { serverData: AttributeMap; - pendingOps: OpsMap[]; + pendingOps: Array; objectCache: ObjectCache; tasks: TaskQueue; existed: boolean; }; -import { Op } from './ParseOp'; -export {}; +export declare function defaultState(): State; +export declare function setServerData(serverData: AttributeMap, attributes: AttributeMap): void; +export declare function setPendingOp(pendingOps: Array, attr: string, op?: Op): void; +export declare function pushPendingState(pendingOps: Array): void; +export declare function popPendingState(pendingOps: Array): OpsMap; +export declare function mergeFirstPendingState(pendingOps: Array): void; +export declare function estimateAttribute(serverData: AttributeMap, pendingOps: Array, object: ParseObject, attr: string): any; +export declare function estimateAttributes(serverData: AttributeMap, pendingOps: Array, object: ParseObject): AttributeMap; +export declare function commitServerChanges(serverData: AttributeMap, objectCache: ObjectCache, changes: AttributeMap): void; diff --git a/types/Parse.d.ts b/types/Parse.d.ts index ecb89e504..407bdb7c2 100644 --- a/types/Parse.d.ts +++ b/types/Parse.d.ts @@ -32,7 +32,7 @@ import LiveQueryClient from './LiveQueryClient'; * @global * @class * @hideconstructor -*/ + */ interface ParseType { ACL: typeof ACL; Parse?: ParseType; diff --git a/types/ParseFile.d.ts b/types/ParseFile.d.ts index 704384901..ce3a09942 100644 --- a/types/ParseFile.d.ts +++ b/types/ParseFile.d.ts @@ -1,18 +1,32 @@ -// @ts-nocheck -type FileSource = { - format: "file"; +import type { FullOptions } from './RESTController'; +type Base64 = { + base64: string; +}; +type Uri = { + uri: string; +}; +type FileData = Array | Base64 | Blob | Uri; +export type FileSaveOptions = FullOptions & { + metadata?: { + [key: string]: any; + }; + tags?: { + [key: string]: any; + }; +}; +export type FileSource = { + format: 'file'; file: Blob; type: string; } | { - format: "base64"; + format: 'base64'; base64: string; type: string; } | { - format: "uri"; + format: 'uri'; uri: string; type: string; }; -export default ParseFile; /** * A Parse.File is a local representation of a file that is saved to the Parse * cloud. @@ -20,8 +34,14 @@ export default ParseFile; * @alias Parse.File */ declare class ParseFile { - static fromJSON(obj: any): ParseFile; - static encodeBase64(bytes: Array): string; + _name: string; + _url?: string; + _source: FileSource; + _previousSave?: Promise; + _data?: string; + _requestTask?: any; + _metadata?: Object; + _tags?: Object; /** * @param name {String} The file's name. This will be prefixed by a unique * value once the file has finished saving. The file name must begin with @@ -53,14 +73,6 @@ declare class ParseFile { * @param tags {Object} Optional key value pairs to be stored with file object */ constructor(name: string, data?: FileData, type?: string, metadata?: Object, tags?: Object); - _name: string; - _url: string | null; - _source: FileSource; - _previousSave: Promise | null; - _data: string | null; - _requestTask: any | null; - _metadata: Object | null; - _tags: Object | null; /** * Return the data for the file, downloading it if not already present. * Data is present if initialized with Byte Array, Base64 or Saved with Uri. @@ -68,7 +80,7 @@ declare class ParseFile { * * @returns {Promise} Promise that is resolve with base64 data */ - getData(): Promise; + getData(): Promise; /** * Gets the name of the file. Before save is called, this is the filename * given by the user. After save is called, that name gets prefixed with a @@ -86,7 +98,7 @@ declare class ParseFile { */ url(options?: { forceSecure?: boolean; - }): string | null; + }): string | undefined; /** * Gets the metadata of the file. * @@ -122,7 +134,7 @@ declare class ParseFile { * * @returns {Promise | undefined} Promise that is resolved when the save finishes. */ - save(options?: FullOptions): Promise | null; + save(options?: FileSaveOptions): Promise | undefined; /** * Aborts the request if it has already been sent. */ @@ -138,12 +150,13 @@ declare class ParseFile { *

      * @returns {Promise} Promise that is resolved when the delete finishes.
      */
-    destroy(options?: FullOptions): Promise;
+    destroy(options?: FullOptions): Promise;
     toJSON(): {
-        name: string | null;
-        url: string | null;
+        __type: 'File';
+        name?: string;
+        url?: string;
     };
-    equals(other: mixed): boolean;
+    equals(other: any): boolean;
     /**
      * Sets metadata to be saved with file object. Overwrites existing metadata
      *
@@ -170,12 +183,7 @@ declare class ParseFile {
      * @param {*} value tag
      */
     addTag(key: string, value: string): void;
+    static fromJSON(obj: any): ParseFile;
+    static encodeBase64(bytes: Array | Uint8Array): string;
 }
-import { FullOptions } from './RESTController';
-type FileData = number[] | Blob | Base64 | Uri;
-type Base64 = {
-    base64: string;
-};
-type Uri = {
-    uri: string;
-};
+export default ParseFile;
diff --git a/types/ParseGeoPoint.d.ts b/types/ParseGeoPoint.d.ts
index a48a469d9..8ca122d5a 100644
--- a/types/ParseGeoPoint.d.ts
+++ b/types/ParseGeoPoint.d.ts
@@ -87,9 +87,15 @@ declare class ParseGeoPoint {
      * Creates a GeoPoint with the user's current location, if available.
      *
      * @param {object} options The options.
-     * @param {boolean} [options.enableHighAccuracy=false] A boolean value that indicates the application would like to receive the best possible results. If true and if the device is able to provide a more accurate position, it will do so. Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example). On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false.
-     * @param {number} [options.timeout=Infinity] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position. The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available.
-     * @param {number} [options.maximumAge=0] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return. If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position. If set to Infinity the device must return a cached position regardless of its age. Default: 0.
+     * @param {boolean} [options.enableHighAccuracy=false] A boolean value that indicates the application would like to receive the best possible results.
+     *  If true and if the device is able to provide a more accurate position, it will do so.
+     *  Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example).
+     *  On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false.
+     * @param {number} [options.timeout=Infinity] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position.
+     *  The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available.
+     * @param {number} [options.maximumAge=0] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return.
+     *  If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position.
+     *  If set to Infinity the device must return a cached position regardless of its age. Default: 0.
      * @static
      * @returns {Promise} User's current location
      */
diff --git a/types/ParseHooks.d.ts b/types/ParseHooks.d.ts
new file mode 100644
index 000000000..e854b0d76
--- /dev/null
+++ b/types/ParseHooks.d.ts
@@ -0,0 +1,27 @@
+export type HookDeclaration = {
+    functionName: string;
+    url: string;
+} | {
+    className: string;
+    triggerName: string;
+    url: string;
+};
+export type HookDeleteArg = {
+    functionName: string;
+} | {
+    className: string;
+    triggerName: string;
+};
+export declare function getFunctions(): Promise;
+export declare function getTriggers(): Promise;
+export declare function getFunction(name: string): Promise;
+export declare function getTrigger(className: string, triggerName: string): Promise;
+export declare function createFunction(functionName: string, url: string): Promise;
+export declare function createTrigger(className: string, triggerName: string, url: string): Promise;
+export declare function create(hook: HookDeclaration): Promise;
+export declare function updateFunction(functionName: string, url: string): Promise;
+export declare function updateTrigger(className: string, triggerName: string, url: string): Promise;
+export declare function update(hook: HookDeclaration): Promise;
+export declare function removeFunction(functionName: string): Promise;
+export declare function removeTrigger(className: string, triggerName: string): Promise;
+export declare function remove(hook: HookDeleteArg): Promise;
diff --git a/types/ParseObject.d.ts b/types/ParseObject.d.ts
index 56fbcd11c..00c400d14 100644
--- a/types/ParseObject.d.ts
+++ b/types/ParseObject.d.ts
@@ -1,5 +1,6 @@
 import ParseACL from './ParseACL';
 import ParseError from './ParseError';
+import ParseFile from './ParseFile';
 import { Op } from './ParseOp';
 import ParseRelation from './ParseRelation';
 import type { AttributeMap, OpsMap } from './ObjectStateMutations';
@@ -824,7 +825,7 @@ declare class ParseObject {
      * @static
      * @returns {Parse.Object[]}
      */
-    static saveAll(list: Array, options?: SaveOptions): Promise;
+    static saveAll(list: Array, options?: SaveOptions): Promise;
     /**
      * Creates a reference to a subclass of Parse.Object with the given id. This
      * does not exist on Parse.Object, only on subclasses.
diff --git a/types/ParseQuery.d.ts b/types/ParseQuery.d.ts
index 60b0bbb5e..0892a5bc0 100644
--- a/types/ParseQuery.d.ts
+++ b/types/ParseQuery.d.ts
@@ -1,8 +1,33 @@
-// @ts-nocheck
-type WhereClause = {
-    [attr: string]: mixed;
+import ParseGeoPoint from './ParseGeoPoint';
+import ParseObject from './ParseObject';
+import type LiveQuerySubscription from './LiveQuerySubscription';
+import type { FullOptions } from './RESTController';
+type BatchOptions = FullOptions & {
+    batchSize?: number;
+    useMasterKey?: boolean;
+    sessionToken?: string;
+    context?: {
+        [key: string]: any;
+    };
+    json?: boolean;
+};
+export type WhereClause = {
+    [attr: string]: any;
+};
+type QueryOptions = {
+    useMasterKey?: boolean;
+    sessionToken?: string;
+    context?: {
+        [key: string]: any;
+    };
+    json?: boolean;
 };
-type QueryJSON = {
+type FullTextQueryOptions = {
+    language?: string;
+    caseSensitive?: boolean;
+    diacriticSensitive?: boolean;
+};
+export type QueryJSON = {
     where: WhereClause;
     watch?: string;
     include?: string;
@@ -13,14 +38,13 @@ type QueryJSON = {
     order?: string;
     className?: string;
     count?: number;
-    hint?: mixed;
+    hint?: any;
     explain?: boolean;
     readPreference?: string;
     includeReadPreference?: string;
     subqueryReadPreference?: string;
-    comment?: string,
+    comment?: string;
 };
-export default ParseQuery;
 /**
  * Creates a new parse Parse.Query for the given Parse.Object subclass.
  *
@@ -65,58 +89,6 @@ export default ParseQuery;
  * @alias Parse.Query
  */
 declare class ParseQuery {
-    /**
-     * Static method to restore Parse.Query by json representation
-     * Internally calling Parse.Query.withJSON
-     *
-     * @param {string} className
-     * @param {QueryJSON} json from Parse.Query.toJSON() method
-     * @returns {Parse.Query} new created query
-     */
-    static fromJSON(className: string, json: QueryJSON): ParseQuery;
-    /**
-     * Constructs a Parse.Query that is the OR of the passed in queries.  For
-     * example:
-     * 
var compoundQuery = Parse.Query.or(query1, query2, query3);
- * - * will create a compoundQuery that is an or of the query1, query2, and - * query3. - * - * @param {...Parse.Query} queries The list of queries to OR. - * @static - * @returns {Parse.Query} The query that is the OR of the passed in queries. - */ - static or(...queries: Array): ParseQuery; - /** - * Constructs a Parse.Query that is the AND of the passed in queries. For - * example: - *
var compoundQuery = Parse.Query.and(query1, query2, query3);
- * - * will create a compoundQuery that is an and of the query1, query2, and - * query3. - * - * @param {...Parse.Query} queries The list of queries to AND. - * @static - * @returns {Parse.Query} The query that is the AND of the passed in queries. - */ - static and(...queries: Array): ParseQuery; - /** - * Constructs a Parse.Query that is the NOR of the passed in queries. For - * example: - *
const compoundQuery = Parse.Query.nor(query1, query2, query3);
- * - * will create a compoundQuery that is a nor of the query1, query2, and - * query3. - * - * @param {...Parse.Query} queries The list of queries to NOR. - * @static - * @returns {Parse.Query} The query that is the NOR of the passed in queries. - */ - static nor(...queries: Array): ParseQuery; - /** - * @param {(string | Parse.Object)} objectClass An instance of a subclass of Parse.Object, or a Parse className string. - */ - constructor(objectClass: string | ParseObject); /** * @property {string} className */ @@ -130,18 +102,22 @@ declare class ParseQuery { _skip: number; _count: boolean; _order: Array; - _readPreference: string; - _includeReadPreference: string; - _subqueryReadPreference: string; + _readPreference: string | null; + _includeReadPreference: string | null; + _subqueryReadPreference: string | null; _queriesLocalDatastore: boolean; _localDatastorePinName: any; _extraOptions: { - [key: string]: mixed; + [key: string]: any; }; - _hint: mixed; + _hint: any; _explain: boolean; _xhrRequest: any; _comment: string; + /** + * @param {(string | Parse.Object)} objectClass An instance of a subclass of Parse.Object, or a Parse className string. + */ + constructor(objectClass: string | ParseObject); /** * Adds constraint that at least one of the passed in queries matches. * @@ -171,7 +147,7 @@ declare class ParseQuery { * @param value * @returns {Parse.Query} */ - _addCondition(key: string, condition: string, value: mixed): ParseQuery; + _addCondition(key: string, condition: string, value: any): ParseQuery; /** * Converts string for regular expression at the beginning * @@ -179,7 +155,7 @@ declare class ParseQuery { * @returns {string} */ _regexStartWith(string: string): string; - _handleOfflineQuery(params: any): Promise; + _handleOfflineQuery(params: QueryJSON): Promise; /** * Returns a JSON representation of this query. * @@ -208,6 +184,15 @@ declare class ParseQuery { * @returns {Parse.Query} Returns the query, so you can chain this call. */ withJSON(json: QueryJSON): ParseQuery; + /** + * Static method to restore Parse.Query by json representation + * Internally calling Parse.Query.withJSON + * + * @param {string} className + * @param {QueryJSON} json from Parse.Query.toJSON() method + * @returns {Parse.Query} new created query + */ + static fromJSON(className: string, json: QueryJSON): ParseQuery; /** * Constructs a Parse.Object whose id is already known by fetching data from * the server. Unlike the first method, it never returns undefined. @@ -225,7 +210,7 @@ declare class ParseQuery { * @returns {Promise} A promise that is resolved with the result when * the query completes. */ - get(objectId: string, options?: FullOptions): Promise; + get(objectId: string, options?: QueryOptions): Promise; /** * Retrieves a list of ParseObjects that satisfy this query. * @@ -241,7 +226,7 @@ declare class ParseQuery { * @returns {Promise} A promise that is resolved with the results when * the query completes. */ - find(options?: FullOptions): Promise>; + find(options?: QueryOptions): Promise>; /** * Retrieves a complete list of ParseObjects that satisfy this query. * Using `eachBatch` under the hood to fetch all the valid objects. @@ -270,7 +255,10 @@ declare class ParseQuery { * @returns {Promise} A promise that is resolved with the count when * the query completes. */ - count(options?: FullOptions): Promise; + count(options?: { + useMasterKey?: boolean; + sessionToken?: string; + }): Promise; /** * Executes a distinct query and returns unique values * @@ -282,7 +270,9 @@ declare class ParseQuery { * * @returns {Promise} A promise that is resolved with the query completes. */ - distinct(key: string, options?: FullOptions): Promise>; + distinct(key: string, options?: { + sessionToken?: string; + }): Promise>; /** * Executes an aggregate query and returns aggregate results * @@ -293,7 +283,9 @@ declare class ParseQuery { * * @returns {Promise} A promise that is resolved with the query completes. */ - aggregate(pipeline: mixed, options?: FullOptions): Promise>; + aggregate(pipeline: any, options?: { + sessionToken?: string; + }): Promise>; /** * Retrieves at most one Parse.Object that satisfies this query. * @@ -310,7 +302,7 @@ declare class ParseQuery { * @returns {Promise} A promise that is resolved with the object when * the query completes. */ - first(options?: FullOptions): Promise; + first(options?: QueryOptions): Promise; /** * Iterates over objects matching a query, calling a callback for each batch. * If the callback returns a promise, the iteration will not continue until @@ -332,7 +324,7 @@ declare class ParseQuery { * @returns {Promise} A promise that will be fulfilled once the * iteration has completed. */ - eachBatch(callback: (objs: Array) => Promise, options?: BatchOptions): Promise; + eachBatch(callback: (objs: Array) => void, options?: BatchOptions): Promise; /** * Iterates over each result of a query, calling a callback for each one. If * the callback returns a promise, the iteration will not continue until @@ -360,7 +352,7 @@ declare class ParseQuery { * @param {(string|object)} value String or Object of index that should be used when executing query * @returns {Parse.Query} Returns the query, so you can chain this call. */ - hint(value: mixed): ParseQuery; + hint(value: any): ParseQuery; /** * Investigates the query execution plan. Useful for optimizing queries. (https://docs.mongodb.com/manual/reference/operator/meta/explain/) * @@ -448,7 +440,7 @@ declare class ParseQuery { */ equalTo(key: string | { [key: string]: any; - }, value: mixed): ParseQuery; + }, value?: any): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be not equal to the provided value. @@ -459,7 +451,7 @@ declare class ParseQuery { */ notEqualTo(key: string | { [key: string]: any; - }, value: mixed): ParseQuery; + }, value?: any): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be less than the provided value. @@ -468,7 +460,7 @@ declare class ParseQuery { * @param value The value that provides an upper bound. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - lessThan(key: string, value: mixed): ParseQuery; + lessThan(key: string, value: any): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be greater than the provided value. @@ -477,7 +469,7 @@ declare class ParseQuery { * @param value The value that provides an lower bound. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - greaterThan(key: string, value: mixed): ParseQuery; + greaterThan(key: string, value: any): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be less than or equal to the provided value. @@ -486,7 +478,7 @@ declare class ParseQuery { * @param value The value that provides an upper bound. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - lessThanOrEqualTo(key: string, value: mixed): ParseQuery; + lessThanOrEqualTo(key: string, value: any): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be greater than or equal to the provided value. @@ -495,7 +487,7 @@ declare class ParseQuery { * @param {*} value The value that provides an lower bound. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - greaterThanOrEqualTo(key: string, value: mixed): ParseQuery; + greaterThanOrEqualTo(key: string, value: any): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be contained in the provided list of values. @@ -504,7 +496,7 @@ declare class ParseQuery { * @param {Array<*>} value The values that will match. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - containedIn(key: string, value: Array): ParseQuery; + containedIn(key: string, value: Array): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * not be contained in the provided list of values. @@ -513,7 +505,7 @@ declare class ParseQuery { * @param {Array<*>} value The values that will not match. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - notContainedIn(key: string, value: Array): ParseQuery; + notContainedIn(key: string, value: Array): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * be contained by the provided list of values. Get objects where all array elements match. @@ -522,7 +514,7 @@ declare class ParseQuery { * @param {Array} values The values that will match. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - containedBy(key: string, values: Array): ParseQuery; + containedBy(key: string, values: Array): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * contain each one of the provided list of values. @@ -531,7 +523,7 @@ declare class ParseQuery { * @param {Array} values The values that will match. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - containsAll(key: string, values: Array): ParseQuery; + containsAll(key: string, values: Array): ParseQuery; /** * Adds a constraint to the query that requires a particular key's value to * contain each one of the provided list of values starting with given strings. @@ -561,11 +553,11 @@ declare class ParseQuery { * This may be slow for large datasets. * * @param {string} key The key that the string to match is stored in. - * @param {RegExp} regex The regular expression pattern to match. + * @param {RegExp | string} regex The regular expression pattern to match. * @param {string} modifiers The regular expression mode. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - matches(key: string, regex: RegExp, modifiers: string): ParseQuery; + matches(key: string, regex: RegExp | string, modifiers: string): ParseQuery; /** * Adds a constraint that requires that a key's value matches a Parse.Query * constraint. @@ -648,13 +640,13 @@ declare class ParseQuery { * @param {boolean} options.diacriticSensitive A boolean flag to enable or disable diacritic sensitive search. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - fullText(key: string, value: string, options: Object | null): ParseQuery; + fullText(key: string, value: string, options?: FullTextQueryOptions): ParseQuery; /** * Method to sort the full text search by text score * * @returns {Parse.Query} Returns the query, so you can chain this call. */ - sortByTextScore(): Parse.Query; + sortByTextScore(): this; /** * Adds a constraint for finding string values that start with a provided * string. This query will use the backend index, so it will be fast even @@ -885,6 +877,45 @@ declare class ParseQuery { * which can be used to get liveQuery updates. */ subscribe(sessionToken?: string): Promise; + /** + * Constructs a Parse.Query that is the OR of the passed in queries. For + * example: + *
var compoundQuery = Parse.Query.or(query1, query2, query3);
+ * + * will create a compoundQuery that is an or of the query1, query2, and + * query3. + * + * @param {...Parse.Query} queries The list of queries to OR. + * @static + * @returns {Parse.Query} The query that is the OR of the passed in queries. + */ + static or(...queries: Array): ParseQuery; + /** + * Constructs a Parse.Query that is the AND of the passed in queries. For + * example: + *
var compoundQuery = Parse.Query.and(query1, query2, query3);
+ * + * will create a compoundQuery that is an and of the query1, query2, and + * query3. + * + * @param {...Parse.Query} queries The list of queries to AND. + * @static + * @returns {Parse.Query} The query that is the AND of the passed in queries. + */ + static and(...queries: Array): ParseQuery; + /** + * Constructs a Parse.Query that is the NOR of the passed in queries. For + * example: + *
const compoundQuery = Parse.Query.nor(query1, query2, query3);
+ * + * will create a compoundQuery that is a nor of the query1, query2, and + * query3. + * + * @param {...Parse.Query} queries The list of queries to NOR. + * @static + * @returns {Parse.Query} The query that is the NOR of the passed in queries. + */ + static nor(...queries: Array): ParseQuery; /** * Change the source of this query to the server. * @@ -909,7 +940,7 @@ declare class ParseQuery { * @param {string} name The name of query source. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - fromPinWithName(name?: string): ParseQuery; + fromPinWithName(name?: string | null): ParseQuery; /** * Cancels the current network request (if any is running). * @@ -918,7 +949,7 @@ declare class ParseQuery { cancel(): ParseQuery; _setRequestTask(options: any): void; /** - * Sets a comment to the query so that the query + * Sets a comment to the query so that the query * can be identified when using a the profiler for MongoDB. * * @param {string} value a comment can make your profile data easier to interpret and trace. @@ -926,10 +957,4 @@ declare class ParseQuery { */ comment(value: string): ParseQuery; } -import { FullOptions } from './RESTController'; -import ParseObject from './ParseObject'; -type BatchOptions = FullOptions & { - batchSize?: number; -}; -import ParseGeoPoint from './ParseGeoPoint'; -import LiveQuerySubscription from './LiveQuerySubscription'; +export default ParseQuery; diff --git a/types/ParseRole.d.ts b/types/ParseRole.d.ts index fe82fd571..32da55c56 100644 --- a/types/ParseRole.d.ts +++ b/types/ParseRole.d.ts @@ -1,5 +1,8 @@ -// @ts-nocheck -export default ParseRole; +import ParseACL from './ParseACL'; +import ParseError from './ParseError'; +import ParseObject from './ParseObject'; +import type { AttributeMap } from './ObjectStateMutations'; +import type ParseRelation from './ParseRelation'; /** * Represents a Role on the Parse server. Roles represent groupings of * Users for the purposes of granting permissions (e.g. specifying an ACL @@ -13,7 +16,7 @@ export default ParseRole; * @alias Parse.Role * @augments Parse.Object */ -declare class ParseRole { +declare class ParseRole extends ParseObject { /** * @param {string} name The name of the Role to create. * @param {Parse.ACL} acl The ACL for this role. Roles must have an ACL. @@ -44,7 +47,7 @@ declare class ParseRole { * callbacks. * @returns {(ParseObject|boolean)} true if the set succeeded. */ - setName(name: string, options?: mixed): ParseObject | boolean; + setName(name: string, options?: any): ParseObject | boolean; /** * Gets the Parse.Relation for the Parse.Users that are direct * children of this role. These users are granted any privileges that this @@ -70,10 +73,6 @@ declare class ParseRole { */ getRoles(): ParseRelation; _validateName(newName: any): void; - validate(attrs: AttributeMap, options?: mixed): ParseError | boolean; + validate(attrs: AttributeMap, options?: any): ParseError | boolean; } -import ParseObject from './ParseObject'; -import ParseRelation from './ParseRelation'; -import { AttributeMap } from './ObjectStateMutations'; -import ParseError from './ParseError'; -import ParseACL from './ParseACL'; +export default ParseRole; diff --git a/types/ParseSession.d.ts b/types/ParseSession.d.ts index ce17eb974..aeb0d8c43 100644 --- a/types/ParseSession.d.ts +++ b/types/ParseSession.d.ts @@ -29,7 +29,7 @@ declare class ParseSession extends ParseObject { * object after it has been fetched. If there is no current user, the * promise will be rejected. */ - static current(options: FullOptions): any; + static current(options: FullOptions): Promise; /** * Determines whether the current session token is revocable. * This method is useful for migrating Express.js or Node.js web apps to diff --git a/types/ParseUser.d.ts b/types/ParseUser.d.ts index 5a425bc55..c705f7e71 100644 --- a/types/ParseUser.d.ts +++ b/types/ParseUser.d.ts @@ -1,8 +1,18 @@ -// @ts-nocheck -type AuthData = { - [key: string]: mixed; +import ParseObject from './ParseObject'; +import type { AttributeMap } from './ObjectStateMutations'; +import type { RequestOptions, FullOptions } from './RESTController'; +export type AuthData = { + [key: string]: any; +}; +export type AuthProviderType = { + authenticate?(options: { + error?: (provider: AuthProviderType, error: string | any) => void; + success?: (provider: AuthProviderType, result: AuthData) => void; + }): void; + restoreAuthentication(authData: any): boolean; + getAuthType(): string; + deauthenticate?(): void; }; -export default ParseUser; /** *

A Parse.User object is a local representation of a user persisted to the * Parse cloud. This class is a subclass of a Parse.Object, and retains the @@ -13,7 +23,227 @@ export default ParseUser; * @alias Parse.User * @augments Parse.Object */ -declare class ParseUser { +declare class ParseUser extends ParseObject { + /** + * @param {object} attributes The initial set of data to store in the user. + */ + constructor(attributes?: AttributeMap); + /** + * Request a revocable session token to replace the older style of token. + * + * @param {object} options + * @returns {Promise} A promise that is resolved when the replacement + * token has been fetched. + */ + _upgradeToRevocableSession(options: RequestOptions): Promise; + /** + * Parse allows you to link your users with {@link https://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication 3rd party authentication}, enabling + * your users to sign up or log into your application using their existing identities. + * Since 2.9.0 + * + * @see {@link https://docs.parseplatform.org/js/guide/#linking-users Linking Users} + * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} + * @param {object} options + *

    + *
  • If provider is string, options is {@link http://docs.parseplatform.org/parse-server/guide/#supported-3rd-party-authentications authData} + *
  • If provider is AuthProvider, options is saveOpts + *
+ * @param {object} saveOpts useMasterKey / sessionToken + * @returns {Promise} A promise that is fulfilled with the user is linked + */ + linkWith(provider: AuthProviderType, options: { + authData?: AuthData; + }, saveOpts?: FullOptions): Promise; + /** + * @param provider + * @param options + * @param saveOpts + * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} + * @returns {Promise} + */ + _linkWith(provider: any, options: { + authData?: AuthData; + }, saveOpts?: FullOptions): Promise; + /** + * Synchronizes auth data for a provider (e.g. puts the access token in the + * right place to be used by the Facebook SDK). + * + * @param provider + */ + _synchronizeAuthData(provider: string | AuthProviderType): void; + /** + * Synchronizes authData for all providers. + */ + _synchronizeAllAuthData(): void; + /** + * Removes null values from authData (which exist temporarily for unlinking) + */ + _cleanupAuthData(): void; + /** + * Unlinks a user from a service. + * + * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} + * @param {object} options MasterKey / SessionToken + * @returns {Promise} A promise that is fulfilled when the unlinking + * finishes. + */ + _unlinkFrom(provider: any, options?: FullOptions): Promise; + /** + * Checks whether a user is linked to a service. + * + * @param {object} provider service to link to + * @returns {boolean} true if link was successful + */ + _isLinked(provider: any): boolean; + /** + * Deauthenticates all providers. + */ + _logOutWithAll(): void; + /** + * Deauthenticates a single provider (e.g. removing access tokens from the + * Facebook SDK). + * + * @param {object} provider service to logout of + */ + _logOutWith(provider: any): void; + /** + * Class instance method used to maintain specific keys when a fetch occurs. + * Used to ensure that the session token is not lost. + * + * @returns {object} sessionToken + */ + _preserveFieldsOnFetch(): AttributeMap; + /** + * Returns true if current would return this user. + * + * @returns {boolean} true if user is cached on disk + */ + isCurrent(): boolean; + /** + * Returns true if current would return this user. + * + * @returns {Promise} true if user is cached on disk + */ + isCurrentAsync(): Promise; + stripAnonymity(): void; + restoreAnonimity(anonymousData: any): void; + /** + * Returns get("username"). + * + * @returns {string} + */ + getUsername(): string | null; + /** + * Calls set("username", username, options) and returns the result. + * + * @param {string} username + */ + setUsername(username: string): void; + /** + * Calls set("password", password, options) and returns the result. + * + * @param {string} password User's Password + */ + setPassword(password: string): void; + /** + * Returns get("email"). + * + * @returns {string} User's Email + */ + getEmail(): string | null; + /** + * Calls set("email", email) and returns the result. + * + * @param {string} email + * @returns {boolean} + */ + setEmail(email: string): boolean | ParseObject; + /** + * Returns the session token for this user, if the user has been logged in, + * or if it is the result of a query with the master key. Otherwise, returns + * undefined. + * + * @returns {string} the session token, or undefined + */ + getSessionToken(): string | null; + /** + * Checks whether this user is the current user and has been authenticated. + * + * @returns {boolean} whether this user is the current user and is logged in. + */ + authenticated(): boolean; + /** + * Signs up a new user. You should call this instead of save for + * new Parse.Users. This will create a new Parse.User on the server, and + * also persist the session on disk so that you can access the user using + * current. + * + *

A username and password must be set before calling signUp.

+ * + * @param {object} attrs Extra fields to set on the new user, or null. + * @param {object} options + * @returns {Promise} A promise that is fulfilled when the signup + * finishes. + */ + signUp(attrs: AttributeMap, options?: FullOptions & { + context?: AttributeMap; + }): Promise; + /** + * Logs in a Parse.User. On success, this saves the session to disk, + * so you can retrieve the currently logged in user using + * current. + * + *

A username and password must be set before calling logIn.

+ * + * @param {object} options + * @returns {Promise} A promise that is fulfilled with the user when + * the login is complete. + */ + logIn(options?: FullOptions & { + context?: AttributeMap; + }): Promise; + /** + * Wrap the default save behavior with functionality to save to local + * storage if this is current user. + * + * @param {...any} args + * @returns {Promise} + */ + save(...args: Array): Promise; + /** + * Wrap the default destroy behavior with functionality that logs out + * the current user when it is destroyed + * + * @param {...any} args + * @returns {Parse.User} + */ + destroy(...args: Array): Promise; + /** + * Wrap the default fetch behavior with functionality to save to local + * storage if this is current user. + * + * @param {...any} args + * @returns {Parse.User} + */ + fetch(...args: Array): Promise; + /** + * Wrap the default fetchWithInclude behavior with functionality to save to local + * storage if this is current user. + * + * @param {...any} args + * @returns {Parse.User} + */ + fetchWithInclude(...args: Array): Promise; + /** + * Verify whether a given password is the password of the current user. + * + * @param {string} password The password to be verified. + * @param {object} options The options. + * @param {boolean} [options.ignoreEmailVerification=false] Set to `true` to bypass email verification and verify + * the password regardless of whether the email has been verified. This requires the master key. + * @returns {Promise} A promise that is fulfilled with a user when the password is correct. + */ + verifyPassword(password: string, options?: RequestOptions): Promise; static readOnlyAttributes(): string[]; /** * Adds functionality to the existing Parse.User class. @@ -27,7 +257,7 @@ declare class ParseUser { [prop: string]: any; }, classProps: { [prop: string]: any; - }): Parse.User; + }): typeof ParseUser; /** * Retrieves the currently logged in ParseUser with a valid session, * either from memory or localStorage, if necessary. @@ -58,7 +288,7 @@ declare class ParseUser { * @returns {Promise} A promise that is fulfilled with the user when * the signup completes. */ - static signUp(username: string, password: string, attrs: AttributeMap, options?: FullOptions): Promise; + static signUp(username: string, password: string, attrs: AttributeMap, options?: FullOptions): Promise; /** * Logs in a user with a username (or email) and password. On success, this * saves the session to disk, so you can retrieve the currently logged in @@ -71,7 +301,7 @@ declare class ParseUser { * @returns {Promise} A promise that is fulfilled with the user when * the login completes. */ - static logIn(username: string, password: string, options?: FullOptions): Promise; + static logIn(username: string, password: string, options?: FullOptions): Promise; /** * Logs in a user with a username (or email) and password, and authData. On success, this * saves the session to disk, so you can retrieve the currently logged in @@ -85,7 +315,7 @@ declare class ParseUser { * @returns {Promise} A promise that is fulfilled with the user when * the login completes. */ - static logInWithAdditionalAuth(username: string, password: string, authData: AuthData, options?: FullOptions): Promise; + static logInWithAdditionalAuth(username: string, password: string, authData: AuthData, options?: FullOptions): Promise; /** * Logs in a user with an objectId. On success, this saves the session * to disk, so you can retrieve the currently logged in user using @@ -96,7 +326,7 @@ declare class ParseUser { * @returns {Promise} A promise that is fulfilled with the user when * the login completes. */ - static loginAs(userId: string): Promise; + static loginAs(userId: string): Promise; /** * Logs in a user with a session token. On success, this saves the session * to disk, so you can retrieve the currently logged in user using @@ -108,7 +338,7 @@ declare class ParseUser { * @returns {Promise} A promise that is fulfilled with the user when * the login completes. */ - static become(sessionToken: string, options?: RequestOptions): Promise; + static become(sessionToken: string, options?: RequestOptions): Promise; /** * Retrieves a user with a session token. * @@ -117,7 +347,7 @@ declare class ParseUser { * @static * @returns {Promise} A promise that is fulfilled with the user is fetched. */ - static me(sessionToken: string, options?: RequestOptions): Promise; + static me(sessionToken: string, options?: RequestOptions): Promise; /** * Logs in a user with a session token. On success, this saves the session * to disk, so you can retrieve the currently logged in user using @@ -128,7 +358,7 @@ declare class ParseUser { * @returns {Promise} A promise that is fulfilled with the user when * the login completes. */ - static hydrate(userJSON: AttributeMap): Promise; + static hydrate(userJSON: AttributeMap): Promise; /** * Static version of {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} * @@ -151,7 +381,7 @@ declare class ParseUser { * @returns {Promise} A promise that is resolved when the session is * destroyed on the server. */ - static logOut(options?: RequestOptions): Promise; + static logOut(options?: RequestOptions): Promise; /** * Requests a password reset email to be sent to the specified email address * associated with the user account. This email allows the user to securely @@ -163,7 +393,7 @@ declare class ParseUser { * @static * @returns {Promise} */ - static requestPasswordReset(email: string, options?: RequestOptions): Promise; + static requestPasswordReset(email: string, options?: RequestOptions): Promise; /** * Request an email verification. * @@ -173,18 +403,19 @@ declare class ParseUser { * @static * @returns {Promise} */ - static requestEmailVerification(email: string, options?: RequestOptions): Promise; + static requestEmailVerification(email: string, options?: RequestOptions): Promise; /** * Verify whether a given password is the password of the current user. - * - * @param {string} username A username to be used for identificaiton - * @param {string} password A password to be verified - * @param {object} options * @static - * @returns {Promise} A promise that is fulfilled with a user - * when the password is correct. + * + * @param {string} username The username of the user whose password should be verified. + * @param {string} password The password to be verified. + * @param {object} options The options. + * @param {boolean} [options.ignoreEmailVerification=false] Set to `true` to bypass email verification and verify + * the password regardless of whether the email has been verified. This requires the master key. + * @returns {Promise} A promise that is fulfilled with a user when the password is correct. */ - static verifyPassword(username: string, password: string, options?: RequestOptions): Promise; + static verifyPassword(username: string, password: string, options?: RequestOptions): Promise; /** * Allow someone to define a custom User class without className * being rewritten to _User. The default behavior is to rewrite @@ -209,7 +440,7 @@ declare class ParseUser { * completed. If a replacement session token is requested, the promise * will be resolved after a new token has been fetched. */ - static enableRevocableSession(options?: RequestOptions): Promise; + static enableRevocableSession(options?: RequestOptions): Promise; /** * Enables the use of become or the current user in a server * environment. These features are disabled by default, since they depend on @@ -249,223 +480,8 @@ declare class ParseUser { */ static _logInWith(provider: any, options: { authData?: AuthData; - }, saveOpts?: FullOptions): Promise; + }, saveOpts?: FullOptions): Promise; static _clearCache(): void; static _setCurrentUserCache(user: ParseUser): void; - /** - * @param {object} attributes The initial set of data to store in the user. - */ - constructor(attributes: AttributeMap | null); - /** - * Request a revocable session token to replace the older style of token. - * - * @param {object} options - * @returns {Promise} A promise that is resolved when the replacement - * token has been fetched. - */ - _upgradeToRevocableSession(options: RequestOptions): Promise; - /** - * Parse allows you to link your users with {@link https://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication 3rd party authentication}, enabling - * your users to sign up or log into your application using their existing identities. - * Since 2.9.0 - * - * @see {@link https://docs.parseplatform.org/js/guide/#linking-users Linking Users} - * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} - * @param {object} options - *
    - *
  • If provider is string, options is {@link http://docs.parseplatform.org/parse-server/guide/#supported-3rd-party-authentications authData} - *
  • If provider is AuthProvider, options is saveOpts - *
- * @param {object} saveOpts useMasterKey / sessionToken - * @returns {Promise} A promise that is fulfilled with the user is linked - */ - linkWith(provider: any, options: { - authData?: AuthData; - }, saveOpts?: FullOptions): Promise; - /** - * @param provider - * @param options - * @param saveOpts - * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} - * @returns {Promise} - */ - _linkWith(provider: any, options: { - authData?: AuthData; - }, saveOpts?: FullOptions): Promise; - /** - * Synchronizes auth data for a provider (e.g. puts the access token in the - * right place to be used by the Facebook SDK). - * - * @param provider - */ - _synchronizeAuthData(provider: string): void; - /** - * Synchronizes authData for all providers. - */ - _synchronizeAllAuthData(): void; - /** - * Removes null values from authData (which exist temporarily for unlinking) - */ - _cleanupAuthData(): void; - /** - * Unlinks a user from a service. - * - * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} - * @param {object} options MasterKey / SessionToken - * @returns {Promise} A promise that is fulfilled when the unlinking - * finishes. - */ - _unlinkFrom(provider: any, options?: FullOptions): Promise; - /** - * Checks whether a user is linked to a service. - * - * @param {object} provider service to link to - * @returns {boolean} true if link was successful - */ - _isLinked(provider: any): boolean; - /** - * Deauthenticates all providers. - */ - _logOutWithAll(): void; - /** - * Deauthenticates a single provider (e.g. removing access tokens from the - * Facebook SDK). - * - * @param {object} provider service to logout of - */ - _logOutWith(provider: any): void; - /** - * Class instance method used to maintain specific keys when a fetch occurs. - * Used to ensure that the session token is not lost. - * - * @returns {object} sessionToken - */ - _preserveFieldsOnFetch(): AttributeMap; - /** - * Returns true if current would return this user. - * - * @returns {boolean} true if user is cached on disk - */ - isCurrent(): boolean; - /** - * Returns true if current would return this user. - * - * @returns {Promise} true if user is cached on disk - */ - isCurrentAsync(): Promise; - /** - * Returns get("username"). - * - * @returns {string} - */ - getUsername(): string | null; - /** - * Calls set("username", username, options) and returns the result. - * - * @param {string} username - */ - setUsername(username: string): void; - /** - * Calls set("password", password, options) and returns the result. - * - * @param {string} password User's Password - */ - setPassword(password: string): void; - /** - * Returns get("email"). - * - * @returns {string} User's Email - */ - getEmail(): string | null; - /** - * Calls set("email", email) and returns the result. - * - * @param {string} email - * @returns {boolean} - */ - setEmail(email: string): boolean; - /** - * Returns the session token for this user, if the user has been logged in, - * or if it is the result of a query with the master key. Otherwise, returns - * undefined. - * - * @returns {string} the session token, or undefined - */ - getSessionToken(): string | null; - /** - * Checks whether this user is the current user and has been authenticated. - * - * @returns {boolean} whether this user is the current user and is logged in. - */ - authenticated(): boolean; - /** - * Signs up a new user. You should call this instead of save for - * new Parse.Users. This will create a new Parse.User on the server, and - * also persist the session on disk so that you can access the user using - * current. - * - *

A username and password must be set before calling signUp.

- * - * @param {object} attrs Extra fields to set on the new user, or null. - * @param {object} options - * @returns {Promise} A promise that is fulfilled when the signup - * finishes. - */ - signUp(attrs: AttributeMap, options?: FullOptions): Promise; - /** - * Logs in a Parse.User. On success, this saves the session to disk, - * so you can retrieve the currently logged in user using - * current. - * - *

A username and password must be set before calling logIn.

- * - * @param {object} options - * @returns {Promise} A promise that is fulfilled with the user when - * the login is complete. - */ - logIn(options?: FullOptions): Promise; - /** - * Wrap the default save behavior with functionality to save to local - * storage if this is current user. - * - * @param {...any} args - * @returns {Promise} - */ - save(...args: Array): Promise; - /** - * Wrap the default destroy behavior with functionality that logs out - * the current user when it is destroyed - * - * @param {...any} args - * @returns {Parse.User} - */ - destroy(...args: Array): Promise; - /** - * Wrap the default fetch behavior with functionality to save to local - * storage if this is current user. - * - * @param {...any} args - * @returns {Parse.User} - */ - fetch(...args: Array): Promise; - /** - * Wrap the default fetchWithInclude behavior with functionality to save to local - * storage if this is current user. - * - * @param {...any} args - * @returns {Parse.User} - */ - fetchWithInclude(...args: Array): Promise; - /** - * Verify whether a given password is the password of the current user. - * - * @param {string} password A password to be verified - * @param {object} options - * @returns {Promise} A promise that is fulfilled with a user - * when the password is correct. - */ - verifyPassword(password: string, options?: RequestOptions): Promise; } -import { RequestOptions } from './RESTController'; -import { FullOptions } from './RESTController'; -import { AttributeMap } from './ObjectStateMutations'; +export default ParseUser; diff --git a/types/Push.d.ts b/types/Push.d.ts index 3108e0d24..367171126 100644 --- a/types/Push.d.ts +++ b/types/Push.d.ts @@ -1,4 +1,13 @@ -// @ts-nocheck +import ParseQuery from './ParseQuery'; +import type ParseObject from './ParseObject'; +import type { WhereClause } from './ParseQuery'; +import type { FullOptions } from './RESTController'; +export type PushData = { + where?: WhereClause | ParseQuery; + push_time?: Date | string; + expiration_time?: Date | string; + expiration_interval?: number; +}; /** * Contains functions to deal with Push in Parse. * @@ -32,9 +41,9 @@ * be used for this request. * * @returns {Promise} A promise that is fulfilled when the push request - * completes. + * completes and returns `pushStatusId`. */ -export function send(data: PushData, options?: FullOptions): Promise; +export declare function send(data: PushData, options?: FullOptions): Promise; /** * Gets push status by Id * @@ -48,12 +57,4 @@ export function send(data: PushData, options?: FullOptions): Promise; * * @returns {Parse.Object} Status of Push. */ -export function getPushStatus(pushStatusId: string, options?: FullOptions): Promise; -type PushData = { - where?: WhereClause | ParseQuery; - push_time?: string | Date; - expiration_time?: string | Date; - expiration_interval?: number; -}; -import { FullOptions } from './RESTController'; -export {}; +export declare function getPushStatus(pushStatusId: string, options?: FullOptions): Promise; diff --git a/types/TaskQueue.d.ts b/types/TaskQueue.d.ts index cb0ff5c3b..ae7e55fe9 100644 --- a/types/TaskQueue.d.ts +++ b/types/TaskQueue.d.ts @@ -1 +1,11 @@ -export {}; +type Task = { + task: () => Promise; + _completion: any; +}; +declare class TaskQueue { + queue: Array; + constructor(); + enqueue(task: () => Promise): Promise; + _dequeue(): void; +} +export default TaskQueue; diff --git a/types/tsconfig.json b/types/tsconfig.json index 2edb2f209..d18d38fbe 100644 --- a/types/tsconfig.json +++ b/types/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "commonjs", - "lib": ["es6"], + "lib": ["es6", "dom"], "noImplicitAny": true, "noImplicitThis": true, "strictFunctionTypes": true, diff --git a/types/tslint.json b/types/tslint.json index e5fa37117..044192939 100644 --- a/types/tslint.json +++ b/types/tslint.json @@ -5,6 +5,10 @@ "ban-types": false, "no-unnecessary-generics": false, "no-redundant-jsdoc": false, - "strict-export-declare-modifiers": false + "strict-export-declare-modifiers": false, + "interface-over-type-literal": false, + "no-duplicate-imports": false, + "array-type": false, + "void-return": false } } From dbf9c9100db3ad41a4f04dfd69bffc580160c9f5 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Fri, 17 May 2024 04:54:01 -0500 Subject: [PATCH 05/53] refactor: Run ESLint against TypeScript files (#2135) --- .eslintrc.json | 14 +- package-lock.json | 285 ++++++++---------- package.json | 7 +- src/{Cloud.js => Cloud.ts} | 16 +- src/EventuallyQueue.js | 2 +- src/InstallationController.ts | 8 +- ...{LiveQueryClient.js => LiveQueryClient.ts} | 38 ++- src/{LocalDatastore.js => LocalDatastore.ts} | 20 +- ...js => LocalDatastoreController.default.ts} | 14 +- ... LocalDatastoreController.react-native.ts} | 18 +- ...tastoreUtils.js => LocalDatastoreUtils.ts} | 5 - src/Parse.ts | 2 +- src/{ParseCLP.js => ParseCLP.ts} | 34 +-- src/ParseFile.ts | 29 +- src/ParseInstallation.ts | 16 +- src/ParseObject.ts | 7 +- src/ParseOp.js | 42 +-- src/ParsePolygon.js | 2 +- src/ParseQuery.ts | 20 +- src/ParseSchema.js | 8 +- src/ParseUser.ts | 4 + src/RESTController.js | 2 +- src/SingleInstanceStateController.js | 2 +- src/UniqueInstanceStateController.js | 2 +- src/__tests__/LocalDatastore-test.js | 2 +- src/__tests__/ParseFile-test.js | 3 +- src/__tests__/ParseObject-test.js | 2 +- src/interfaces/AuthProvider.js | 2 +- src/interfaces/xmlhttprequest.js | 2 +- types/Cloud.d.ts | 13 +- types/LiveQueryClient.d.ts | 63 ++-- types/LocalDatastore.d.ts | 70 +++-- types/LocalDatastoreController.default.d.ts | 9 + ...LocalDatastoreController.react-native.d.ts | 10 +- types/LocalDatastoreUtils.d.ts | 13 +- types/ParseCLP.d.ts | 43 +-- types/ParseFile.d.ts | 21 +- types/ParseInstallation.d.ts | 26 +- types/ParseObject.d.ts | 7 +- types/ParseQuery.d.ts | 13 +- types/ParseUser.d.ts | 4 + 41 files changed, 468 insertions(+), 432 deletions(-) rename src/{Cloud.js => Cloud.ts} (91%) rename src/{LiveQueryClient.js => LiveQueryClient.ts} (93%) rename src/{LocalDatastore.js => LocalDatastore.ts} (97%) rename src/{LocalDatastoreController.default.js => LocalDatastoreController.default.ts} (86%) rename src/{LocalDatastoreController.react-native.js => LocalDatastoreController.react-native.ts} (87%) rename src/{LocalDatastoreUtils.js => LocalDatastoreUtils.ts} (92%) rename src/{ParseCLP.js => ParseCLP.ts} (95%) create mode 100644 types/LocalDatastoreController.default.d.ts diff --git a/.eslintrc.json b/.eslintrc.json index dc4a0b0a5..8503d698d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,19 +3,21 @@ "extends": [ "eslint:recommended", "plugin:jsdoc/recommended", - "plugin:flowtype/recommended" + "plugin:flowtype/recommended", + "plugin:@typescript-eslint/recommended" ], "env": { "node": true, "es6": true }, - "parser": "@babel/eslint-parser", + "parser": "@typescript-eslint/parser", "globals": { "wx": true }, "plugins": [ "flowtype", - "jsdoc" + "jsdoc", + "@typescript-eslint" ], "parserOptions": { "ecmaVersion": 6, @@ -36,6 +38,12 @@ "no-console": 0, "no-prototype-builtins": "off", "require-atomic-updates": "off", + "prefer-spread": "off", + "prefer-rest-params": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/no-non-null-assertion": "off", "flowtype/no-types-missing-file-annotation": 0, "jsdoc/require-jsdoc": 0, "jsdoc/require-returns-description": 0, diff --git a/package-lock.json b/package-lock.json index 6f1079b79..df8d02699 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,6 @@ }, "devDependencies": { "@babel/core": "7.22.0", - "@babel/eslint-parser": "7.21.8", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-flow-comments": "7.22.5", "@babel/plugin-transform-flow-strip-types": "7.21.0", @@ -43,7 +42,7 @@ "codecov": "3.8.3", "core-js": "3.30.2", "cross-env": "7.0.2", - "eslint": "8.40.0", + "eslint": "8.56.0", "eslint-plugin-flowtype": "8.0.3", "eslint-plugin-jsdoc": "43.0.7", "express": "4.18.2", @@ -2970,23 +2969,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", - "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3008,9 +3007,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3059,9 +3058,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3499,13 +3498,13 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -3526,9 +3525,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -6336,6 +6335,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@xmldom/xmldom": { "version": "0.8.6", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", @@ -11269,27 +11274,28 @@ } }, "node_modules/eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", - "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -11297,22 +11303,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -11406,9 +11409,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -11485,9 +11488,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -11602,9 +11605,9 @@ } }, "node_modules/eslint/node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { "deep-is": "^0.1.3", @@ -11612,7 +11615,7 @@ "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -11657,18 +11660,6 @@ "node": ">= 0.8.0" } }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11706,12 +11697,12 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -11723,9 +11714,9 @@ } }, "node_modules/espree/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -13936,12 +13927,6 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -17985,16 +17970,6 @@ "url": "https://github.com/sponsors/panva" } }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -29708,9 +29683,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -32065,20 +32040,20 @@ } }, "@eslint-community/regexpp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", - "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true }, "@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -32094,9 +32069,9 @@ "dev": true }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -32126,9 +32101,9 @@ } }, "@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true }, "@fastify/busboy": { @@ -32488,13 +32463,13 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" } }, @@ -32505,9 +32480,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "@isaacs/cliui": { @@ -34685,6 +34660,12 @@ "eslint-visitor-keys": "^3.3.0" } }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "@xmldom/xmldom": { "version": "0.8.6", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", @@ -38696,27 +38677,28 @@ } }, "eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", - "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -38724,22 +38706,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -38790,9 +38769,9 @@ "dev": true }, "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -38868,9 +38847,9 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "requires": { "deep-is": "^0.1.3", @@ -38878,7 +38857,7 @@ "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" } }, "p-limit": { @@ -38905,12 +38884,6 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -38991,26 +38964,26 @@ } }, "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, "dependencies": { "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true } } @@ -40813,12 +40786,6 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -43889,12 +43856,6 @@ "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", "dev": true }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -52931,9 +52892,9 @@ } }, "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true }, "wordwrap": { diff --git a/package.json b/package.json index 0a4f0f3e6..59ee3dc37 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ }, "devDependencies": { "@babel/core": "7.22.0", - "@babel/eslint-parser": "7.21.8", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-flow-comments": "7.22.5", "@babel/plugin-transform-flow-strip-types": "7.21.0", @@ -63,7 +62,7 @@ "codecov": "3.8.3", "core-js": "3.30.2", "cross-env": "7.0.2", - "eslint": "8.40.0", + "eslint": "8.56.0", "eslint-plugin-flowtype": "8.0.3", "eslint-plugin-jsdoc": "43.0.7", "express": "4.18.2", @@ -105,8 +104,8 @@ "test:mongodb:runnerstart": "mongodb-runner start -- --port 27017", "test:types": "dtslint --expectOnly types", "posttest:mongodb": "mongodb-runner stop --all", - "lint": "eslint --cache src/ integration/", - "lint:fix": "eslint --fix --cache src/ integration/", + "lint": "eslint --cache src/ integration/ --ext .js --ext .ts", + "lint:fix": "eslint --fix --cache src/ integration/ --ext .js --ext .ts", "lint:types": "dtslint types", "watch": "cross-env PARSE_BUILD=${PARSE_BUILD} gulp watch", "watch:browser": "cross-env PARSE_BUILD=browser npm run watch", diff --git a/src/Cloud.js b/src/Cloud.ts similarity index 91% rename from src/Cloud.js rename to src/Cloud.ts index 0d218843c..0df7ae95d 100644 --- a/src/Cloud.js +++ b/src/Cloud.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import decode from './decode'; import encode from './encode'; @@ -33,14 +29,14 @@ import type { RequestOptions } from './RESTController'; * @returns {Promise} A promise that will be resolved with the result * of the function. */ -export function run(name: string, data: mixed, options: RequestOptions): Promise { +export function run(name: string, data: any, options: RequestOptions): Promise { options = options || {}; if (typeof name !== 'string' || name.length === 0) { throw new TypeError('Cloud function name must be a string.'); } - const requestOptions = {}; + const requestOptions: RequestOptions = {}; if (options.useMasterKey) { requestOptions.useMasterKey = options.useMasterKey; } @@ -65,7 +61,7 @@ export function run(name: string, data: mixed, options: RequestOptions): Promise * @returns {Promise} A promise that will be resolved with the result * of the function. */ -export function getJobsData(): Promise { +export function getJobsData(): Promise { const requestOptions = { useMasterKey: true, }; @@ -82,7 +78,7 @@ export function getJobsData(): Promise { * @returns {Promise} A promise that will be resolved with the jobStatusId * of the job. */ -export function startJob(name: string, data: mixed): Promise { +export function startJob(name: string, data: any): Promise { if (typeof name !== 'string' || name.length === 0) { throw new TypeError('Cloud job name must be a string.'); } @@ -106,7 +102,7 @@ export function getJobStatus(jobStatusId: string): Promise { } const DefaultController = { - run(name, data, options: RequestOptions) { + run(name: string, data: any, options: RequestOptions) { const RESTController = CoreManager.getRESTController(); const payload = encode(data, true); @@ -131,7 +127,7 @@ const DefaultController = { return RESTController.request('GET', 'cloud_code/jobs/data', null, options); }, - async startJob(name, data, options: RequestOptions) { + async startJob(name: string, data: any, options: RequestOptions) { const RESTController = CoreManager.getRESTController(); const payload = encode(data, true); diff --git a/src/EventuallyQueue.js b/src/EventuallyQueue.js index 521d1e514..f37b4b291 100644 --- a/src/EventuallyQueue.js +++ b/src/EventuallyQueue.js @@ -303,7 +303,7 @@ const EventuallyQueue = { * @param [ms] Milliseconds to ping the server. Default 2000ms * @static */ - poll(ms?: number = 2000) { + poll(ms = 2000) { if (polling) { return; } diff --git a/src/InstallationController.ts b/src/InstallationController.ts index 419e55451..454b93ede 100644 --- a/src/InstallationController.ts +++ b/src/InstallationController.ts @@ -7,7 +7,7 @@ const CURRENT_INSTALLATION_KEY = 'currentInstallation'; const CURRENT_INSTALLATION_ID_KEY = 'currentInstallationId'; let iidCache: string | null = null; -let currentInstallationCache = null; +let currentInstallationCache: ParseInstallation | null = null; let currentInstallationCacheMatchesDisk = false; const InstallationController = { @@ -42,12 +42,12 @@ const InstallationController = { return null; } const path = Storage.generatePath(CURRENT_INSTALLATION_KEY); - let installationData = await Storage.getItemAsync(path); + let installationData: any = await Storage.getItemAsync(path); currentInstallationCacheMatchesDisk = true; if (installationData) { installationData = JSON.parse(installationData); installationData.className = '_Installation'; - const current = ParseInstallation.fromJSON(installationData); + const current = ParseInstallation.fromJSON(installationData) as ParseInstallation; currentInstallationCache = current; return current as ParseInstallation; } @@ -71,7 +71,7 @@ const InstallationController = { iidCache = iid; }, - _setCurrentInstallationCache(installation: ParseInstallation, matchesDisk: boolean = true) { + _setCurrentInstallationCache(installation: ParseInstallation, matchesDisk = true) { currentInstallationCache = installation; currentInstallationCacheMatchesDisk = matchesDisk; }, diff --git a/src/LiveQueryClient.js b/src/LiveQueryClient.ts similarity index 93% rename from src/LiveQueryClient.js rename to src/LiveQueryClient.ts index 9c65ef74d..d4c908a35 100644 --- a/src/LiveQueryClient.js +++ b/src/LiveQueryClient.ts @@ -1,8 +1,9 @@ -import CoreManager from './CoreManager'; +import CoreManager, { WebSocketController } from './CoreManager'; import ParseObject from './ParseObject'; import LiveQuerySubscription from './LiveQuerySubscription'; import { resolvingPromise } from './promiseUtils'; import ParseError from './ParseError'; +import type ParseQuery from './ParseQuery'; // The LiveQuery client inner state const CLIENT_STATE = { @@ -107,15 +108,19 @@ class LiveQueryClient { requestId: number; applicationId: string; serverURL: string; - javascriptKey: ?string; - masterKey: ?string; - sessionToken: ?string; - installationId: ?string; + javascriptKey?: string; + masterKey?: string; + sessionToken?: string; + installationId?: string; additionalProperties: boolean; - connectPromise: Promise; - subscriptions: Map; - socket: any; + connectPromise: any; + subscriptions: Map; + socket: WebSocketController & { closingPromise?: any }; state: string; + reconnectHandle: any; + emitter: any; + on: any; + emit: any; /** * @param {object} options @@ -178,11 +183,11 @@ class LiveQueryClient { * here for more details. The subscription you get is the same subscription you get * from our Standard API. * - * @param {object} query - the ParseQuery you want to subscribe to + * @param {ParseQuery} query - the ParseQuery you want to subscribe to * @param {string} sessionToken (optional) * @returns {LiveQuerySubscription | undefined} */ - subscribe(query: Object, sessionToken: ?string): LiveQuerySubscription { + subscribe(query: ParseQuery, sessionToken?: string): LiveQuerySubscription | undefined { if (!query) { return; } @@ -200,6 +205,7 @@ class LiveQueryClient { keys, watch, }, + sessionToken: undefined as string | undefined, }; if (sessionToken) { @@ -226,7 +232,7 @@ class LiveQueryClient { * @param {object} subscription - subscription you would like to unsubscribe from. * @returns {Promise | undefined} */ - unsubscribe(subscription: Object): ?Promise { + async unsubscribe(subscription: LiveQuerySubscription): Promise { if (!subscription) { return; } @@ -270,7 +276,7 @@ class LiveQueryClient { }; this.socket.onclose = (event) => { - this.socket.closingPromise.resolve(event); + this.socket.closingPromise?.resolve(event); this._handleWebSocketClose(); }; @@ -295,6 +301,7 @@ class LiveQueryClient { where, fields, }, + sessionToken: undefined as string | undefined, }; if (sessionToken) { @@ -313,7 +320,7 @@ class LiveQueryClient { * * @returns {Promise | undefined} CloseEvent {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close_event} */ - close(): ?Promise { + async close(): Promise { if (this.state === CLIENT_STATE.INITIALIZED || this.state === CLIENT_STATE.DISCONNECTED) { return; } @@ -346,6 +353,7 @@ class LiveQueryClient { javascriptKey: this.javascriptKey, masterKey: this.masterKey, sessionToken: this.sessionToken, + installationId: undefined as string | undefined }; if (this.additionalProperties) { connectRequest.installationId = this.installationId; @@ -358,9 +366,9 @@ class LiveQueryClient { if (typeof data === 'string') { data = JSON.parse(data); } - let subscription = null; + let subscription: null | LiveQuerySubscription = null; if (data.requestId) { - subscription = this.subscriptions.get(data.requestId); + subscription = this.subscriptions.get(data.requestId) || null; } const response = { clientId: data.clientId, diff --git a/src/LocalDatastore.js b/src/LocalDatastore.ts similarity index 97% rename from src/LocalDatastore.js rename to src/LocalDatastore.ts index bf552d09d..f7df58614 100644 --- a/src/LocalDatastore.js +++ b/src/LocalDatastore.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import type ParseObject from './ParseObject'; @@ -32,33 +28,33 @@ const LocalDatastore = { isEnabled: false, isSyncing: false, - fromPinWithName(name: string): Promise> { + fromPinWithName(name: string): Promise> { const controller = CoreManager.getLocalDatastoreController(); return controller.fromPinWithName(name); }, - pinWithName(name: string, value: any): Promise { + async pinWithName(name: string, value: any): Promise { const controller = CoreManager.getLocalDatastoreController(); return controller.pinWithName(name, value); }, - unPinWithName(name: string): Promise { + async unPinWithName(name: string): Promise { const controller = CoreManager.getLocalDatastoreController(); return controller.unPinWithName(name); }, - _getAllContents(): Promise { + _getAllContents(): Promise { const controller = CoreManager.getLocalDatastoreController(); return controller.getAllContents(); }, // Use for testing - _getRawStorage(): Promise { + async _getRawStorage(): Promise { const controller = CoreManager.getLocalDatastoreController(); - return controller.getRawStorage(); + return (controller as any).getRawStorage(); }, - _clear(): Promise { + async _clear(): Promise { const controller = CoreManager.getLocalDatastoreController(); return controller.clear(); }, @@ -376,7 +372,7 @@ const LocalDatastore = { return `${OBJECT_PREFIX}${object.className}_${objectId}`; }, - getPinName(pinName: ?string) { + getPinName(pinName?: string) { if (!pinName || pinName === DEFAULT_PIN) { return DEFAULT_PIN; } diff --git a/src/LocalDatastoreController.default.js b/src/LocalDatastoreController.default.ts similarity index 86% rename from src/LocalDatastoreController.default.js rename to src/LocalDatastoreController.default.ts index 7116f28fd..29a1c36c8 100644 --- a/src/LocalDatastoreController.default.js +++ b/src/LocalDatastoreController.default.ts @@ -1,11 +1,8 @@ -/** - * @flow - */ import { isLocalDatastoreKey } from './LocalDatastoreUtils'; import Storage from './Storage'; const LocalDatastoreController = { - async fromPinWithName(name: string): Array { + async fromPinWithName(name: string): Promise> { const values = await Storage.getItemAsync(name); if (!values) { return []; @@ -23,7 +20,7 @@ const LocalDatastoreController = { return Storage.removeItemAsync(name); }, - async getAllContents(): Object { + async getAllContents(): Promise { const keys = await Storage.getAllKeysAsync(); return keys.reduce(async (previousPromise, key) => { const LDS = await previousPromise; @@ -40,7 +37,7 @@ const LocalDatastoreController = { }, // Used for testing - async getRawStorage(): Object { + async getRawStorage(): Promise { const keys = await Storage.getAllKeysAsync(); return keys.reduce(async (previousPromise, key) => { const LDS = await previousPromise; @@ -50,10 +47,10 @@ const LocalDatastoreController = { }, Promise.resolve({})); }, - async clear(): Promise { + async clear(): Promise { const keys = await Storage.getAllKeysAsync(); - const toRemove = []; + const toRemove: string[] = []; for (const key of keys) { if (isLocalDatastoreKey(key)) { toRemove.push(key); @@ -65,3 +62,4 @@ const LocalDatastoreController = { }; module.exports = LocalDatastoreController; +export default LocalDatastoreController; diff --git a/src/LocalDatastoreController.react-native.js b/src/LocalDatastoreController.react-native.ts similarity index 87% rename from src/LocalDatastoreController.react-native.js rename to src/LocalDatastoreController.react-native.ts index 74ebde95f..66324465f 100644 --- a/src/LocalDatastoreController.react-native.js +++ b/src/LocalDatastoreController.react-native.ts @@ -1,13 +1,8 @@ -/** - * @flow - * @private - */ - import { isLocalDatastoreKey } from './LocalDatastoreUtils'; const RNStorage = require('./StorageController.react-native'); const LocalDatastoreController = { - async fromPinWithName(name: string): Promise> { + async fromPinWithName(name: string): Promise> { const values = await RNStorage.getItemAsync(name); if (!values) { return []; @@ -30,9 +25,9 @@ const LocalDatastoreController = { return RNStorage.removeItemAsync(name); }, - async getAllContents(): Promise { + async getAllContents(): Promise { const keys = await RNStorage.getAllKeysAsync(); - const batch = []; + const batch: string[] = []; for (let i = 0; i < keys.length; i += 1) { const key = keys[i]; if (isLocalDatastoreKey(key)) { @@ -40,7 +35,7 @@ const LocalDatastoreController = { } } const LDS = {}; - let results = []; + let results: any[] = []; try { results = await RNStorage.multiGet(batch); } catch (error) { @@ -59,7 +54,7 @@ const LocalDatastoreController = { }, // Used for testing - async getRawStorage(): Promise { + async getRawStorage(): Promise { const keys = await RNStorage.getAllKeysAsync(); const storage = {}; const results = await RNStorage.multiGet(keys); @@ -72,7 +67,7 @@ const LocalDatastoreController = { async clear(): Promise { const keys = await RNStorage.getAllKeysAsync(); - const batch = []; + const batch: string[] = []; for (let i = 0; i < keys.length; i += 1) { const key = keys[i]; if (isLocalDatastoreKey(key)) { @@ -86,3 +81,4 @@ const LocalDatastoreController = { }; module.exports = LocalDatastoreController; +export default LocalDatastoreController; diff --git a/src/LocalDatastoreUtils.js b/src/LocalDatastoreUtils.ts similarity index 92% rename from src/LocalDatastoreUtils.js rename to src/LocalDatastoreUtils.ts index 9ce1fd4bc..bb165520d 100644 --- a/src/LocalDatastoreUtils.js +++ b/src/LocalDatastoreUtils.ts @@ -1,8 +1,3 @@ -/** - * @flow - * @private - */ - const DEFAULT_PIN = '_default'; const PIN_PREFIX = 'parsePin_'; const OBJECT_PREFIX = 'Parse_LDS_'; diff --git a/src/Parse.ts b/src/Parse.ts index 345efdcc9..a3f6de954 100644 --- a/src/Parse.ts +++ b/src/Parse.ts @@ -402,7 +402,7 @@ const Parse: ParseType = { * @param [ms] Milliseconds to ping the server. Default 2000ms * @static */ - enableLocalDatastore(polling = true, ms: number = 2000) { + enableLocalDatastore(polling = true, ms = 2000) { if (!this.applicationId) { console.log("'enableLocalDataStore' must be called after 'initialize'"); return; diff --git a/src/ParseCLP.js b/src/ParseCLP.ts similarity index 95% rename from src/ParseCLP.js rename to src/ParseCLP.ts index ff86e387a..541a3d149 100644 --- a/src/ParseCLP.js +++ b/src/ParseCLP.ts @@ -1,13 +1,9 @@ -/** - * @flow - */ - import ParseRole from './ParseRole'; import ParseUser from './ParseUser'; -type Entity = Entity; +type Entity = ParseUser | ParseRole | string; type UsersMap = { [userId: string]: boolean | any }; -export type PermissionsMap = { [permission: string]: UsersMap }; +export type PermissionsMap = { writeUserFields?: string[], readUserFields?: string[] } & { [permission: string]: UsersMap }; const PUBLIC_KEY = '*'; @@ -323,7 +319,7 @@ class ParseCLP { return permissions; } - _setArrayAccess(permission: string, userId: Entity, fields: string) { + _setArrayAccess(permission: string, userId: Entity, fields: string[]) { userId = this._parseEntity(userId); const permissions = this.permissionsMap[permission][userId]; @@ -356,8 +352,8 @@ class ParseCLP { } } - _getGroupPointerPermissions(operation: string): string[] { - return this.permissionsMap[operation]; + _getGroupPointerPermissions(operation: 'readUserFields' | 'writeUserFields'): string[] { + return this.permissionsMap[operation] || []; } /** @@ -373,7 +369,7 @@ class ParseCLP { * @returns {string[]} User pointer fields */ getReadUserFields(): string[] { - return this._getGroupPointerPermissions('readUserFields'); + return this._getGroupPointerPermissions('readUserFields') || []; } /** @@ -389,7 +385,7 @@ class ParseCLP { * @returns {string[]} User pointer fields */ getWriteUserFields(): string[] { - return this._getGroupPointerPermissions('writeUserFields'); + return this._getGroupPointerPermissions('writeUserFields') || []; } /** @@ -409,7 +405,7 @@ class ParseCLP { * @returns {string[]} */ getProtectedFields(userId: Entity): string[] { - return this._getAccess('protectedFields', userId, false); + return this._getAccess('protectedFields', userId, false) as string[]; } /** @@ -435,9 +431,9 @@ class ParseCLP { */ getReadAccess(userId: Entity): boolean { return ( - this._getAccess('find', userId) && - this._getAccess('get', userId) && - this._getAccess('count', userId) + this._getAccess('find', userId) as boolean && + this._getAccess('get', userId) as boolean && + this._getAccess('count', userId) as boolean ); } @@ -465,10 +461,10 @@ class ParseCLP { */ getWriteAccess(userId: Entity): boolean { return ( - this._getAccess('create', userId) && - this._getAccess('update', userId) && - this._getAccess('delete', userId) && - this._getAccess('addField', userId) + this._getAccess('create', userId) as boolean && + this._getAccess('update', userId) as boolean && + this._getAccess('delete', userId) as boolean && + this._getAccess('addField', userId) as boolean ); } diff --git a/src/ParseFile.ts b/src/ParseFile.ts index 8d8ae79b7..0d9ef880a 100644 --- a/src/ParseFile.ts +++ b/src/ParseFile.ts @@ -22,17 +22,17 @@ export type FileSource = | { format: 'file', file: Blob, - type: string, + type: string | undefined, } | { format: 'base64', base64: string, - type: string, + type: string | undefined, } | { format: 'uri', uri: string, - type: string, + type: string | undefined, }; function b64Digit(number: number): string { @@ -67,8 +67,8 @@ class ParseFile { _previousSave?: Promise; _data?: string; _requestTask?: any; - _metadata?: Object; - _tags?: Object; + _metadata?: object; + _tags?: object; /** * @param name {String} The file's name. This will be prefixed by a unique @@ -97,10 +97,10 @@ class ParseFile { * @param type {String} Optional Content-Type header to use for the file. If * this is omitted, the content type will be inferred from the name's * extension. - * @param metadata {Object} Optional key value pairs to be stored with file object - * @param tags {Object} Optional key value pairs to be stored with file object + * @param metadata {object} Optional key value pairs to be stored with file object + * @param tags {object} Optional key value pairs to be stored with file object */ - constructor(name: string, data?: FileData, type?: string, metadata?: Object, tags?: Object) { + constructor(name: string, data?: FileData, type?: string, metadata?: object, tags?: object) { const specifiedType = type || ''; this._name = name; @@ -184,6 +184,7 @@ class ParseFile { * after you get the file from a Parse.Object. * * @param {object} options An object to specify url options + * @param {boolean} [options.forceSecure] force the url to be secure * @returns {string | undefined} */ url(options?: { forceSecure?: boolean }): string | undefined { @@ -319,11 +320,11 @@ class ParseFile { } const destroyOptions = { useMasterKey: true }; if (options.hasOwnProperty('useMasterKey')) { - destroyOptions.useMasterKey = options.useMasterKey; + destroyOptions.useMasterKey = !!options.useMasterKey; } const controller = CoreManager.getFileController(); return controller.deleteFile(this._name, destroyOptions).then(() => { - this._data = null; + this._data = undefined; this._requestTask = null; return this; }); @@ -433,7 +434,7 @@ class ParseFile { } const DefaultController = { - saveFile: async function (name: string, source: FileSource, options?: FullOptions) { + saveFile: async function (name: string, source: FileSource, options?: FileSaveOptions) { if (source.format !== 'file') { throw new Error('saveFile can only be used with File-type sources.'); } @@ -452,17 +453,17 @@ const DefaultController = { const data = second ? second : first; const newSource = { format: 'base64' as const, - base64: data, + base64: data as string, type: source.type || (source.file ? source.file.type : undefined), }; return await DefaultController.saveBase64(name, newSource, options); }, - saveBase64: function (name: string, source: FileSource, options?: FullOptions) { + saveBase64: function (name: string, source: FileSource, options: FileSaveOptions = {}) { if (source.format !== 'base64') { throw new Error('saveBase64 can only be used with Base64-type sources.'); } - const data: { base64: any, _ContentType?: any, fileData: Object } = { + const data: { base64: any, _ContentType?: any, fileData: any } = { base64: source.base64, fileData: { metadata: { ...options.metadata }, diff --git a/src/ParseInstallation.ts b/src/ParseInstallation.ts index 8e9bce4da..ee7c580fc 100644 --- a/src/ParseInstallation.ts +++ b/src/ParseInstallation.ts @@ -51,6 +51,7 @@ class ParseInstallation extends ParseObject { * * @property {string} appIdentifier * @static + * @returns {string} */ get appIdentifier() { return this.get('appIdentifier'); @@ -61,6 +62,7 @@ class ParseInstallation extends ParseObject { * * @property {string} appVersion * @static + * @returns {string} */ get appVersion() { return this.get('appVersion'); @@ -71,6 +73,7 @@ class ParseInstallation extends ParseObject { * * @property {string} appName * @static + * @returns {string} */ get appName() { return this.get('appName'); @@ -83,6 +86,7 @@ class ParseInstallation extends ParseObject { * * @property {number} badge * @static + * @returns {number} */ get badge() { return this.get('badge'); @@ -93,6 +97,7 @@ class ParseInstallation extends ParseObject { * * @property {string[]} channels * @static + * @returns {string[]} */ get channels() { return this.get('channels'); @@ -103,6 +108,7 @@ class ParseInstallation extends ParseObject { * * @property {string} deviceToken * @static + * @returns {string} */ get deviceToken() { return this.get('deviceToken'); @@ -113,6 +119,7 @@ class ParseInstallation extends ParseObject { * * @property {string} deviceType * @static + * @returns {string} */ get deviceType() { return this.get('deviceType'); @@ -123,6 +130,7 @@ class ParseInstallation extends ParseObject { * * @property {string} GCMSenderId * @static + * @returns {string} */ get GCMSenderId() { return this.get('GCMSenderId'); @@ -133,6 +141,7 @@ class ParseInstallation extends ParseObject { * * @property {string} installationId * @static + * @returns {string} */ get installationId() { return this.get('installationId'); @@ -143,6 +152,7 @@ class ParseInstallation extends ParseObject { * * @property {string} localeIdentifier * @static + * @returns {string} */ get localeIdentifier() { return this.get('localeIdentifier'); @@ -153,6 +163,7 @@ class ParseInstallation extends ParseObject { * * @property {string} parseVersion * @static + * @returns {string} */ get parseVersion() { return this.get('parseVersion'); @@ -163,6 +174,7 @@ class ParseInstallation extends ParseObject { * * @property {string} pushType * @static + * @returns {string} */ get pushType() { return this.get('pushType'); @@ -173,6 +185,7 @@ class ParseInstallation extends ParseObject { * * @property {string} timeZone * @static + * @returns {string} */ get timeZone() { return this.get('timeZone'); @@ -192,6 +205,7 @@ class ParseInstallation extends ParseObject { * * @property {object} DEVICE_TYPES * @static + * @returns {object} */ static get DEVICE_TYPES(): DeviceInterface { return DEVICE_TYPES; @@ -232,7 +246,7 @@ class ParseInstallation extends ParseObject { async save(...args: Array): Promise { try { await super.save.apply(this, args); - } catch (e) { + } catch (e) { if (e.code !== ParseError.OBJECT_NOT_FOUND) { throw e; } diff --git a/src/ParseObject.ts b/src/ParseObject.ts index 0c3c9f4cd..3dd26eb7f 100644 --- a/src/ParseObject.ts +++ b/src/ParseObject.ts @@ -104,6 +104,7 @@ class ParseObject { * @param {string} className The class name for the object * @param {object} attributes The initial set of data to store in the object. * @param {object} options The options for this object instance. + * @param {boolean} [options.ignoreValidation=false] Set to `true` ignore any attribute validation errors. */ constructor( className?: string | { className: string, [attr: string]: any }, @@ -1192,7 +1193,7 @@ class ParseObject { * @returns {Promise} A promise that is fulfilled when the fetch * completes. */ - fetchWithInclude(keys: String | Array>, options: RequestOptions): Promise { + fetchWithInclude(keys: string | Array>, options: RequestOptions): Promise { options = options || {}; options.include = keys; return this.fetch(options); @@ -1605,7 +1606,7 @@ class ParseObject { */ static fetchAllWithInclude( list: Array, - keys: String | Array>, + keys: string | Array>, options: RequestOptions ) { options = options || {}; @@ -1645,7 +1646,7 @@ class ParseObject { */ static fetchAllIfNeededWithInclude( list: Array, - keys: String | Array>, + keys: string | Array>, options: RequestOptions ) { options = options || {}; diff --git a/src/ParseOp.js b/src/ParseOp.js index 2a0d4f494..d31a193a4 100644 --- a/src/ParseOp.js +++ b/src/ParseOp.js @@ -57,20 +57,20 @@ export function opFromJSON(json: { [key: string]: any }): ?Op { export class Op { // Empty parent class - applyTo(value: mixed): mixed {} /* eslint-disable-line no-unused-vars */ - mergeWith(previous: Op): ?Op {} /* eslint-disable-line no-unused-vars */ - toJSON(): mixed {} + applyTo(value: any): any {} /* eslint-disable-line @typescript-eslint/no-unused-vars */ + mergeWith(previous: Op): ?Op {} /* eslint-disable-line @typescript-eslint/no-unused-vars */ + toJSON(): any {} } export class SetOp extends Op { - _value: ?mixed; + _value: ?any; - constructor(value: mixed) { + constructor(value: any) { super(); this._value = value; } - applyTo(): mixed { + applyTo(): any { return this._value; } @@ -108,7 +108,7 @@ export class IncrementOp extends Op { this._amount = amount; } - applyTo(value: ?mixed): number { + applyTo(value: ?any): number { if (typeof value === 'undefined') { return this._amount; } @@ -140,14 +140,14 @@ export class IncrementOp extends Op { } export class AddOp extends Op { - _value: Array; + _value: Array; - constructor(value: mixed | Array) { + constructor(value: any | Array) { super(); this._value = Array.isArray(value) ? value : [value]; } - applyTo(value: mixed): Array { + applyTo(value: any): Array { if (value == null) { return this._value; } @@ -173,20 +173,20 @@ export class AddOp extends Op { throw new Error('Cannot merge Add Op with the previous Op'); } - toJSON(): { __op: string, objects: mixed } { + toJSON(): { __op: string, objects: any } { return { __op: 'Add', objects: encode(this._value, false, true) }; } } export class AddUniqueOp extends Op { - _value: Array; + _value: Array; - constructor(value: mixed | Array) { + constructor(value: any | Array) { super(); this._value = unique(Array.isArray(value) ? value : [value]); } - applyTo(value: mixed | Array): Array { + applyTo(value: any | Array): Array { if (value == null) { return this._value || []; } @@ -225,20 +225,20 @@ export class AddUniqueOp extends Op { throw new Error('Cannot merge AddUnique Op with the previous Op'); } - toJSON(): { __op: string, objects: mixed } { + toJSON(): { __op: string, objects: any } { return { __op: 'AddUnique', objects: encode(this._value, false, true) }; } } export class RemoveOp extends Op { - _value: Array; + _value: Array; - constructor(value: mixed | Array) { + constructor(value: any | Array) { super(); this._value = unique(Array.isArray(value) ? value : [value]); } - applyTo(value: mixed | Array): Array { + applyTo(value: any | Array): Array { if (value == null) { return []; } @@ -295,7 +295,7 @@ export class RemoveOp extends Op { throw new Error('Cannot merge Remove Op with the previous Op'); } - toJSON(): { __op: string, objects: mixed } { + toJSON(): { __op: string, objects: any } { return { __op: 'Remove', objects: encode(this._value, false, true) }; } } @@ -340,7 +340,7 @@ export class RelationOp extends Op { return obj.id; } - applyTo(value: mixed, parent: ParseObject, key?: string): ?ParseRelation { + applyTo(value: any, parent: ParseObject, key?: string): ?ParseRelation { if (!value) { if (!parent || !key) { throw new Error( @@ -425,7 +425,7 @@ export class RelationOp extends Op { throw new Error('Cannot merge Relation Op with the previous Op'); } - toJSON(): { __op?: string, objects?: mixed, ops?: mixed } { + toJSON(): { __op?: string, objects?: any, ops?: any } { const idToPointer = id => { return { __type: 'Pointer', diff --git a/src/ParsePolygon.js b/src/ParsePolygon.js index a7887ea02..828fb9594 100644 --- a/src/ParsePolygon.js +++ b/src/ParsePolygon.js @@ -67,7 +67,7 @@ class ParsePolygon { * @param {(Parse.Polygon | object)} other * @returns {boolean} */ - equals(other: mixed): boolean { + equals(other: any): boolean { if (!(other instanceof ParsePolygon) || this.coordinates.length !== other.coordinates.length) { return false; } diff --git a/src/ParseQuery.ts b/src/ParseQuery.ts index 47a548624..5da1a4c60 100644 --- a/src/ParseQuery.ts +++ b/src/ParseQuery.ts @@ -762,6 +762,8 @@ class ParseQuery { * Counts the number of objects that match this query. * * @param {object} options + * @param {boolean} [options.useMasterKey] + * @param {string} [options.sessionToken] * Valid options are:
    *
  • useMasterKey: In Cloud Code and Node only, causes the Master Key to * be used for this request. @@ -799,10 +801,7 @@ class ParseQuery { * * @param {string} key A field to find distinct values * @param {object} options - * Valid options are:
      - *
    • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
    + * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. * @returns {Promise} A promise that is resolved with the query completes. */ distinct(key: string, options?: { sessionToken?: string }): Promise> { @@ -830,10 +829,8 @@ class ParseQuery { * Executes an aggregate query and returns aggregate results * * @param {(Array|object)} pipeline Array or Object of stages to process query - * @param {object} options Valid options are:
      - *
    • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
    + * @param {object} options + * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. * @returns {Promise} A promise that is resolved with the query completes. */ aggregate(pipeline: any, options?: { sessionToken?: string }): Promise> { @@ -1087,7 +1084,7 @@ class ParseQuery { * @param {boolean} explain Used to toggle the information on the query plan. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - explain(explain: boolean = true): ParseQuery { + explain(explain = true): ParseQuery { if (typeof explain !== 'boolean') { throw new Error('You can only set explain to a boolean value'); } @@ -1366,13 +1363,12 @@ class ParseQuery { * @returns {Parse.Query} Returns the query, so you can chain this call. */ containsAllStartingWith(key: string, values: Array): ParseQuery { - const _this = this; if (!Array.isArray(values)) { values = [values]; } const regexObject = values.map(value => { - return { $regex: _this._regexStartWith(value) }; + return { $regex: this._regexStartWith(value) }; }); return this.containsAll(key, regexObject); @@ -1871,7 +1867,7 @@ class ParseQuery { * @param {boolean} includeCount false - disable, true - enable. * @returns {Parse.Query} Returns the query, so you can chain this call. */ - withCount(includeCount: boolean = true): ParseQuery { + withCount(includeCount = true): ParseQuery { if (typeof includeCount !== 'boolean') { throw new Error('You can only set withCount to a boolean value'); } diff --git a/src/ParseSchema.js b/src/ParseSchema.js index 089cddd32..38cfc9ab4 100644 --- a/src/ParseSchema.js +++ b/src/ParseSchema.js @@ -25,7 +25,7 @@ const FIELD_TYPES = [ type FieldOptions = { required: boolean, - defaultValue: mixed, + defaultValue: any, }; /** @@ -47,9 +47,9 @@ type FieldOptions = { */ class ParseSchema { className: string; - _fields: { [key: string]: mixed }; - _indexes: { [key: string]: mixed }; - _clp: { [key: string]: mixed }; + _fields: { [key: string]: any }; + _indexes: { [key: string]: any }; + _clp: { [key: string]: any }; /** * @param {string} className Parse Class string. diff --git a/src/ParseUser.ts b/src/ParseUser.ts index 48a0c2a66..75756a70e 100644 --- a/src/ParseUser.ts +++ b/src/ParseUser.ts @@ -74,6 +74,7 @@ class ParseUser extends ParseObject { * @see {@link https://docs.parseplatform.org/js/guide/#linking-users Linking Users} * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} * @param {object} options + * @param {object} [options.authData] AuthData to link with *
      *
    • If provider is string, options is {@link http://docs.parseplatform.org/parse-server/guide/#supported-3rd-party-authentications authData} *
    • If provider is AuthProvider, options is saveOpts @@ -148,6 +149,7 @@ class ParseUser extends ParseObject { /** * @param provider * @param options + * @param {object} [options.authData] * @param saveOpts * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} * @returns {Promise} @@ -795,6 +797,7 @@ class ParseUser extends ParseObject { * * @param provider * @param options + * @param {object} [options.authData] * @param saveOpts * @static * @returns {Promise} @@ -977,6 +980,7 @@ class ParseUser extends ParseObject { /** * @param provider * @param options + * @param {object} [options.authData] * @param saveOpts * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#logInWith logInWith} * @static diff --git a/src/RESTController.js b/src/RESTController.js index 59090e76e..a6e8cec60 100644 --- a/src/RESTController.js +++ b/src/RESTController.js @@ -207,7 +207,7 @@ const RESTController = { return promise; }, - request(method: string, path: string, data: mixed, options?: RequestOptions) { + request(method: string, path: string, data: any, options?: RequestOptions) { options = options || {}; let url = CoreManager.get('SERVER_URL'); if (url[url.length - 1] !== '/') { diff --git a/src/SingleInstanceStateController.js b/src/SingleInstanceStateController.js index 01065bcde..9bf086860 100644 --- a/src/SingleInstanceStateController.js +++ b/src/SingleInstanceStateController.js @@ -99,7 +99,7 @@ export function getObjectCache(obj: ObjectIdentifier): ObjectCache { return {}; } -export function estimateAttribute(obj: ObjectIdentifier, attr: string): mixed { +export function estimateAttribute(obj: ObjectIdentifier, attr: string): any { const serverData = getServerData(obj); const pendingOps = getPendingOps(obj); return ObjectStateMutations.estimateAttribute(serverData, pendingOps, obj, attr); diff --git a/src/UniqueInstanceStateController.js b/src/UniqueInstanceStateController.js index 7f82777af..24633ef9f 100644 --- a/src/UniqueInstanceStateController.js +++ b/src/UniqueInstanceStateController.js @@ -93,7 +93,7 @@ export function getObjectCache(obj: ParseObject): ObjectCache { return {}; } -export function estimateAttribute(obj: ParseObject, attr: string): mixed { +export function estimateAttribute(obj: ParseObject, attr: string): any { const serverData = getServerData(obj); const pendingOps = getPendingOps(obj); return ObjectStateMutations.estimateAttribute(serverData, pendingOps, obj, attr); diff --git a/src/__tests__/LocalDatastore-test.js b/src/__tests__/LocalDatastore-test.js index 0cc944062..fa0fdf04f 100644 --- a/src/__tests__/LocalDatastore-test.js +++ b/src/__tests__/LocalDatastore-test.js @@ -723,7 +723,7 @@ describe('LocalDatastore', () => { expect(LocalDatastore.isSyncing).toBe(false); }); - it('updateFromServer on mixed object', async () => { + it('updateFromServer on any object', async () => { LocalDatastore.isEnabled = true; LocalDatastore.isSyncing = false; const testObject = new ParseObject('TestObject'); diff --git a/src/__tests__/ParseFile-test.js b/src/__tests__/ParseFile-test.js index c5d9e7465..f86b010df 100644 --- a/src/__tests__/ParseFile-test.js +++ b/src/__tests__/ParseFile-test.js @@ -1,4 +1,3 @@ -/* global File */ jest.autoMockOff(); jest.mock('http'); jest.mock('https'); @@ -20,8 +19,8 @@ const mockLocalDatastore = { if (!mockLocalDatastore.isEnabled) { return; } - /* eslint-disable no-unused-vars */ // (Taken from LocalDataStore source) This fails for nested objects that are not ParseObject + /* eslint-disable @typescript-eslint/no-unused-vars */ const objectKey = mockLocalDatastore.getKeyForObject(object); }), _updateObjectIfPinned: jest.fn(), diff --git a/src/__tests__/ParseObject-test.js b/src/__tests__/ParseObject-test.js index e608346a3..0a752cee1 100644 --- a/src/__tests__/ParseObject-test.js +++ b/src/__tests__/ParseObject-test.js @@ -121,7 +121,7 @@ const mockLocalDatastore = { if (!mockLocalDatastore.isEnabled) { return; } - /* eslint-disable no-unused-vars */ + /* eslint-disable @typescript-eslint/no-unused-vars */ // (Taken from LocalDataStore source) This fails for nested objects that are not ParseObject const objectKey = mockLocalDatastore.getKeyForObject(object); }), diff --git a/src/interfaces/AuthProvider.js b/src/interfaces/AuthProvider.js index 06df2afc3..933eb5b70 100644 --- a/src/interfaces/AuthProvider.js +++ b/src/interfaces/AuthProvider.js @@ -1,4 +1,4 @@ -/* eslint no-unused-vars: "off" */ +/* eslint-disable @typescript-eslint/no-unused-vars */ /** * @flow */ diff --git a/src/interfaces/xmlhttprequest.js b/src/interfaces/xmlhttprequest.js index afcba1d3f..271ae4e54 100644 --- a/src/interfaces/xmlhttprequest.js +++ b/src/interfaces/xmlhttprequest.js @@ -1,4 +1,4 @@ -/* eslint-disable no-unused-vars */ +/* eslint-disable */ declare module xmlhttprequest { declare var XMLHttpRequest: () => XMLHttpRequest; } diff --git a/types/Cloud.d.ts b/types/Cloud.d.ts index 7af0228fc..6c07bafdb 100644 --- a/types/Cloud.d.ts +++ b/types/Cloud.d.ts @@ -1,4 +1,5 @@ -// @ts-nocheck +import ParseObject from './ParseObject'; +import type { RequestOptions } from './RESTController'; /** * Contains functions for calling and declaring * cloud functions. @@ -21,7 +22,7 @@ * @returns {Promise} A promise that will be resolved with the result * of the function. */ -export function run(name: string, data: mixed, options: RequestOptions): Promise; +export declare function run(name: string, data: any, options: RequestOptions): Promise; /** * Gets data for the current set of cloud jobs. * @@ -30,7 +31,7 @@ export function run(name: string, data: mixed, options: RequestOptions): Promise * @returns {Promise} A promise that will be resolved with the result * of the function. */ -export function getJobsData(): Promise; +export declare function getJobsData(): Promise; /** * Starts a given cloud job, which will process asynchronously. * @@ -41,7 +42,7 @@ export function getJobsData(): Promise; * @returns {Promise} A promise that will be resolved with the jobStatusId * of the job. */ -export function startJob(name: string, data: mixed): Promise; +export declare function startJob(name: string, data: any): Promise; /** * Gets job status by Id * @@ -50,6 +51,4 @@ export function startJob(name: string, data: mixed): Promise; * @param {string} jobStatusId The Id of Job Status. * @returns {Parse.Object} Status of Job. */ -export function getJobStatus(jobStatusId: string): Promise; -import { RequestOptions } from './RESTController'; -import ParseObject from './ParseObject'; +export declare function getJobStatus(jobStatusId: string): Promise; diff --git a/types/LiveQueryClient.d.ts b/types/LiveQueryClient.d.ts index dc42292da..19f19c33f 100644 --- a/types/LiveQueryClient.d.ts +++ b/types/LiveQueryClient.d.ts @@ -1,8 +1,8 @@ -// @ts-nocheck -export default LiveQueryClient; +import { WebSocketController } from './CoreManager'; +import LiveQuerySubscription from './LiveQuerySubscription'; +import type ParseQuery from './ParseQuery'; /** * Creates a new LiveQueryClient. - * Extends events.EventEmitter * cloud functions. * * A wrapper of a standard WebSocket client. We add several useful methods to @@ -45,6 +45,26 @@ export default LiveQueryClient; * @alias Parse.LiveQueryClient */ declare class LiveQueryClient { + attempts: number; + id: number; + requestId: number; + applicationId: string; + serverURL: string; + javascriptKey?: string; + masterKey?: string; + sessionToken?: string; + installationId?: string; + additionalProperties: boolean; + connectPromise: any; + subscriptions: Map; + socket: WebSocketController & { + closingPromise?: any; + }; + state: string; + reconnectHandle: any; + emitter: any; + on: any; + emit: any; /** * @param {object} options * @param {string} options.applicationId - applicationId of your Parse app @@ -55,28 +75,13 @@ declare class LiveQueryClient { * @param {string} options.installationId (optional) */ constructor({ applicationId, serverURL, javascriptKey, masterKey, sessionToken, installationId, }: { - applicationId: string; - serverURL: string; - javascriptKey: string; - masterKey: string; - sessionToken: string; - installationId: string; + applicationId: any; + serverURL: any; + javascriptKey: any; + masterKey: any; + sessionToken: any; + installationId: any; }); - attempts: number; - id: number; - requestId: number; - applicationId: string; - serverURL: string; - javascriptKey: string | null; - masterKey: string | null; - sessionToken: string | null; - installationId: string | null; - additionalProperties: boolean; - connectPromise: Promise; - subscriptions: Map; - socket: any; - state: string; - reconnectHandle: NodeJS.Timeout; shouldOpen(): any; /** * Subscribes to a ParseQuery @@ -88,18 +93,18 @@ declare class LiveQueryClient { * here for more details. The subscription you get is the same subscription you get * from our Standard API. * - * @param {object} query - the ParseQuery you want to subscribe to + * @param {ParseQuery} query - the ParseQuery you want to subscribe to * @param {string} sessionToken (optional) * @returns {LiveQuerySubscription | undefined} */ - subscribe(query: Object, sessionToken: string | null): LiveQuerySubscription; + subscribe(query: ParseQuery, sessionToken?: string): LiveQuerySubscription | undefined; /** * After calling unsubscribe you'll stop receiving events from the subscription object. * * @param {object} subscription - subscription you would like to unsubscribe from. * @returns {Promise | undefined} */ - unsubscribe(subscription: Object): Promise | null; + unsubscribe(subscription: LiveQuerySubscription): Promise; /** * After open is called, the LiveQueryClient will try to send a connect request * to the LiveQuery server. @@ -113,7 +118,7 @@ declare class LiveQueryClient { * * @returns {Promise | undefined} CloseEvent {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close_event} */ - close(): Promise | null; + close(): Promise; _handleReset(): void; _handleWebSocketOpen(): void; _handleWebSocketMessage(event: any): void; @@ -121,4 +126,4 @@ declare class LiveQueryClient { _handleWebSocketError(error: any): void; _handleReconnect(): void; } -import LiveQuerySubscription from './LiveQuerySubscription'; +export default LiveQueryClient; diff --git a/types/LocalDatastore.d.ts b/types/LocalDatastore.d.ts index c8f461765..8508577dd 100644 --- a/types/LocalDatastore.d.ts +++ b/types/LocalDatastore.d.ts @@ -1,22 +1,42 @@ -export default LocalDatastore; -declare namespace LocalDatastore { - let isEnabled: boolean; - let isSyncing: boolean; - function fromPinWithName(name: string): Promise; - function pinWithName(name: string, value: any): Promise; - function unPinWithName(name: string): Promise; - function _getAllContents(): Promise; - function _getRawStorage(): Promise; - function _clear(): Promise; - function _handlePinAllWithName(name: string, objects: ParseObject[]): Promise; - function _handleUnPinAllWithName(name: string, objects: ParseObject[]): Promise; - function _getChildren(object: ParseObject): {}; - function _traverse(object: any, encountered: any): void; - function _serializeObjectsFromPinName(name: string): Promise; - function _serializeObject(objectKey: string, localDatastore: any): Promise; - function _updateObjectIfPinned(object: ParseObject): Promise; - function _destroyObjectIfPinned(object: ParseObject): Promise; - function _updateLocalIdForObject(localId: string, object: ParseObject): Promise; +import type ParseObject from './ParseObject'; +/** + * Provides a local datastore which can be used to store and retrieve Parse.Object.
      + * To enable this functionality, call Parse.enableLocalDatastore(). + * + * Pin object to add to local datastore + * + *
      await object.pin();
      + *
      await object.pinWithName('pinName');
      + * + * Query pinned objects + * + *
      query.fromLocalDatastore();
      + *
      query.fromPin();
      + *
      query.fromPinWithName();
      + * + *
      const localObjects = await query.find();
      + * + * @class Parse.LocalDatastore + * @static + */ +declare const LocalDatastore: { + isEnabled: boolean; + isSyncing: boolean; + fromPinWithName(name: string): Promise>; + pinWithName(name: string, value: any): Promise; + unPinWithName(name: string): Promise; + _getAllContents(): Promise; + _getRawStorage(): Promise; + _clear(): Promise; + _handlePinAllWithName(name: string, objects: Array): Promise; + _handleUnPinAllWithName(name: string, objects: Array): Promise; + _getChildren(object: ParseObject): {}; + _traverse(object: any, encountered: any): void; + _serializeObjectsFromPinName(name: string): Promise; + _serializeObject(objectKey: string, localDatastore: any): Promise; + _updateObjectIfPinned(object: ParseObject): Promise; + _destroyObjectIfPinned(object: ParseObject): Promise; + _updateLocalIdForObject(localId: string, object: ParseObject): Promise; /** * Updates Local Datastore from Server * @@ -28,9 +48,9 @@ declare namespace LocalDatastore { * @name Parse.LocalDatastore.updateFromServer * @static */ - function updateFromServer(): Promise; - function getKeyForObject(object: any): string; - function getPinName(pinName: string): string; - function checkIfEnabled(): boolean; -} -import ParseObject from './ParseObject'; + updateFromServer(): Promise; + getKeyForObject(object: any): string; + getPinName(pinName?: string): string; + checkIfEnabled(): any; +}; +export default LocalDatastore; diff --git a/types/LocalDatastoreController.default.d.ts b/types/LocalDatastoreController.default.d.ts new file mode 100644 index 000000000..8ccbb01b6 --- /dev/null +++ b/types/LocalDatastoreController.default.d.ts @@ -0,0 +1,9 @@ +declare const LocalDatastoreController: { + fromPinWithName(name: string): Promise>; + pinWithName(name: string, value: any): any; + unPinWithName(name: string): any; + getAllContents(): Promise; + getRawStorage(): Promise; + clear(): Promise; +}; +export default LocalDatastoreController; diff --git a/types/LocalDatastoreController.react-native.d.ts b/types/LocalDatastoreController.react-native.d.ts index cb0ff5c3b..2db09d794 100644 --- a/types/LocalDatastoreController.react-native.d.ts +++ b/types/LocalDatastoreController.react-native.d.ts @@ -1 +1,9 @@ -export {}; +declare const LocalDatastoreController: { + fromPinWithName(name: string): Promise>; + pinWithName(name: string, value: any): Promise; + unPinWithName(name: string): Promise; + getAllContents(): Promise; + getRawStorage(): Promise; + clear(): Promise; +}; +export default LocalDatastoreController; diff --git a/types/LocalDatastoreUtils.d.ts b/types/LocalDatastoreUtils.d.ts index 3fba166c3..7472e6570 100644 --- a/types/LocalDatastoreUtils.d.ts +++ b/types/LocalDatastoreUtils.d.ts @@ -1,8 +1,5 @@ -/** - * @flow - * @private - */ -export const DEFAULT_PIN: "_default"; -export const PIN_PREFIX: "parsePin_"; -export const OBJECT_PREFIX: "Parse_LDS_"; -export function isLocalDatastoreKey(key: string): boolean; +declare const DEFAULT_PIN = "_default"; +declare const PIN_PREFIX = "parsePin_"; +declare const OBJECT_PREFIX = "Parse_LDS_"; +declare function isLocalDatastoreKey(key: string): boolean; +export { DEFAULT_PIN, PIN_PREFIX, OBJECT_PREFIX, isLocalDatastoreKey }; diff --git a/types/ParseCLP.d.ts b/types/ParseCLP.d.ts index 14b36e7d3..eaa7d6b26 100644 --- a/types/ParseCLP.d.ts +++ b/types/ParseCLP.d.ts @@ -1,11 +1,15 @@ -type PermissionsMap = { - [permission: string]: UsersMap; -}; -export default ParseCLP; +import ParseRole from './ParseRole'; +import ParseUser from './ParseUser'; +type Entity = ParseUser | ParseRole | string; type UsersMap = { - [userId: string]: any; + [userId: string]: boolean | any; +}; +export type PermissionsMap = { + writeUserFields?: string[]; + readUserFields?: string[]; +} & { + [permission: string]: UsersMap; }; -declare const UsersMap: any; /** * Creates a new CLP. * If no argument is given, the CLP has no permissions for anyone. @@ -99,11 +103,11 @@ declare const UsersMap: any; * @alias Parse.CLP */ declare class ParseCLP { + permissionsMap: PermissionsMap; /** * @param {(Parse.User | Parse.Role | object)} userId The user to initialize the CLP for */ constructor(userId: ParseUser | ParseRole | PermissionsMap); - permissionsMap: PermissionsMap; /** * Returns a JSON-encoded version of the CLP. * @@ -118,12 +122,12 @@ declare class ParseCLP { */ equals(other: ParseCLP): boolean; _getRoleName(role: ParseRole | string): string; - _parseEntity(entity: any): string; - _setAccess(permission: string, userId: any, allowed: boolean): void; - _getAccess(permission: string, userId: any, returnBoolean?: boolean): boolean | string[]; - _setArrayAccess(permission: string, userId: any, fields: string): void; + _parseEntity(entity: Entity): string; + _setAccess(permission: string, userId: Entity, allowed: boolean): void; + _getAccess(permission: string, userId: Entity, returnBoolean?: boolean): boolean | string[]; + _setArrayAccess(permission: string, userId: Entity, fields: string[]): void; _setGroupPointerPermission(operation: string, pointerFields: string[]): void; - _getGroupPointerPermissions(operation: string): string[]; + _getGroupPointerPermissions(operation: 'readUserFields' | 'writeUserFields'): string[]; /** * Sets user pointer fields to allow permission for get/count/find operations. * @@ -150,21 +154,21 @@ declare class ParseCLP { * @param userId An instance of Parse.User or its objectId. * @param {string[]} fields fields to be protected */ - setProtectedFields(userId: any, fields: string[]): void; + setProtectedFields(userId: Entity, fields: string[]): void; /** * Returns array of fields are accessable to this user. * * @param userId An instance of Parse.User or its objectId, or a Parse.Role. * @returns {string[]} */ - getProtectedFields(userId: any): string[]; + getProtectedFields(userId: Entity): string[]; /** * Sets whether the given user is allowed to read from this class. * * @param userId An instance of Parse.User or its objectId. * @param {boolean} allowed whether that user should have read access. */ - setReadAccess(userId: any, allowed: boolean): void; + setReadAccess(userId: Entity, allowed: boolean): void; /** * Get whether the given user id is *explicitly* allowed to read from this class. * Even if this returns false, the user may still be able to access it if @@ -174,14 +178,14 @@ declare class ParseCLP { * @param userId An instance of Parse.User or its objectId, or a Parse.Role. * @returns {boolean} */ - getReadAccess(userId: any): boolean; + getReadAccess(userId: Entity): boolean; /** * Sets whether the given user id is allowed to write to this class. * * @param userId An instance of Parse.User or its objectId, or a Parse.Role.. * @param {boolean} allowed Whether that user should have write access. */ - setWriteAccess(userId: any, allowed: boolean): void; + setWriteAccess(userId: Entity, allowed: boolean): void; /** * Gets whether the given user id is *explicitly* allowed to write to this class. * Even if this returns false, the user may still be able to write it if @@ -191,7 +195,7 @@ declare class ParseCLP { * @param userId An instance of Parse.User or its objectId, or a Parse.Role. * @returns {boolean} */ - getWriteAccess(userId: any): boolean; + getWriteAccess(userId: Entity): boolean; /** * Sets whether the public is allowed to read from this class. * @@ -286,5 +290,4 @@ declare class ParseCLP { */ setRoleProtectedFields(role: ParseRole | string, fields: string[]): void; } -import ParseRole from './ParseRole'; -import ParseUser from './ParseUser'; +export default ParseCLP; diff --git a/types/ParseFile.d.ts b/types/ParseFile.d.ts index ce3a09942..5ac7c3407 100644 --- a/types/ParseFile.d.ts +++ b/types/ParseFile.d.ts @@ -17,15 +17,15 @@ export type FileSaveOptions = FullOptions & { export type FileSource = { format: 'file'; file: Blob; - type: string; + type: string | undefined; } | { format: 'base64'; base64: string; - type: string; + type: string | undefined; } | { format: 'uri'; uri: string; - type: string; + type: string | undefined; }; /** * A Parse.File is a local representation of a file that is saved to the Parse @@ -40,8 +40,8 @@ declare class ParseFile { _previousSave?: Promise; _data?: string; _requestTask?: any; - _metadata?: Object; - _tags?: Object; + _metadata?: object; + _tags?: object; /** * @param name {String} The file's name. This will be prefixed by a unique * value once the file has finished saving. The file name must begin with @@ -69,10 +69,10 @@ declare class ParseFile { * @param type {String} Optional Content-Type header to use for the file. If * this is omitted, the content type will be inferred from the name's * extension. - * @param metadata {Object} Optional key value pairs to be stored with file object - * @param tags {Object} Optional key value pairs to be stored with file object + * @param metadata {object} Optional key value pairs to be stored with file object + * @param tags {object} Optional key value pairs to be stored with file object */ - constructor(name: string, data?: FileData, type?: string, metadata?: Object, tags?: Object); + constructor(name: string, data?: FileData, type?: string, metadata?: object, tags?: object); /** * Return the data for the file, downloading it if not already present. * Data is present if initialized with Byte Array, Base64 or Saved with Uri. @@ -94,6 +94,7 @@ declare class ParseFile { * after you get the file from a Parse.Object. * * @param {object} options An object to specify url options + * @param {boolean} [options.forceSecure] force the url to be secure * @returns {string | undefined} */ url(options?: { @@ -104,13 +105,13 @@ declare class ParseFile { * * @returns {object} */ - metadata(): Object; + metadata(): object; /** * Gets the tags of the file. * * @returns {object} */ - tags(): Object; + tags(): object; /** * Saves the file to the Parse cloud. * diff --git a/types/ParseInstallation.d.ts b/types/ParseInstallation.d.ts index a7c599fc3..2f07cd594 100644 --- a/types/ParseInstallation.d.ts +++ b/types/ParseInstallation.d.ts @@ -29,6 +29,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} appIdentifier * @static + * @returns {string} */ get appIdentifier(): any; /** @@ -36,6 +37,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} appVersion * @static + * @returns {string} */ get appVersion(): any; /** @@ -43,6 +45,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} appName * @static + * @returns {string} */ get appName(): any; /** @@ -52,6 +55,7 @@ declare class ParseInstallation extends ParseObject { * * @property {number} badge * @static + * @returns {number} */ get badge(): any; /** @@ -59,6 +63,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string[]} channels * @static + * @returns {string[]} */ get channels(): any; /** @@ -66,6 +71,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} deviceToken * @static + * @returns {string} */ get deviceToken(): any; /** @@ -73,6 +79,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} deviceType * @static + * @returns {string} */ get deviceType(): any; /** @@ -80,6 +87,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} GCMSenderId * @static + * @returns {string} */ get GCMSenderId(): any; /** @@ -87,6 +95,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} installationId * @static + * @returns {string} */ get installationId(): any; /** @@ -94,6 +103,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} localeIdentifier * @static + * @returns {string} */ get localeIdentifier(): any; /** @@ -101,6 +111,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} parseVersion * @static + * @returns {string} */ get parseVersion(): any; /** @@ -108,6 +119,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} pushType * @static + * @returns {string} */ get pushType(): any; /** @@ -115,6 +127,7 @@ declare class ParseInstallation extends ParseObject { * * @property {string} timeZone * @static + * @returns {string} */ get timeZone(): any; /** @@ -131,15 +144,26 @@ declare class ParseInstallation extends ParseObject { * * @property {object} DEVICE_TYPES * @static + * @returns {object} */ static get DEVICE_TYPES(): DeviceInterface; /** - * Wrap the default save behavior with functionality to save to local storage. + * Wrap the default fetch behavior with functionality to update local storage. + * If the installation is deleted on the server, retry the fetch as a save operation. + * + * @param {...any} args + * @returns {Promise} + */ + fetch(...args: Array): Promise; + /** + * Wrap the default save behavior with functionality to update the local storage. + * If the installation is deleted on the server, retry saving a new installation. * * @param {...any} args * @returns {Promise} */ save(...args: Array): Promise; + _markAllFieldsDirty(): void; /** * Get the current Parse.Installation from disk. If doesn't exists, create an new installation. * diff --git a/types/ParseObject.d.ts b/types/ParseObject.d.ts index 00c400d14..38dd2822a 100644 --- a/types/ParseObject.d.ts +++ b/types/ParseObject.d.ts @@ -50,6 +50,7 @@ declare class ParseObject { * @param {string} className The class name for the object * @param {object} attributes The initial set of data to store in the object. * @param {object} options The options for this object instance. + * @param {boolean} [options.ignoreValidation=false] Set to `true` ignore any attribute validation errors. */ constructor(className?: string | { className: string; @@ -440,7 +441,7 @@ declare class ParseObject { * @returns {Promise} A promise that is fulfilled when the fetch * completes. */ - fetchWithInclude(keys: String | Array>, options: RequestOptions): Promise; + fetchWithInclude(keys: string | Array>, options: RequestOptions): Promise; /** * Saves this object to the server at some unspecified time in the future, * even if Parse is currently inaccessible. @@ -706,7 +707,7 @@ declare class ParseObject { * @static * @returns {Parse.Object[]} */ - static fetchAllWithInclude(list: Array, keys: String | Array>, options: RequestOptions): Promise; + static fetchAllWithInclude(list: Array, keys: string | Array>, options: RequestOptions): Promise; /** * Fetches the given list of Parse.Object if needed. * If any error is encountered, stops and calls the error handler. @@ -737,7 +738,7 @@ declare class ParseObject { * @static * @returns {Parse.Object[]} */ - static fetchAllIfNeededWithInclude(list: Array, keys: String | Array>, options: RequestOptions): Promise; + static fetchAllIfNeededWithInclude(list: Array, keys: string | Array>, options: RequestOptions): Promise; /** * Fetches the given list of Parse.Object if needed. * If any error is encountered, stops and calls the error handler. diff --git a/types/ParseQuery.d.ts b/types/ParseQuery.d.ts index 0892a5bc0..35ab7d09a 100644 --- a/types/ParseQuery.d.ts +++ b/types/ParseQuery.d.ts @@ -246,6 +246,8 @@ declare class ParseQuery { * Counts the number of objects that match this query. * * @param {object} options + * @param {boolean} [options.useMasterKey] + * @param {string} [options.sessionToken] * Valid options are:
        *
      • useMasterKey: In Cloud Code and Node only, causes the Master Key to * be used for this request. @@ -264,10 +266,7 @@ declare class ParseQuery { * * @param {string} key A field to find distinct values * @param {object} options - * Valid options are:
          - *
        • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
        + * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. * @returns {Promise} A promise that is resolved with the query completes. */ distinct(key: string, options?: { @@ -277,10 +276,8 @@ declare class ParseQuery { * Executes an aggregate query and returns aggregate results * * @param {(Array|object)} pipeline Array or Object of stages to process query - * @param {object} options Valid options are:
          - *
        • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
        + * @param {object} options + * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. * @returns {Promise} A promise that is resolved with the query completes. */ aggregate(pipeline: any, options?: { diff --git a/types/ParseUser.d.ts b/types/ParseUser.d.ts index c705f7e71..cf70506f0 100644 --- a/types/ParseUser.d.ts +++ b/types/ParseUser.d.ts @@ -44,6 +44,7 @@ declare class ParseUser extends ParseObject { * @see {@link https://docs.parseplatform.org/js/guide/#linking-users Linking Users} * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} * @param {object} options + * @param {object} [options.authData] AuthData to link with *
          *
        • If provider is string, options is {@link http://docs.parseplatform.org/parse-server/guide/#supported-3rd-party-authentications authData} *
        • If provider is AuthProvider, options is saveOpts @@ -57,6 +58,7 @@ declare class ParseUser extends ParseObject { /** * @param provider * @param options + * @param {object} [options.authData] * @param saveOpts * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} * @returns {Promise} @@ -364,6 +366,7 @@ declare class ParseUser extends ParseObject { * * @param provider * @param options + * @param {object} [options.authData] * @param saveOpts * @static * @returns {Promise} @@ -473,6 +476,7 @@ declare class ParseUser extends ParseObject { /** * @param provider * @param options + * @param {object} [options.authData] * @param saveOpts * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#logInWith logInWith} * @static From 8e189cf6b25a765f892545c9c6b2f697b010d9fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 16:28:14 +0200 Subject: [PATCH 06/53] refactor: Bump eslint-plugin-jsdoc from 43.0.7 to 48.2.5 (#2140) --- package-lock.json | 203 ++++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 162 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index df8d02699..c78503b78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "cross-env": "7.0.2", "eslint": "8.56.0", "eslint-plugin-flowtype": "8.0.3", - "eslint-plugin-jsdoc": "43.0.7", + "eslint-plugin-jsdoc": "48.2.5", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", @@ -2940,17 +2940,33 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", - "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", + "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", "dev": true, "dependencies": { - "comment-parser": "1.3.1", + "@types/eslint": "^8.56.5", + "@types/estree": "^1.0.5", + "@typescript-eslint/types": "^7.2.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" + "node": ">=16" + } + }, + "node_modules/@es-joy/jsdoccomment/node_modules/@typescript-eslint/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", + "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@eslint-community/eslint-utils": { @@ -5778,6 +5794,22 @@ "@types/node": "*" } }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -9091,9 +9123,9 @@ } }, "node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -11347,25 +11379,26 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "43.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-43.0.7.tgz", - "integrity": "sha512-32Sx5I9VzO/bqbtslCu3L1GHIPo+QEliwqwjWq+qzbUv76wrkH6ifUEE0EbkuNEn+cHlSIOrg/IJ1PGNN72QZA==", + "version": "48.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz", + "integrity": "sha512-ZeTfKV474W1N9niWfawpwsXGu+ZoMXu4417eBROX31d7ZuOk8zyG66SO77DpJ2+A9Wa2scw/jRqBPnnQo7VbcQ==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.37.1", + "@es-joy/jsdoccomment": "~0.43.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.3.1", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.5.0", - "spdx-expression-parse": "^3.0.1" + "is-builtin-module": "^3.2.1", + "semver": "^7.6.1", + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" + "node": ">=18" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { @@ -11381,13 +11414,10 @@ } }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -11395,6 +11425,16 @@ "node": ">=10" } }, + "node_modules/eslint-plugin-jsdoc/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -15532,6 +15572,33 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-builtin-module/node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -32020,14 +32087,25 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", - "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", + "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", "dev": true, "requires": { - "comment-parser": "1.3.1", + "@types/eslint": "^8.56.5", + "@types/estree": "^1.0.5", + "@typescript-eslint/types": "^7.2.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", + "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "dev": true + } } }, "@eslint-community/eslint-utils": { @@ -34206,6 +34284,22 @@ "@types/node": "*" } }, + "@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -36896,9 +36990,9 @@ "dev": true }, "comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true }, "commondir": { @@ -38921,19 +39015,20 @@ } }, "eslint-plugin-jsdoc": { - "version": "43.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-43.0.7.tgz", - "integrity": "sha512-32Sx5I9VzO/bqbtslCu3L1GHIPo+QEliwqwjWq+qzbUv76wrkH6ifUEE0EbkuNEn+cHlSIOrg/IJ1PGNN72QZA==", + "version": "48.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz", + "integrity": "sha512-ZeTfKV474W1N9niWfawpwsXGu+ZoMXu4417eBROX31d7ZuOk8zyG66SO77DpJ2+A9Wa2scw/jRqBPnnQo7VbcQ==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.37.1", + "@es-joy/jsdoccomment": "~0.43.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.3.1", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.5.0", - "spdx-expression-parse": "^3.0.1" + "is-builtin-module": "^3.2.1", + "semver": "^7.6.1", + "spdx-expression-parse": "^4.0.0" }, "dependencies": { "escape-string-regexp": { @@ -38943,12 +39038,19 @@ "dev": true }, "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } } } @@ -42065,6 +42167,23 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + }, + "dependencies": { + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + } + } + }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", diff --git a/package.json b/package.json index 59ee3dc37..685350241 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "cross-env": "7.0.2", "eslint": "8.56.0", "eslint-plugin-flowtype": "8.0.3", - "eslint-plugin-jsdoc": "43.0.7", + "eslint-plugin-jsdoc": "48.2.5", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", From 25ec684bf01cf9cd616ceff6f5d30e2e7fb83a5a Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Fri, 17 May 2024 13:10:29 -0500 Subject: [PATCH 07/53] feat: Support dot notation on array fields (#2120) --- src/ObjectStateMutations.ts | 57 ++++++++++++---- src/__tests__/ObjectStateMutations-test.js | 75 ++++++++++++++++++++++ 2 files changed, 121 insertions(+), 11 deletions(-) diff --git a/src/ObjectStateMutations.ts b/src/ObjectStateMutations.ts index 2a11cd856..b3d2674cb 100644 --- a/src/ObjectStateMutations.ts +++ b/src/ObjectStateMutations.ts @@ -114,16 +114,25 @@ export function estimateAttributes( } } else { if (attr.includes('.')) { - // convert a.b.c into { a: { b: { c: value } } } + // similar to nestedSet function const fields = attr.split('.'); const last = fields[fields.length - 1]; let object = data; for (let i = 0; i < fields.length - 1; i++) { const key = fields[i]; if (!(key in object)) { - object[key] = {}; + const nextKey = fields[i + 1]; + if (!isNaN(nextKey)) { + object[key] = []; + } else { + object[key] = {}; + } } else { - object[key] = { ...object[key] }; + if (Array.isArray(object[key])) { + object[key] = [ ...object[key] ]; + } else { + object[key] = { ...object[key] }; + } } object = object[key]; } @@ -137,18 +146,34 @@ export function estimateAttributes( return data; } +/** + * Allows setting properties/variables deep in an object. + * Converts a.b into { a: { b: value } } for dot notation on Objects + * Converts a.0.b into { a: [{ b: value }] } for dot notation on Arrays + * + * @param obj The object to assign the value to + * @param key The key to assign. If it's in a deeper path, then use dot notation (`prop1.prop2.prop3`) + * Note that intermediate object(s) in the nested path are automatically created if they don't exist. + * @param value The value to assign. If it's an `undefined` then the key is deleted. + */ function nestedSet(obj, key, value) { - const path = key.split('.'); - for (let i = 0; i < path.length - 1; i++) { - if (!(path[i] in obj)) { - obj[path[i]] = {}; + const paths = key.split('.'); + for (let i = 0; i < paths.length - 1; i++) { + const path = paths[i]; + if (!(path in obj)) { + const nextPath = paths[i + 1]; + if (!isNaN(nextPath)) { + obj[path] = []; + } else { + obj[path] = {}; + } } - obj = obj[path[i]]; + obj = obj[path]; } if (typeof value === 'undefined') { - delete obj[path[path.length - 1]]; + delete obj[paths[paths.length - 1]]; } else { - obj[path[path.length - 1]] = value; + obj[paths[paths.length - 1]] = value; } } @@ -159,7 +184,17 @@ export function commitServerChanges( ) { const ParseObject = CoreManager.getParseObject(); for (const attr in changes) { - const val = changes[attr]; + let val = changes[attr]; + // Check for JSON array { '0': { something }, '1': { something } } + if ( + val && + typeof val === 'object' && + !Array.isArray(val) && + Object.keys(val).length > 0 && + Object.keys(val).some(k => !isNaN(parseInt(k))) + ) { + val = Object.values(val); + } nestedSet(serverData, attr, val); if ( val && diff --git a/src/__tests__/ObjectStateMutations-test.js b/src/__tests__/ObjectStateMutations-test.js index 34f7885a1..898f7e606 100644 --- a/src/__tests__/ObjectStateMutations-test.js +++ b/src/__tests__/ObjectStateMutations-test.js @@ -196,6 +196,53 @@ describe('ObjectStateMutations', () => { }); }); + it('can estimate attributes for nested array documents', () => { + // Test without initial value + let serverData = { _id: 'someId', className: 'bug' }; + let pendingOps = [{ 'items.0.count': new ParseOps.IncrementOp(1) }]; + expect( + ObjectStateMutations.estimateAttributes(serverData, pendingOps, 'someClass', 'someId') + ).toEqual({ + _id: 'someId', + items: [{ count: 1 }], + className: 'bug', + }); + + // Test one level nested + serverData = { + _id: 'someId', + items: [{ value: 'a', count: 5 }, { value: 'b', count: 1 } ], + className: 'bug', + number: 2 + } + pendingOps = [{ 'items.0.count': new ParseOps.IncrementOp(1) }]; + expect( + ObjectStateMutations.estimateAttributes(serverData, pendingOps, 'someClass', 'someId') + ).toEqual({ + _id: 'someId', + items: [{ value: 'a', count: 6 }, { value: 'b', count: 1 }], + className: 'bug', + number: 2 + }); + + // Test multiple level nested fields + serverData = { + _id: 'someId', + items: [{ value: { count: 54 }, count: 5 }, { value: 'b', count: 1 }], + className: 'bug', + number: 2 + } + pendingOps = [{ 'items.0.value.count': new ParseOps.IncrementOp(6) }]; + expect( + ObjectStateMutations.estimateAttributes(serverData, pendingOps, 'someClass', 'someId') + ).toEqual({ + _id: 'someId', + items: [{ value: { count: 60 }, count: 5 }, { value: 'b', count: 1 }], + className: 'bug', + number: 2 + }); + }); + it('can commit changes from the server', () => { const serverData = {}; const objectCache = {}; @@ -218,6 +265,34 @@ describe('ObjectStateMutations', () => { expect(objectCache).toEqual({ data: '{"count":5}' }); }); + it('can commit dot notation array changes from the server', () => { + const serverData = { items: [{ value: 'a', count: 5 }, { value: 'b', count: 1 }] }; + ObjectStateMutations.commitServerChanges(serverData, {}, { + 'items.0.count': 15, + 'items.1.count': 4, + }); + expect(serverData).toEqual({ items: [{ value: 'a', count: 15 }, { value: 'b', count: 4 }] }); + }); + + it('can commit dot notation array changes from the server to empty serverData', () => { + const serverData = {}; + ObjectStateMutations.commitServerChanges(serverData, {}, { + 'items.0.count': 15, + 'items.1.count': 4, + }); + expect(serverData).toEqual({ items: [{ count: 15 }, { count: 4 }] }); + }); + + it('can commit nested json array changes from the server to empty serverData', () => { + const serverData = {}; + const objectCache = {}; + ObjectStateMutations.commitServerChanges(serverData, objectCache, { + items: { '0': { count: 20 }, '1': { count: 5 } } + }); + expect(serverData).toEqual({ items: [ { count: 20 }, { count: 5 } ] }); + expect(objectCache).toEqual({ items: '[{"count":20},{"count":5}]' }); + }); + it('can generate a default state for implementations', () => { expect(ObjectStateMutations.defaultState()).toEqual({ serverData: {}, From a9d98b47aebc9878eaa29180c7f85e5b527472b3 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 17 May 2024 18:11:46 +0000 Subject: [PATCH 08/53] chore(release): 5.2.0-alpha.1 [skip ci] # [5.2.0-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.1-alpha.1...5.2.0-alpha.1) (2024-05-17) ### Features * Support dot notation on array fields ([#2120](https://github.com/parse-community/Parse-SDK-JS/issues/2120)) ([25ec684](https://github.com/parse-community/Parse-SDK-JS/commit/25ec684bf01cf9cd616ceff6f5d30e2e7fb83a5a)) --- changelogs/CHANGELOG_alpha.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index 299ee5382..4d5cdda46 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,10 @@ +# [5.2.0-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.1-alpha.1...5.2.0-alpha.1) (2024-05-17) + + +### Features + +* Support dot notation on array fields ([#2120](https://github.com/parse-community/Parse-SDK-JS/issues/2120)) ([25ec684](https://github.com/parse-community/Parse-SDK-JS/commit/25ec684bf01cf9cd616ceff6f5d30e2e7fb83a5a)) + ## [5.1.1-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0...5.1.1-alpha.1) (2024-05-16) diff --git a/package-lock.json b/package-lock.json index c78503b78..b5b69611b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.1.1-alpha.1", + "version": "5.2.0-alpha.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.1.1-alpha.1", + "version": "5.2.0-alpha.1", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.23.2", diff --git a/package.json b/package.json index 685350241..d66fe94df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.1.1-alpha.1", + "version": "5.2.0-alpha.1", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From 1f30ebe452dd6a7a19066de0aad1b4f7e1ca3761 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Sat, 18 May 2024 15:22:48 -0500 Subject: [PATCH 09/53] style: Fix pre-commit hook and enable Prettier for TypeScript (#2141) --- .husky/pre-commit | 1 + .prettierrc | 3 +- integration/test/ParseDistTest.js | 9 +- integration/test/ParseEventuallyQueueTest.js | 6 +- integration/test/ParseLiveQueryTest.js | 9 +- integration/test/ParseQueryTest.js | 1 - integration/test/ParseReactNativeTest.js | 5 +- integration/test/ParseServerTest.js | 8 +- integration/test/ParseUserTest.js | 21 +- package-lock.json | 1106 +++++++++--------- package.json | 18 +- src/CoreManager.ts | 315 ++--- src/EventuallyQueue.js | 16 +- src/InstallationController.ts | 2 +- src/LiveQueryClient.ts | 16 +- src/ObjectStateMutations.ts | 10 +- src/OfflineQuery.js | 2 +- src/Parse.ts | 179 +-- src/ParseCLP.ts | 18 +- src/ParseError.js | 2 +- src/ParseFile.ts | 28 +- src/ParseGeoPoint.ts | 20 +- src/ParseHooks.ts | 6 +- src/ParseInstallation.ts | 2 +- src/ParseObject.ts | 70 +- src/ParseOp.js | 12 +- src/ParsePolygon.js | 2 +- src/ParseQuery.ts | 98 +- src/ParseRelation.js | 2 +- src/ParseRole.ts | 2 +- src/ParseSchema.js | 4 +- src/ParseUser.ts | 53 +- src/Push.ts | 13 +- src/RESTController.js | 46 +- src/SingleInstanceStateController.js | 8 +- src/Socket.weapp.js | 2 +- src/TaskQueue.ts | 4 +- src/WebSocketController.js | 3 +- src/__tests__/CoreManager-test.js | 24 +- src/__tests__/Hooks-test.js | 115 +- src/__tests__/InstallationController-test.js | 4 +- src/__tests__/OfflineQuery-test.js | 5 +- src/__tests__/Parse-test.js | 7 +- src/__tests__/ParseFile-test.js | 2 +- src/__tests__/ParseGeoPoint-test.js | 4 +- src/__tests__/ParseInstallation-test.js | 10 +- src/__tests__/ParseLiveQuery-test.js | 2 +- src/__tests__/ParseObject-test.js | 15 +- src/__tests__/ParseOp-test.js | 4 +- src/__tests__/ParseQuery-test.js | 3 +- src/__tests__/ParseUser-test.js | 17 +- src/__tests__/RESTController-test.js | 34 +- src/__tests__/Storage-test.js | 5 +- src/__tests__/test_helpers/flushPromises.js | 2 +- src/promiseUtils.ts | 3 +- src/unsavedChildren.ts | 4 +- 56 files changed, 1256 insertions(+), 1126 deletions(-) create mode 100644 .husky/pre-commit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 000000000..87ea02a11 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npm run pre-commit diff --git a/.prettierrc b/.prettierrc index 31fa426fa..e60dc942e 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,4 +2,5 @@ semi: true trailingComma: "es5" singleQuote: true arrowParens: "avoid" -printWidth: 100 \ No newline at end of file +printWidth: 100 +parser: "typescript" diff --git a/integration/test/ParseDistTest.js b/integration/test/ParseDistTest.js index fa2090d76..9c85e21bf 100644 --- a/integration/test/ParseDistTest.js +++ b/integration/test/ParseDistTest.js @@ -52,18 +52,21 @@ for (const fileName of ['parse.js', 'parse.min.js']) { request.continue(); }); page.on('requestfailed', request => { - if (request.failure().errorText === 'net::ERR_ABORTED' && !request.url().includes('favicon.ico')) { + if ( + request.failure().errorText === 'net::ERR_ABORTED' && + !request.url().includes('favicon.ico') + ) { abortedCount += 1; promise.resolve(); } }); await page.evaluate(async () => { const parseLogo = - 'https://raw.githubusercontent.com/parse-community/parse-server/master/.github/parse-server-logo.png'; + 'https://raw.githubusercontent.com/parse-community/parse-server/master/.github/parse-server-logo.png'; const file = new Parse.File('parse-server-logo', { uri: parseLogo }); file.save().then(() => {}); - return new Promise((resolve) => { + return new Promise(resolve => { const intervalId = setInterval(() => { if (file._requestTask && typeof file._requestTask.abort === 'function') { file.cancel(); diff --git a/integration/test/ParseEventuallyQueueTest.js b/integration/test/ParseEventuallyQueueTest.js index 8d5305915..1e200c1e3 100644 --- a/integration/test/ParseEventuallyQueueTest.js +++ b/integration/test/ParseEventuallyQueueTest.js @@ -193,7 +193,7 @@ describe('Parse EventuallyQueue', () => { it('can saveEventually', async () => { const parseServer = await reconfigureServer(); const object = new TestObject({ hash: 'saveSecret' }); - await new Promise((resolve) => parseServer.server.close(resolve)); + await new Promise(resolve => parseServer.server.close(resolve)); await object.saveEventually(); const length = await Parse.EventuallyQueue.length(); @@ -225,7 +225,7 @@ describe('Parse EventuallyQueue', () => { const object = new TestObject({ hash: 'saveSecret' }); object.setACL(acl); - await new Promise((resolve) => parseServer.server.close(resolve)); + await new Promise(resolve => parseServer.server.close(resolve)); await object.saveEventually(); const length = await Parse.EventuallyQueue.length(); @@ -250,7 +250,7 @@ describe('Parse EventuallyQueue', () => { const parseServer = await reconfigureServer(); const object = new TestObject({ hash: 'deleteSecret' }); await object.save(); - await new Promise((resolve) => parseServer.server.close(resolve)); + await new Promise(resolve => parseServer.server.close(resolve)); await object.destroyEventually(); const length = await Parse.EventuallyQueue.length(); diff --git a/integration/test/ParseLiveQueryTest.js b/integration/test/ParseLiveQueryTest.js index 06a2c89d9..f7231b551 100644 --- a/integration/test/ParseLiveQueryTest.js +++ b/integration/test/ParseLiveQueryTest.js @@ -20,7 +20,8 @@ describe('Parse LiveQuery', () => { it('can subscribe to query', async () => { const object = new TestObject(); await object.save(); - const installationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const installationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const query = new Parse.Query(TestObject); query.equalTo('objectId', object.id); @@ -39,7 +40,8 @@ describe('Parse LiveQuery', () => { it('can subscribe to query with client', async () => { const object = new TestObject(); await object.save(); - const installationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const installationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const query = new Parse.Query(TestObject); query.equalTo('objectId', object.id); @@ -389,7 +391,8 @@ describe('Parse LiveQuery', () => { Parse.CoreManager.setEventEmitter(CustomEmitter); const object = new TestObject(); await object.save(); - const installationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const installationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const query = new Parse.Query(TestObject); query.equalTo('objectId', object.id); diff --git a/integration/test/ParseQueryTest.js b/integration/test/ParseQueryTest.js index 3d476c6ea..27434f920 100644 --- a/integration/test/ParseQueryTest.js +++ b/integration/test/ParseQueryTest.js @@ -2415,5 +2415,4 @@ describe('Parse Query', () => { const explain = await query.find(); assert.equal(explain.command.comment, comment); }); - }); diff --git a/integration/test/ParseReactNativeTest.js b/integration/test/ParseReactNativeTest.js index d7d30c68c..dac0d794e 100644 --- a/integration/test/ParseReactNativeTest.js +++ b/integration/test/ParseReactNativeTest.js @@ -32,7 +32,7 @@ describe('Parse React Native', () => { it('can log in a user', async () => { // Handle Storage Controller - await Parse.User.signUp('asdf', 'zxcv') + await Parse.User.signUp('asdf', 'zxcv'); const user = await Parse.User.logIn('asdf', 'zxcv'); expect(user.get('username')).toBe('asdf'); expect(user.existed()).toBe(true); @@ -86,7 +86,8 @@ describe('Parse React Native', () => { // Handle WebSocket Controller const object = new Parse.Object('TestObject'); await object.save(); - const installationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const installationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const query = new Parse.Query('TestObject'); query.equalTo('objectId', object.id); diff --git a/integration/test/ParseServerTest.js b/integration/test/ParseServerTest.js index 97489e598..01aa285d7 100644 --- a/integration/test/ParseServerTest.js +++ b/integration/test/ParseServerTest.js @@ -6,7 +6,7 @@ describe('ParseServer', () => { it('can reconfigure server', async () => { const parseServer = await reconfigureServer({ serverURL: 'www.google.com' }); assert.strictEqual(parseServer.config.serverURL, 'www.google.com'); - await new Promise((resolve) => parseServer.server.close(resolve)); + await new Promise(resolve => parseServer.server.close(resolve)); await reconfigureServer(); }); @@ -14,8 +14,10 @@ describe('ParseServer', () => { const parseServer = await reconfigureServer(); const object = new TestObject({ foo: 'bar' }); await parseServer.handleShutdown(); - await new Promise((resolve) => parseServer.server.close(resolve)); - await expectAsync(object.save()).toBeRejectedWithError('XMLHttpRequest failed: "Unable to connect to the Parse API"'); + await new Promise(resolve => parseServer.server.close(resolve)); + await expectAsync(object.save()).toBeRejectedWithError( + 'XMLHttpRequest failed: "Unable to connect to the Parse API"' + ); await reconfigureServer({}); await object.save(); assert(object.id); diff --git a/integration/test/ParseUserTest.js b/integration/test/ParseUserTest.js index 3060986e3..13718e2e7 100644 --- a/integration/test/ParseUserTest.js +++ b/integration/test/ParseUserTest.js @@ -113,7 +113,8 @@ describe('Parse User', () => { it('can login users with installationId', async () => { Parse.User.enableUnsafeCurrentUser(); - const currentInstallationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const currentInstallationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const installationId = '12345678'; const user = new Parse.User(); user.set('username', 'parse'); @@ -149,7 +150,8 @@ describe('Parse User', () => { }); it('can get current installation', async () => { - const currentInstallationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const currentInstallationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const installation = await Parse.Installation.currentInstallation(); expect(installation.installationId).toBe(currentInstallationId); expect(installation.deviceType).toBe(Parse.Installation.DEVICE_TYPES.WEB); @@ -180,7 +182,8 @@ describe('Parse User', () => { }); it('can save new installation when deleted', async () => { - const currentInstallationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const currentInstallationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const installation = await Parse.Installation.currentInstallation(); expect(installation.installationId).toBe(currentInstallationId); expect(installation.deviceType).toBe(Parse.Installation.DEVICE_TYPES.WEB); @@ -196,7 +199,8 @@ describe('Parse User', () => { }); it('can fetch installation when deleted', async () => { - const currentInstallationId = await Parse.CoreManager.getInstallationController().currentInstallationId(); + const currentInstallationId = + await Parse.CoreManager.getInstallationController().currentInstallationId(); const installation = await Parse.Installation.currentInstallation(); expect(installation.installationId).toBe(currentInstallationId); expect(installation.deviceType).toBe(Parse.Installation.DEVICE_TYPES.WEB); @@ -227,9 +231,7 @@ describe('Parse User', () => { await Parse.User.logOut(); assert(!Parse.User.current()); - await expectAsync(Parse.User.loginAs('garbage')).toBeRejectedWithError( - 'user not found' - ); + await expectAsync(Parse.User.loginAs('garbage')).toBeRejectedWithError('user not found'); }); it('can become a user', done => { @@ -1128,7 +1130,10 @@ describe('Parse User', () => { preventLoginWithUnverifiedEmail: true, }); await Parse.User.signUp('asd123', 'xyz123'); - const res = await Parse.User.verifyPassword('asd123', 'xyz123', { useMasterKey: true, ignoreEmailVerification: true }); + const res = await Parse.User.verifyPassword('asd123', 'xyz123', { + useMasterKey: true, + ignoreEmailVerification: true, + }); expect(typeof res).toBe('object'); expect(res.username).toBe('asd123'); }); diff --git a/package-lock.json b/package-lock.json index b5b69611b..1cffda772 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "gulp-rename": "2.0.0", "gulp-uglify": "3.0.2", "gulp-watch": "5.0.1", - "husky": "8.0.3", + "husky": "9.0.11", "jasmine": "5.1.0", "jasmine-reporters": "2.5.2", "jasmine-spec-reporter": "7.0.0", @@ -61,12 +61,12 @@ "jest-environment-jsdom": "29.5.0", "jsdoc": "4.0.2", "jsdoc-babel": "0.5.0", - "lint-staged": "13.2.2", + "lint-staged": "15.2.2", "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.4.3", "parse-server": "7.1.0-alpha.1", - "prettier": "3.0.2", + "prettier": "3.2.5", "puppeteer": "20.4.0", "regenerator-runtime": "0.13.11", "semantic-release": "19.0.5", @@ -7132,15 +7132,6 @@ "node": ">=4" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", @@ -8739,16 +8730,16 @@ } }, "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, "dependencies": { "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "string-width": "^7.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8766,73 +8757,33 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/cli-truncate/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", "dev": true }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { "ansi-regex": "^6.0.1" @@ -9053,9 +9004,9 @@ } }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/colors": { @@ -11085,31 +11036,6 @@ "node": ">=10.13.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/enquirer/node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -13464,6 +13390,18 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", @@ -15211,15 +15149,15 @@ } }, "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", + "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", "dev": true, "bin": { - "husky": "lib/bin.js" + "husky": "bin.mjs" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -18752,12 +18690,12 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/limiter": { @@ -18782,39 +18720,36 @@ } }, "node_modules/lint-staged": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", - "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", + "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", "dev": true, "dependencies": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", - "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.2" + "chalk": "5.3.0", + "commander": "11.1.0", + "debug": "4.3.4", + "execa": "8.0.1", + "lilconfig": "3.0.0", + "listr2": "8.0.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.4" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=18.12.0" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, "node_modules/lint-staged/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -18823,36 +18758,57 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/lint-staged/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/lint-staged/node_modules/execa": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz", - "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lint-staged/node_modules/human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/lint-staged/node_modules/is-stream": { @@ -18879,19 +18835,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -18930,6 +18877,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/lint-staged/node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -18943,117 +18902,114 @@ } }, "node_modules/lint-staged/node_modules/yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true, "engines": { "node": ">= 14" } }, "node_modules/listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", + "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", "dev": true, "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^9.0.0" }, "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "node": ">=18.0.0" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/listr2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/listr2/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/load-json-file": { @@ -19262,95 +19218,175 @@ } }, "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", + "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", "dev": true, "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "ansi-escapes": "^6.2.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^7.0.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "restore-cursor": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "get-east-asian-width": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/log-update/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=7.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } }, - "node_modules/log-update/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/log-update/node_modules/string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/logform": { @@ -25065,9 +25101,9 @@ } }, "node_modules/prettier": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz", - "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -26430,9 +26466,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "dev": true }, "node_modules/rimraf": { @@ -26483,15 +26519,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/safari-14-idb-fix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz", @@ -26954,55 +26981,45 @@ } }, "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", @@ -27679,9 +27696,9 @@ ] }, "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, "engines": { "node": ">=0.6.19" @@ -35380,12 +35397,6 @@ "tslib": "^2.0.1" } }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", @@ -36684,13 +36695,13 @@ } }, "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, "requires": { "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "string-width": "^7.0.0" }, "dependencies": { "ansi-regex": { @@ -36699,49 +36710,27 @@ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", "dev": true }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - } - }, "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" } }, "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "requires": { "ansi-regex": "^6.0.1" @@ -36927,9 +36916,9 @@ "dev": true }, "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "colors": { @@ -38584,27 +38573,6 @@ "tapable": "^2.2.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ansi-colors": "^4.1.1" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "optional": true, - "peer": true - } - } - }, "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -40461,6 +40429,12 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true + }, "get-intrinsic": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", @@ -41895,9 +41869,9 @@ "dev": true }, "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", + "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", "dev": true }, "iconv-lite": { @@ -44556,9 +44530,9 @@ } }, "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", "dev": true }, "limiter": { @@ -44583,53 +44557,62 @@ } }, "lint-staged": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", - "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", + "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", "dev": true, "requires": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", - "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.2" + "chalk": "5.3.0", + "commander": "11.1.0", + "debug": "4.3.4", + "execa": "8.0.1", + "lilconfig": "3.0.0", + "listr2": "8.0.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.4" }, "dependencies": { "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + }, + "commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true }, "execa": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.0.0.tgz", - "integrity": "sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" } }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, "human-signals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.0.tgz", - "integrity": "sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true }, "is-stream": { @@ -44644,16 +44627,10 @@ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "requires": { "path-key": "^4.0.0" @@ -44674,6 +44651,12 @@ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, "strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -44681,81 +44664,80 @@ "dev": true }, "yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true } } }, "listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", + "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", "dev": true, "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.0.0", "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^9.0.0" }, "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } + "emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true + }, + "string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, "requires": { - "color-name": "~1.1.4" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "requires": { - "aggregate-error": "^3.0.0" + "ansi-regex": "^6.0.1" } }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" } } } @@ -44934,65 +44916,109 @@ } }, "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", + "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", "dev": true, "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "ansi-escapes": "^6.2.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^7.0.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "dependencies": { "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, "requires": { - "type-fest": "^0.21.3" + "restore-cursor": "^4.0.0" } }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "get-east-asian-width": "^1.0.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, "requires": { - "color-name": "~1.1.4" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "requires": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + } }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "string-width": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", + "dev": true, + "requires": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" } } } @@ -49209,9 +49235,9 @@ "dev": true }, "prettier": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz", - "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true }, "pretty-format": { @@ -50304,9 +50330,9 @@ "dev": true }, "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "dev": true }, "rimraf": { @@ -50337,15 +50363,6 @@ "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, "safari-14-idb-fix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz", @@ -50722,38 +50739,25 @@ "dev": true }, "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "dependencies": { "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true } } @@ -51336,9 +51340,9 @@ } }, "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true }, "string-length": { diff --git a/package.json b/package.json index d66fe94df..a20f52f78 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "gulp-rename": "2.0.0", "gulp-uglify": "3.0.2", "gulp-watch": "5.0.1", - "husky": "8.0.3", + "husky": "9.0.11", "jasmine": "5.1.0", "jasmine-reporters": "2.5.2", "jasmine-spec-reporter": "7.0.0", @@ -81,12 +81,12 @@ "jest-environment-jsdom": "29.5.0", "jsdoc": "4.0.2", "jsdoc-babel": "0.5.0", - "lint-staged": "13.2.2", + "lint-staged": "15.2.2", "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.4.3", "parse-server": "7.1.0-alpha.1", - "prettier": "3.0.2", + "prettier": "3.2.5", "puppeteer": "20.4.0", "regenerator-runtime": "0.13.11", "semantic-release": "19.0.5", @@ -114,19 +114,15 @@ "integration": "cross-env TESTING=1 jasmine --config=jasmine.json", "docs": "jsdoc -c ./jsdoc-conf.json ./src", "madge:circular": "madge ./src --extensions js,ts --circular", - "prepare": "npm run build", + "prepare": "husky && npm run build", + "pre-commit": "lint-staged", "release_docs": "./release_docs.sh", "gulp": "gulp", - "prettier": "prettier --write '{src,integration}/{**/*,*}.js' && npm run lint:fix", + "prettier": "prettier --write '{src,integration}/{**/*,*}.{js,ts}' && npm run lint:fix", "cross-env": "cross-env" }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, "lint-staged": { - "{src,integration}/{**/*,*}.js": [ + "{src,integration}/{**/*,*}.{js,ts}": [ "prettier --write", "eslint --fix --cache", "git add" diff --git a/src/CoreManager.ts b/src/CoreManager.ts index f13e76694..8b619cf9f 100644 --- a/src/CoreManager.ts +++ b/src/CoreManager.ts @@ -17,154 +17,187 @@ import type ParseSchema from './ParseSchema'; import type ParseInstallation from './ParseInstallation'; type AnalyticsController = { - track: (name: string, dimensions: { [key: string]: string }) => Promise, + track: (name: string, dimensions: { [key: string]: string }) => Promise; }; type CloudController = { - run: (name: string, data: any, options: RequestOptions) => Promise, - getJobsData: (options: RequestOptions) => Promise, + run: (name: string, data: any, options: RequestOptions) => Promise; + getJobsData: (options: RequestOptions) => Promise; /** Returns promise which resolves with JobStatusId of the job */ - startJob: (name: string, data: any, options: RequestOptions) => Promise, + startJob: (name: string, data: any, options: RequestOptions) => Promise; }; type ConfigController = { - current: () => Promise | ParseConfig, - get: (opts?: RequestOptions) => Promise, - save: (attrs: { [key: string]: any }, masterKeyOnlyFlags?: { [key: string]: any }) => Promise, + current: () => Promise | ParseConfig; + get: (opts?: RequestOptions) => Promise; + save: ( + attrs: { [key: string]: any }, + masterKeyOnlyFlags?: { [key: string]: any } + ) => Promise; }; type CryptoController = { - encrypt: (obj: any, secretKey: string) => string, - decrypt: (encryptedText: string, secretKey: any) => string, + encrypt: (obj: any, secretKey: string) => string; + decrypt: (encryptedText: string, secretKey: any) => string; }; type FileController = { - saveFile: (name: string, source: FileSource, options?: FullOptions) => Promise, - saveBase64: (name: string, source: FileSource, options?: FileSaveOptions) => Promise<{ name: string, url: string }>, - download: (uri: string, options?: any) => Promise<{ base64?: string, contentType?: string }>, - deleteFile: (name: string, options?: { useMasterKey?: boolean }) => Promise, + saveFile: (name: string, source: FileSource, options?: FullOptions) => Promise; + saveBase64: ( + name: string, + source: FileSource, + options?: FileSaveOptions + ) => Promise<{ name: string; url: string }>; + download: (uri: string, options?: any) => Promise<{ base64?: string; contentType?: string }>; + deleteFile: (name: string, options?: { useMasterKey?: boolean }) => Promise; }; type InstallationController = { - currentInstallationId: () => Promise, - currentInstallation: () => Promise, - updateInstallationOnDisk: (installation: ParseInstallation) => Promise, + currentInstallationId: () => Promise; + currentInstallation: () => Promise; + updateInstallationOnDisk: (installation: ParseInstallation) => Promise; }; type ObjectController = { fetch: ( object: ParseObject | Array, forceFetch: boolean, options: RequestOptions - ) => Promise | ParseObject | undefined>, - save: (object: ParseObject | Array | null, options: RequestOptions) => Promise | ParseFile | undefined>, - destroy: (object: ParseObject | Array, options: RequestOptions) => Promise>, + ) => Promise | ParseObject | undefined>; + save: ( + object: ParseObject | Array | null, + options: RequestOptions + ) => Promise | ParseFile | undefined>; + destroy: ( + object: ParseObject | Array, + options: RequestOptions + ) => Promise>; }; type ObjectStateController = { - getState: (obj: any) => State | null, - initializeState: (obj: any, initial?: State) => State, - removeState: (obj: any) => State | null, - getServerData: (obj: any) => AttributeMap, - setServerData: (obj: any, attributes: AttributeMap) => void, - getPendingOps: (obj: any) => Array, - setPendingOp: (obj: any, attr: string, op?: Op) => void, - pushPendingState: (obj: any) => void, - popPendingState: (obj: any) => OpsMap | undefined, - mergeFirstPendingState: (obj: any) => void, - getObjectCache: (obj: any) => ObjectCache, - estimateAttribute: (obj: any, attr: string) => any, - estimateAttributes: (obj: any) => AttributeMap, - commitServerChanges: (obj: any, changes: AttributeMap) => void, - enqueueTask: (obj: any, task: () => Promise) => Promise, - clearAllState: () => void, - duplicateState: (source: any, dest: any) => void, + getState: (obj: any) => State | null; + initializeState: (obj: any, initial?: State) => State; + removeState: (obj: any) => State | null; + getServerData: (obj: any) => AttributeMap; + setServerData: (obj: any, attributes: AttributeMap) => void; + getPendingOps: (obj: any) => Array; + setPendingOp: (obj: any, attr: string, op?: Op) => void; + pushPendingState: (obj: any) => void; + popPendingState: (obj: any) => OpsMap | undefined; + mergeFirstPendingState: (obj: any) => void; + getObjectCache: (obj: any) => ObjectCache; + estimateAttribute: (obj: any, attr: string) => any; + estimateAttributes: (obj: any) => AttributeMap; + commitServerChanges: (obj: any, changes: AttributeMap) => void; + enqueueTask: (obj: any, task: () => Promise) => Promise; + clearAllState: () => void; + duplicateState: (source: any, dest: any) => void; }; type PushController = { - send: (data: PushData, options?: FullOptions) => Promise, + send: (data: PushData, options?: FullOptions) => Promise; }; type QueryController = { - find(className: string, params: QueryJSON, options: RequestOptions): Promise<{ results?: Array, className?: string, count?: number }>; - aggregate(className: string, params: any, options: RequestOptions): Promise<{ results?: Array }>; + find( + className: string, + params: QueryJSON, + options: RequestOptions + ): Promise<{ results?: Array; className?: string; count?: number }>; + aggregate( + className: string, + params: any, + options: RequestOptions + ): Promise<{ results?: Array }>; }; type EventuallyQueue = { - save: (object: ParseObject, serverOptions: SaveOptions) => Promise, - destroy: (object: ParseObject, serverOptions: RequestOptions) => Promise, - poll: (ms?: number) => void + save: (object: ParseObject, serverOptions: SaveOptions) => Promise; + destroy: (object: ParseObject, serverOptions: RequestOptions) => Promise; + poll: (ms?: number) => void; }; type RESTController = { - request: (method: string, path: string, data?: any, options?: RequestOptions) => Promise, - ajax: (method: string, url: string, data: any, headers?: any, options?: FullOptions) => Promise, - handleError: (err?: any) => void, + request: (method: string, path: string, data?: any, options?: RequestOptions) => Promise; + ajax: ( + method: string, + url: string, + data: any, + headers?: any, + options?: FullOptions + ) => Promise; + handleError: (err?: any) => void; }; type SchemaController = { - purge: (className: string) => Promise, - get: (className: string, options?: RequestOptions) => Promise<{ results: ParseSchema[] }>, - delete: (className: string, options?: RequestOptions) => Promise, - create: (className: string, params: any, options?: RequestOptions) => Promise, - update: (className: string, params: any, options?: RequestOptions) => Promise, - send(className: string, method: string, params: any, options: RequestOptions): Promise, + purge: (className: string) => Promise; + get: (className: string, options?: RequestOptions) => Promise<{ results: ParseSchema[] }>; + delete: (className: string, options?: RequestOptions) => Promise; + create: (className: string, params: any, options?: RequestOptions) => Promise; + update: (className: string, params: any, options?: RequestOptions) => Promise; + send(className: string, method: string, params: any, options: RequestOptions): Promise; }; type SessionController = { - getSession: (token: RequestOptions) => Promise, -}; -type StorageController = { - async: 0, - getItem: (path: string) => string | null, - setItem: (path: string, value: string) => void, - removeItem: (path: string) => void, - getItemAsync?: (path: string) => Promise, - setItemAsync?: (path: string, value: string) => Promise, - removeItemAsync?: (path: string) => Promise, - clear: () => void, - getAllKeys?: () => Array - getAllKeysAsync?: () => Promise> -} | { - async: 1, - getItem?: (path: string) => string | null, - setItem?: (path: string, value: string) => void, - removeItem?: (path: string) => void, - getItemAsync: (path: string) => Promise, - setItemAsync: (path: string, value: string) => Promise, - removeItemAsync: (path: string) => Promise, - clear: () => void, - getAllKeys?: () => Array - getAllKeysAsync?: () => Promise> + getSession: (token: RequestOptions) => Promise; }; +type StorageController = + | { + async: 0; + getItem: (path: string) => string | null; + setItem: (path: string, value: string) => void; + removeItem: (path: string) => void; + getItemAsync?: (path: string) => Promise; + setItemAsync?: (path: string, value: string) => Promise; + removeItemAsync?: (path: string) => Promise; + clear: () => void; + getAllKeys?: () => Array; + getAllKeysAsync?: () => Promise>; + } + | { + async: 1; + getItem?: (path: string) => string | null; + setItem?: (path: string, value: string) => void; + removeItem?: (path: string) => void; + getItemAsync: (path: string) => Promise; + setItemAsync: (path: string, value: string) => Promise; + removeItemAsync: (path: string) => Promise; + clear: () => void; + getAllKeys?: () => Array; + getAllKeysAsync?: () => Promise>; + }; type LocalDatastoreController = { - fromPinWithName: (name: string) => any | undefined, - pinWithName: (name: string, objects: any) => void, - unPinWithName: (name: string) => void, - getAllContents: () => any | undefined, - clear: () => void, + fromPinWithName: (name: string) => any | undefined; + pinWithName: (name: string, objects: any) => void; + unPinWithName: (name: string) => void; + getAllContents: () => any | undefined; + clear: () => void; // Use for testing // getRawStorage(): Promise, }; type UserController = { - setCurrentUser: (user: ParseUser) => Promise, - currentUser: () => ParseUser | null, - currentUserAsync: () => Promise, - signUp: (user: ParseUser, attrs: AttributeMap, options: RequestOptions) => Promise, - logIn: (user: ParseUser, options: RequestOptions) => Promise, - loginAs: (user: ParseUser, userId: string) => Promise, - become: (user: ParseUser, options: RequestOptions) => Promise, - hydrate: (user: ParseUser, userJSON: AttributeMap) => Promise, - logOut: (options: RequestOptions) => Promise, - me: (user: ParseUser, options: RequestOptions) => Promise, - requestPasswordReset: (email: string, options: RequestOptions) => Promise, - updateUserOnDisk: (user: ParseUser) => Promise, - upgradeToRevocableSession: (user: ParseUser, options: RequestOptions) => Promise, - linkWith: (user: ParseUser, authData: AuthData, options?: FullOptions) => Promise, - removeUserFromDisk: () => Promise, - verifyPassword: (username: string, password: string, options: RequestOptions) => Promise, - requestEmailVerification: (email: string, options: RequestOptions) => Promise, + setCurrentUser: (user: ParseUser) => Promise; + currentUser: () => ParseUser | null; + currentUserAsync: () => Promise; + signUp: (user: ParseUser, attrs: AttributeMap, options: RequestOptions) => Promise; + logIn: (user: ParseUser, options: RequestOptions) => Promise; + loginAs: (user: ParseUser, userId: string) => Promise; + become: (user: ParseUser, options: RequestOptions) => Promise; + hydrate: (user: ParseUser, userJSON: AttributeMap) => Promise; + logOut: (options: RequestOptions) => Promise; + me: (user: ParseUser, options: RequestOptions) => Promise; + requestPasswordReset: (email: string, options: RequestOptions) => Promise; + updateUserOnDisk: (user: ParseUser) => Promise; + upgradeToRevocableSession: (user: ParseUser, options: RequestOptions) => Promise; + linkWith: (user: ParseUser, authData: AuthData, options?: FullOptions) => Promise; + removeUserFromDisk: () => Promise; + verifyPassword: ( + username: string, + password: string, + options: RequestOptions + ) => Promise; + requestEmailVerification: (email: string, options: RequestOptions) => Promise; }; type HooksController = { - get: (type: string, functionName?: string, triggerName?: string) => Promise, - create: (hook: HookDeclaration) => Promise, - remove: (hook: HookDeleteArg) => Promise, - update: (hook: HookDeclaration) => Promise, + get: (type: string, functionName?: string, triggerName?: string) => Promise; + create: (hook: HookDeclaration) => Promise; + remove: (hook: HookDeleteArg) => Promise; + update: (hook: HookDeclaration) => Promise; // Renamed to sendRequest since ParseHooks file & tests file uses this. (originally declared as just "send") - sendRequest?: (method: string, path: string, body?: any) => Promise, + sendRequest?: (method: string, path: string, body?: any) => Promise; }; type LiveQueryControllerType = { setDefaultLiveQueryClient(liveQueryClient: LiveQueryClient): void; getDefaultLiveQueryClient(): Promise; _clearCachedDefaultClient(): void; -} +}; /** Based on https://github.com/react-native-async-storage/async-storage/blob/main/packages/default-storage-backend/src/types.ts */ type AsyncStorageType = { /** Fetches an item for a `key` and invokes a callback upon completion. */ @@ -177,7 +210,11 @@ type AsyncStorageType = { /** Removes an item for a `key` and invokes a callback upon completion. */ removeItem: (key: string, callback?: (error?: Error | null) => void) => Promise; /** Merges an existing `key` value with an input value, assuming both values are stringified JSON. */ - mergeItem: (key: string, value: string, callback?: (error?: Error | null) => void) => Promise; + mergeItem: ( + key: string, + value: string, + callback?: (error?: Error | null) => void + ) => Promise; /** * Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably * don't want to call this; use `removeItem` or `multiRemove` to clear only @@ -195,7 +232,10 @@ type AsyncStorageType = { */ multiGet: ( keys: readonly string[], - callback?: (errors?: readonly (Error | null)[] | null, result?: readonly [string, string][]) => void + callback?: ( + errors?: readonly (Error | null)[] | null, + result?: readonly [string, string][] + ) => void ) => Promise; /** @@ -231,33 +271,36 @@ type AsyncStorageType = { ) => Promise; }; export type WebSocketController = { - onopen: () => void, - onmessage: (message: any) => void, - onclose: (arg?: any) => void, - onerror: (error: any) => void, - send: (data: any) => void, - close: () => void, + onopen: () => void; + onmessage: (message: any) => void; + onclose: (arg?: any) => void; + onerror: (error: any) => void; + send: (data: any) => void; + close: () => void; }; type Config = { - AnalyticsController?: AnalyticsController, - CloudController?: CloudController, - ConfigController?: ConfigController, - FileController?: FileController, - InstallationController?: InstallationController, - ObjectController?: ObjectController, - ObjectStateController?: ObjectStateController, - PushController?: PushController, - QueryController?: QueryController, - RESTController?: RESTController, - SchemaController?: SchemaController, - SessionController?: SessionController, - StorageController?: StorageController, - LocalDatastoreController?: LocalDatastoreController, - UserController?: UserController, - HooksController?: HooksController, - WebSocketController?: new (url: string | URL, protocols?: string | string[] | undefined) => WebSocketController, - LiveQueryController?: LiveQueryControllerType, - AsyncStorage?: AsyncStorageType + AnalyticsController?: AnalyticsController; + CloudController?: CloudController; + ConfigController?: ConfigController; + FileController?: FileController; + InstallationController?: InstallationController; + ObjectController?: ObjectController; + ObjectStateController?: ObjectStateController; + PushController?: PushController; + QueryController?: QueryController; + RESTController?: RESTController; + SchemaController?: SchemaController; + SessionController?: SessionController; + StorageController?: StorageController; + LocalDatastoreController?: LocalDatastoreController; + UserController?: UserController; + HooksController?: HooksController; + WebSocketController?: new ( + url: string | URL, + protocols?: string | string[] | undefined + ) => WebSocketController; + LiveQueryController?: LiveQueryControllerType; + AsyncStorage?: AsyncStorageType; }; const config: Config & { [key: string]: any } = { @@ -538,11 +581,19 @@ const CoreManager = { return config['AsyncStorage']; }, - setWebSocketController(controller: new (url: string | URL, protocols?: string | string[] | undefined) => WebSocketController) { + setWebSocketController( + controller: new ( + url: string | URL, + protocols?: string | string[] | undefined + ) => WebSocketController + ) { config['WebSocketController'] = controller; }, - getWebSocketController(): new (url: string | URL, protocols?: string | string[] | undefined) => WebSocketController { + getWebSocketController(): new ( + url: string | URL, + protocols?: string | string[] | undefined + ) => WebSocketController { return config['WebSocketController']!; }, diff --git a/src/EventuallyQueue.js b/src/EventuallyQueue.js index f37b4b291..f4b59ffb5 100644 --- a/src/EventuallyQueue.js +++ b/src/EventuallyQueue.js @@ -14,14 +14,14 @@ import type { SaveOptions } from './ParseObject'; import type { RequestOptions } from './RESTController'; type QueueObject = { - queueId: string, - action: string, - object: ParseObject, - serverOptions: SaveOptions | RequestOptions, - id: string, - className: string, - hash: string, - createdAt: Date, + queueId: string; + action: string; + object: ParseObject; + serverOptions: SaveOptions | RequestOptions; + id: string; + className: string; + hash: string; + createdAt: Date; }; type Queue = Array; diff --git a/src/InstallationController.ts b/src/InstallationController.ts index 454b93ede..782e5f659 100644 --- a/src/InstallationController.ts +++ b/src/InstallationController.ts @@ -57,7 +57,7 @@ const InstallationController = { installation.set('installationId', installationId); installation.set('parseVersion', CoreManager.get('VERSION')); currentInstallationCache = installation; - await Storage.setItemAsync(path, JSON.stringify(installation.toJSON())) + await Storage.setItemAsync(path, JSON.stringify(installation.toJSON())); return installation; }, diff --git a/src/LiveQueryClient.ts b/src/LiveQueryClient.ts index d4c908a35..469453ad3 100644 --- a/src/LiveQueryClient.ts +++ b/src/LiveQueryClient.ts @@ -240,11 +240,13 @@ class LiveQueryClient { op: OP_TYPES.UNSUBSCRIBE, requestId: subscription.id, }; - return this.connectPromise.then(() => { - return this.socket.send(JSON.stringify(unsubscribeRequest)); - }).then(() => { - return subscription.unsubscribePromise; - }); + return this.connectPromise + .then(() => { + return this.socket.send(JSON.stringify(unsubscribeRequest)); + }) + .then(() => { + return subscription.unsubscribePromise; + }); } /** @@ -275,7 +277,7 @@ class LiveQueryClient { this._handleWebSocketMessage(event); }; - this.socket.onclose = (event) => { + this.socket.onclose = event => { this.socket.closingPromise?.resolve(event); this._handleWebSocketClose(); }; @@ -353,7 +355,7 @@ class LiveQueryClient { javascriptKey: this.javascriptKey, masterKey: this.masterKey, sessionToken: this.sessionToken, - installationId: undefined as string | undefined + installationId: undefined as string | undefined, }; if (this.additionalProperties) { connectRequest.installationId = this.installationId; diff --git a/src/ObjectStateMutations.ts b/src/ObjectStateMutations.ts index b3d2674cb..9ff397ae2 100644 --- a/src/ObjectStateMutations.ts +++ b/src/ObjectStateMutations.ts @@ -12,11 +12,11 @@ export type OpsMap = { [attr: string]: Op }; export type ObjectCache = { [attr: string]: string }; export type State = { - serverData: AttributeMap, - pendingOps: Array, - objectCache: ObjectCache, - tasks: TaskQueue, - existed: boolean, + serverData: AttributeMap; + pendingOps: Array; + objectCache: ObjectCache; + tasks: TaskQueue; + existed: boolean; }; export function defaultState(): State { diff --git a/src/OfflineQuery.js b/src/OfflineQuery.js index 39220c2f8..c38e04227 100644 --- a/src/OfflineQuery.js +++ b/src/OfflineQuery.js @@ -101,7 +101,7 @@ function equalObjectsGeneric(obj, compareTo, eqlFn) { * relative to now. * * @param {string} text The text to convert. - * @param {Date} [now=new Date()] The date from which add or subtract. Default is now. + * @param {Date} [now] The date from which add or subtract. Default is now. * @returns {RelativeTimeToDateResult} */ function relativeTimeToDate(text, now = new Date()) { diff --git a/src/Parse.ts b/src/Parse.ts index a3f6de954..a93779b65 100644 --- a/src/Parse.ts +++ b/src/Parse.ts @@ -7,31 +7,31 @@ import InstallationController from './InstallationController'; import * as ParseOp from './ParseOp'; import RESTController from './RESTController'; import ACL from './ParseACL'; -import * as Analytics from './Analytics' -import AnonymousUtils from './AnonymousUtils' +import * as Analytics from './Analytics'; +import AnonymousUtils from './AnonymousUtils'; import * as Cloud from './Cloud'; import CLP from './ParseCLP'; import CoreManager from './CoreManager'; import EventEmitter from './EventEmitter'; -import Config from './ParseConfig' -import ParseError from './ParseError' -import FacebookUtils from './FacebookUtils' -import File from './ParseFile' -import GeoPoint from './ParseGeoPoint' -import Polygon from './ParsePolygon' -import Installation from './ParseInstallation' -import LocalDatastore from './LocalDatastore' +import Config from './ParseConfig'; +import ParseError from './ParseError'; +import FacebookUtils from './FacebookUtils'; +import File from './ParseFile'; +import GeoPoint from './ParseGeoPoint'; +import Polygon from './ParsePolygon'; +import Installation from './ParseInstallation'; +import LocalDatastore from './LocalDatastore'; import ParseObject from './ParseObject'; -import * as Push from './Push' -import Query from './ParseQuery' -import Relation from './ParseRelation' -import Role from './ParseRole' -import Schema from './ParseSchema' -import Session from './ParseSession' -import Storage from './Storage' -import User from './ParseUser' -import ParseLiveQuery from './ParseLiveQuery' -import LiveQueryClient from './LiveQueryClient' +import * as Push from './Push'; +import Query from './ParseQuery'; +import Relation from './ParseRelation'; +import Role from './ParseRole'; +import Schema from './ParseSchema'; +import Session from './ParseSession'; +import Storage from './Storage'; +import User from './ParseUser'; +import ParseLiveQuery from './ParseLiveQuery'; +import LiveQueryClient from './LiveQueryClient'; import LocalDatastoreController from './LocalDatastoreController'; import StorageController from './StorageController'; import WebSocketController from './WebSocketController'; @@ -45,75 +45,75 @@ import WebSocketController from './WebSocketController'; * @hideconstructor */ interface ParseType { - ACL: typeof ACL, - Parse?: ParseType, - Analytics: typeof Analytics, - AnonymousUtils: typeof AnonymousUtils, + ACL: typeof ACL; + Parse?: ParseType; + Analytics: typeof Analytics; + AnonymousUtils: typeof AnonymousUtils; Cloud: typeof Cloud & { /** only available in server environments */ - useMasterKey?: () => void - }, - CLP: typeof CLP, - CoreManager: typeof CoreManager, - Config: typeof Config, - Error: typeof ParseError, - EventuallyQueue: typeof EventuallyQueue, - FacebookUtils: typeof FacebookUtils, - File: typeof File, - GeoPoint: typeof GeoPoint, - Hooks?: any, - Polygon: typeof Polygon, - Installation: typeof Installation, - LocalDatastore: typeof LocalDatastore, - Object: typeof ParseObject, + useMasterKey?: () => void; + }; + CLP: typeof CLP; + CoreManager: typeof CoreManager; + Config: typeof Config; + Error: typeof ParseError; + EventuallyQueue: typeof EventuallyQueue; + FacebookUtils: typeof FacebookUtils; + File: typeof File; + GeoPoint: typeof GeoPoint; + Hooks?: any; + Polygon: typeof Polygon; + Installation: typeof Installation; + LocalDatastore: typeof LocalDatastore; + Object: typeof ParseObject; Op: { - Set: typeof ParseOp.SetOp, - Unset: typeof ParseOp.UnsetOp, - Increment: typeof ParseOp.IncrementOp, - Add: typeof ParseOp.AddOp, - Remove: typeof ParseOp.RemoveOp, - AddUnique: typeof ParseOp.AddUniqueOp, - Relation: typeof ParseOp.RelationOp, + Set: typeof ParseOp.SetOp; + Unset: typeof ParseOp.UnsetOp; + Increment: typeof ParseOp.IncrementOp; + Add: typeof ParseOp.AddOp; + Remove: typeof ParseOp.RemoveOp; + AddUnique: typeof ParseOp.AddUniqueOp; + Relation: typeof ParseOp.RelationOp; }; - Push: typeof Push, - Query: typeof Query, - Relation: typeof Relation, - Role: typeof Role, - Schema: typeof Schema, - Session: typeof Session, - Storage: typeof Storage, - User: typeof User, - LiveQuery: typeof ParseLiveQuery, - LiveQueryClient: typeof LiveQueryClient, - - initialize(applicationId: string, javaScriptKey: string): void, - _initialize(applicationId: string, javaScriptKey: string, masterKey?: string): void, - setAsyncStorage(storage: any): void, - setLocalDatastoreController(controller: any): void, - getServerHealth(): Promise, - - applicationId: string, - javaScriptKey: string, - masterKey: string, - serverURL: string, - serverAuthToken: string, - serverAuthType: string, - liveQueryServerURL: string, - encryptedUser: boolean, - secret: string, - idempotency: boolean, - allowCustomObjectId: boolean, - IndexedDB?: any, - _request(...args: any[]): void, - _ajax(...args: any[]): void, - _decode(...args: any[]): void, - _encode(...args: any[]): void, - _getInstallationId?(): Promise, - enableLocalDatastore(polling: boolean, ms: number): void, - isLocalDatastoreEnabled(): boolean, - dumpLocalDatastore(): void, - enableEncryptedUser(): void, - isEncryptedUserEnabled(): void, + Push: typeof Push; + Query: typeof Query; + Relation: typeof Relation; + Role: typeof Role; + Schema: typeof Schema; + Session: typeof Session; + Storage: typeof Storage; + User: typeof User; + LiveQuery: typeof ParseLiveQuery; + LiveQueryClient: typeof LiveQueryClient; + + initialize(applicationId: string, javaScriptKey: string): void; + _initialize(applicationId: string, javaScriptKey: string, masterKey?: string): void; + setAsyncStorage(storage: any): void; + setLocalDatastoreController(controller: any): void; + getServerHealth(): Promise; + + applicationId: string; + javaScriptKey: string; + masterKey: string; + serverURL: string; + serverAuthToken: string; + serverAuthType: string; + liveQueryServerURL: string; + encryptedUser: boolean; + secret: string; + idempotency: boolean; + allowCustomObjectId: boolean; + IndexedDB?: any; + _request(...args: any[]): void; + _ajax(...args: any[]): void; + _decode(...args: any[]): void; + _encode(...args: any[]): void; + _getInstallationId?(): Promise; + enableLocalDatastore(polling: boolean, ms: number): void; + isLocalDatastoreEnabled(): boolean; + dumpLocalDatastore(): void; + enableEncryptedUser(): void; + isEncryptedUserEnabled(): void; } const Parse: ParseType = { @@ -183,7 +183,7 @@ const Parse: ParseType = { /* eslint-disable no-console */ console.log( "It looks like you're using the browser version of the SDK in a " + - "node.js environment. You should require('parse/node') instead." + "node.js environment. You should require('parse/node') instead." ); /* eslint-enable no-console */ } @@ -205,7 +205,10 @@ const Parse: ParseType = { CoreManager.setIfNeeded('WebSocketController', WebSocketController); if (process.env.PARSE_BUILD === 'browser') { - Parse.IndexedDB = CoreManager.setIfNeeded('IndexedDBStorageController', IndexedDBStorageController); + Parse.IndexedDB = CoreManager.setIfNeeded( + 'IndexedDBStorageController', + IndexedDBStorageController + ); } }, @@ -467,7 +470,7 @@ CoreManager.setRESTController(RESTController); if (process.env.PARSE_BUILD === 'node') { Parse.initialize = Parse._initialize; - Parse.Cloud = Parse.Cloud || {} as any; + Parse.Cloud = Parse.Cloud || ({} as any); Parse.Cloud.useMasterKey = function () { CoreManager.set('USE_MASTER_KEY', true); }; diff --git a/src/ParseCLP.ts b/src/ParseCLP.ts index 541a3d149..56289adc5 100644 --- a/src/ParseCLP.ts +++ b/src/ParseCLP.ts @@ -3,7 +3,9 @@ import ParseUser from './ParseUser'; type Entity = ParseUser | ParseRole | string; type UsersMap = { [userId: string]: boolean | any }; -export type PermissionsMap = { writeUserFields?: string[], readUserFields?: string[] } & { [permission: string]: UsersMap }; +export type PermissionsMap = { writeUserFields?: string[]; readUserFields?: string[] } & { + [permission: string]: UsersMap; +}; const PUBLIC_KEY = '*'; @@ -431,9 +433,9 @@ class ParseCLP { */ getReadAccess(userId: Entity): boolean { return ( - this._getAccess('find', userId) as boolean && - this._getAccess('get', userId) as boolean && - this._getAccess('count', userId) as boolean + (this._getAccess('find', userId) as boolean) && + (this._getAccess('get', userId) as boolean) && + (this._getAccess('count', userId) as boolean) ); } @@ -461,10 +463,10 @@ class ParseCLP { */ getWriteAccess(userId: Entity): boolean { return ( - this._getAccess('create', userId) as boolean && - this._getAccess('update', userId) as boolean && - this._getAccess('delete', userId) as boolean && - this._getAccess('addField', userId) as boolean + (this._getAccess('create', userId) as boolean) && + (this._getAccess('update', userId) as boolean) && + (this._getAccess('delete', userId) as boolean) && + (this._getAccess('addField', userId) as boolean) ); } diff --git a/src/ParseError.js b/src/ParseError.js index 68c97501e..c98227477 100644 --- a/src/ParseError.js +++ b/src/ParseError.js @@ -16,7 +16,7 @@ class ParseError extends Error { super(message); this.code = code; let customMessage = message; - CoreManager.get('PARSE_ERRORS').forEach((error) => { + CoreManager.get('PARSE_ERRORS').forEach(error => { if (error.code === code && error.code) { customMessage = error.message; } diff --git a/src/ParseFile.ts b/src/ParseFile.ts index 0d9ef880a..b012dd398 100644 --- a/src/ParseFile.ts +++ b/src/ParseFile.ts @@ -15,24 +15,24 @@ type Base64 = { base64: string }; type Uri = { uri: string }; type FileData = Array | Base64 | Blob | Uri; export type FileSaveOptions = FullOptions & { - metadata?: { [key: string]: any }, - tags?: { [key: string]: any }, + metadata?: { [key: string]: any }; + tags?: { [key: string]: any }; }; export type FileSource = | { - format: 'file', - file: Blob, - type: string | undefined, + format: 'file'; + file: Blob; + type: string | undefined; } | { - format: 'base64', - base64: string, - type: string | undefined, + format: 'base64'; + base64: string; + type: string | undefined; } | { - format: 'uri', - uri: string, - type: string | undefined, + format: 'uri'; + uri: string; + type: string | undefined; }; function b64Digit(number: number): string { @@ -272,7 +272,7 @@ class ParseFile { this._requestTask = null; return controller.saveBase64(this._name, newSource, options); }) - .then((res: { name?: string, url?: string }) => { + .then((res: { name?: string; url?: string }) => { this._name = res.name; this._url = res.url; this._requestTask = null; @@ -330,7 +330,7 @@ class ParseFile { }); } - toJSON(): { __type: 'File', name?: string, url?: string } { + toJSON(): { __type: 'File'; name?: string; url?: string } { return { __type: 'File', name: this._name, @@ -463,7 +463,7 @@ const DefaultController = { if (source.format !== 'base64') { throw new Error('saveBase64 can only be used with Base64-type sources.'); } - const data: { base64: any, _ContentType?: any, fileData: any } = { + const data: { base64: any; _ContentType?: any; fileData: any } = { base64: source.base64, fileData: { metadata: { ...options.metadata }, diff --git a/src/ParseGeoPoint.ts b/src/ParseGeoPoint.ts index 62b3c525e..979abb693 100644 --- a/src/ParseGeoPoint.ts +++ b/src/ParseGeoPoint.ts @@ -31,7 +31,7 @@ class ParseGeoPoint { * @param {number} arg2 The longitude of the GeoPoint */ constructor( - arg1: Array | { latitude: number, longitude: number } | number, + arg1: Array | { latitude: number; longitude: number } | number, arg2?: number ) { if (Array.isArray(arg1)) { @@ -89,7 +89,7 @@ class ParseGeoPoint { * * @returns {object} */ - toJSON(): { __type: string, latitude: number, longitude: number } { + toJSON(): { __type: string; latitude: number; longitude: number } { ParseGeoPoint._validate(this._latitude, this._longitude); return { __type: 'GeoPoint', @@ -180,13 +180,13 @@ class ParseGeoPoint { * Creates a GeoPoint with the user's current location, if available. * * @param {object} options The options. - * @param {boolean} [options.enableHighAccuracy=false] A boolean value that indicates the application would like to receive the best possible results. + * @param {boolean} [options.enableHighAccuracy] A boolean value that indicates the application would like to receive the best possible results. * If true and if the device is able to provide a more accurate position, it will do so. * Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example). * On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false. - * @param {number} [options.timeout=Infinity] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position. + * @param {number} [options.timeout] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position. * The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available. - * @param {number} [options.maximumAge=0] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return. + * @param {number} [options.maximumAge] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return. * If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position. * If set to Infinity the device must return a cached position regardless of its age. Default: 0. * @static @@ -194,9 +194,13 @@ class ParseGeoPoint { */ static current(options): Promise { return new Promise((resolve, reject) => { - navigator.geolocation.getCurrentPosition(location => { - resolve(new ParseGeoPoint(location.coords.latitude, location.coords.longitude)); - }, reject, options); + navigator.geolocation.getCurrentPosition( + location => { + resolve(new ParseGeoPoint(location.coords.latitude, location.coords.longitude)); + }, + reject, + options + ); }); } } diff --git a/src/ParseHooks.ts b/src/ParseHooks.ts index 313d089c2..9ec21dec8 100644 --- a/src/ParseHooks.ts +++ b/src/ParseHooks.ts @@ -2,8 +2,10 @@ import CoreManager from './CoreManager'; import decode from './decode'; import ParseError from './ParseError'; -export type HookDeclaration = { functionName: string, url: string } | { className: string, triggerName: string, url: string }; -export type HookDeleteArg = { functionName: string } | { className: string, triggerName: string }; +export type HookDeclaration = + | { functionName: string; url: string } + | { className: string; triggerName: string; url: string }; +export type HookDeleteArg = { functionName: string } | { className: string; triggerName: string }; export function getFunctions() { return CoreManager.getHooksController().get('functions'); diff --git a/src/ParseInstallation.ts b/src/ParseInstallation.ts index ee7c580fc..fa69e2929 100644 --- a/src/ParseInstallation.ts +++ b/src/ParseInstallation.ts @@ -11,7 +11,7 @@ type DeviceInterface = { FCM: string; ANDROID: string; WEB: string; -} +}; const DEVICE_TYPES: DeviceInterface = { IOS: 'ios', diff --git a/src/ParseObject.ts b/src/ParseObject.ts index 3dd26eb7f..83ed7cf4c 100644 --- a/src/ParseObject.ts +++ b/src/ParseObject.ts @@ -31,30 +31,30 @@ import type { AttributeMap, OpsMap } from './ObjectStateMutations'; import type { RequestOptions, FullOptions } from './RESTController'; export type Pointer = { - __type: string, - className: string, - objectId?: string, - _localId?: string, + __type: string; + className: string; + objectId?: string; + _localId?: string; }; type SaveParams = { - method: string, - path: string, - body: AttributeMap, + method: string; + path: string; + body: AttributeMap; }; export type SaveOptions = FullOptions & { - cascadeSave?: boolean, - context?: AttributeMap, - batchSize?: number, + cascadeSave?: boolean; + context?: AttributeMap; + batchSize?: number; }; type FetchOptions = { - useMasterKey?: boolean, - sessionToken?: string, - include?: string | string[], - context?: AttributeMap, -} + useMasterKey?: boolean; + sessionToken?: string; + include?: string | string[]; + context?: AttributeMap; +}; // Mapping of class names to constructors, so we can populate objects from the // server with appropriate subclasses of ParseObject @@ -104,10 +104,10 @@ class ParseObject { * @param {string} className The class name for the object * @param {object} attributes The initial set of data to store in the object. * @param {object} options The options for this object instance. - * @param {boolean} [options.ignoreValidation=false] Set to `true` ignore any attribute validation errors. + * @param {boolean} [options.ignoreValidation] Set to `true` ignore any attribute validation errors. */ constructor( - className?: string | { className: string, [attr: string]: any }, + className?: string | { className: string; [attr: string]: any }, attributes?: { [attr: string]: any }, options?: { ignoreValidation: boolean } ) { @@ -201,7 +201,7 @@ class ParseObject { * * @returns {Parse.Object|object} */ - _getStateIdentifier(): ParseObject | { id: string, className: string } { + _getStateIdentifier(): ParseObject | { id: string; className: string } { if (singleInstance) { let id = this.id; if (!id) { @@ -349,10 +349,10 @@ class ParseObject { const stateController = CoreManager.getObjectStateController(); stateController.initializeState(this._getStateIdentifier()); const decoded: Partial<{ - createdAt?: Date, - updatedAt?: Date, - ACL?: any, - [key: string]: any, + createdAt?: Date; + updatedAt?: Date; + ACL?: any; + [key: string]: any; }> = {}; for (const attr in serverData) { if (attr === 'ACL') { @@ -403,9 +403,9 @@ class ParseObject { _handleSaveResponse(response: AttributeMap, status: number) { const changes: Partial<{ - createdAt: string, - updatedAt: string, - [key: string]: any + createdAt: string; + updatedAt: string; + [key: string]: any; }> = {}; let attr; const stateController = CoreManager.getObjectStateController(); @@ -934,7 +934,9 @@ class ParseObject { * @returns {Parse.Object} */ clone(): any { - const clone = new (this.constructor as new (...args: ConstructorParameters) => this)(this.className); + const clone = new (this.constructor as new ( + ...args: ConstructorParameters + ) => this)(this.className); let attributes = this.attributes; if (typeof (this.constructor as any).readOnlyAttributes === 'function') { const readonly = (this.constructor as any).readOnlyAttributes() || []; @@ -960,7 +962,9 @@ class ParseObject { * @returns {Parse.Object} */ newInstance(): any { - const clone = new (this.constructor as new (...args: ConstructorParameters) => this)(this.className); + const clone = new (this.constructor as new ( + ...args: ConstructorParameters + ) => this)(this.className); clone.id = this.id; if (singleInstance) { // Just return an object with the right id @@ -1193,7 +1197,10 @@ class ParseObject { * @returns {Promise} A promise that is fulfilled when the fetch * completes. */ - fetchWithInclude(keys: string | Array>, options: RequestOptions): Promise { + fetchWithInclude( + keys: string | Array>, + options: RequestOptions + ): Promise { options = options || {}; options.include = keys; return this.fetch(options); @@ -2309,7 +2316,7 @@ const DefaultController = { async destroy( target: ParseObject | Array, options: RequestOptions - ): Promise>{ + ): Promise> { const batchSize = options && options.batchSize ? options.batchSize : CoreManager.get('REQUEST_BATCH_SIZE'); const localDatastore = CoreManager.getLocalDatastore(); @@ -2386,7 +2393,10 @@ const DefaultController = { return Promise.resolve(target); }, - save(target: ParseObject | null | Array, options: RequestOptions): Promise | ParseFile | undefined> { + save( + target: ParseObject | null | Array, + options: RequestOptions + ): Promise | ParseFile | undefined> { const batchSize = options && options.batchSize ? options.batchSize : CoreManager.get('REQUEST_BATCH_SIZE'); const localDatastore = CoreManager.getLocalDatastore(); diff --git a/src/ParseOp.js b/src/ParseOp.js index d31a193a4..386ab1b9e 100644 --- a/src/ParseOp.js +++ b/src/ParseOp.js @@ -134,7 +134,7 @@ export class IncrementOp extends Op { throw new Error('Cannot merge Increment Op with the previous Op'); } - toJSON(): { __op: string, amount: number } { + toJSON(): { __op: string; amount: number } { return { __op: 'Increment', amount: this._amount }; } } @@ -173,7 +173,7 @@ export class AddOp extends Op { throw new Error('Cannot merge Add Op with the previous Op'); } - toJSON(): { __op: string, objects: any } { + toJSON(): { __op: string; objects: any } { return { __op: 'Add', objects: encode(this._value, false, true) }; } } @@ -225,7 +225,7 @@ export class AddUniqueOp extends Op { throw new Error('Cannot merge AddUnique Op with the previous Op'); } - toJSON(): { __op: string, objects: any } { + toJSON(): { __op: string; objects: any } { return { __op: 'AddUnique', objects: encode(this._value, false, true) }; } } @@ -295,7 +295,7 @@ export class RemoveOp extends Op { throw new Error('Cannot merge Remove Op with the previous Op'); } - toJSON(): { __op: string, objects: any } { + toJSON(): { __op: string; objects: any } { return { __op: 'Remove', objects: encode(this._value, false, true) }; } } @@ -425,7 +425,7 @@ export class RelationOp extends Op { throw new Error('Cannot merge Relation Op with the previous Op'); } - toJSON(): { __op?: string, objects?: any, ops?: any } { + toJSON(): { __op?: string; objects?: any; ops?: any } { const idToPointer = id => { return { __type: 'Pointer', @@ -463,5 +463,5 @@ CoreManager.setParseOp({ AddOp, RelationOp, RemoveOp, - AddUniqueOp + AddUniqueOp, }); diff --git a/src/ParsePolygon.js b/src/ParsePolygon.js index 828fb9594..3d08fb62a 100644 --- a/src/ParsePolygon.js +++ b/src/ParsePolygon.js @@ -53,7 +53,7 @@ class ParsePolygon { * * @returns {object} */ - toJSON(): { __type: string, coordinates: Array> } { + toJSON(): { __type: string; coordinates: Array> } { ParsePolygon._validate(this._coordinates); return { __type: 'Polygon', diff --git a/src/ParseQuery.ts b/src/ParseQuery.ts index 5da1a4c60..ab80a32e2 100644 --- a/src/ParseQuery.ts +++ b/src/ParseQuery.ts @@ -11,47 +11,47 @@ import type LiveQuerySubscription from './LiveQuerySubscription'; import type { RequestOptions, FullOptions } from './RESTController'; type BatchOptions = FullOptions & { - batchSize?: number - useMasterKey?: boolean, - sessionToken?: string, - context?: { [key: string]: any }, - json?: boolean + batchSize?: number; + useMasterKey?: boolean; + sessionToken?: string; + context?: { [key: string]: any }; + json?: boolean; }; export type WhereClause = { - [attr: string]: any, + [attr: string]: any; }; type QueryOptions = { - useMasterKey?: boolean, - sessionToken?: string, - context?: { [key: string]: any }, - json?: boolean, + useMasterKey?: boolean; + sessionToken?: string; + context?: { [key: string]: any }; + json?: boolean; }; type FullTextQueryOptions = { - language?: string, - caseSensitive?: boolean, - diacriticSensitive?: boolean, + language?: string; + caseSensitive?: boolean; + diacriticSensitive?: boolean; }; export type QueryJSON = { - where: WhereClause, - watch?: string, - include?: string, - excludeKeys?: string, - keys?: string, - limit?: number, - skip?: number, - order?: string, - className?: string, - count?: number, - hint?: any, - explain?: boolean, - readPreference?: string, - includeReadPreference?: string, - subqueryReadPreference?: string, - comment?: string, + where: WhereClause; + watch?: string; + include?: string; + excludeKeys?: string; + keys?: string; + limit?: number; + skip?: number; + order?: string; + className?: string; + count?: number; + hint?: any; + explain?: boolean; + readPreference?: string; + includeReadPreference?: string; + subqueryReadPreference?: string; + comment?: string; }; /** @@ -487,7 +487,7 @@ class ParseQuery { if (this._explain) { params.explain = true; } - if(this._comment) { + if (this._comment) { params.comment = this._comment; } for (const key in this._extraOptions) { @@ -575,7 +575,7 @@ class ParseQuery { this._explain = !!json.explain; } - if(json.comment) { + if (json.comment) { this._comment = json.comment; } @@ -773,10 +773,10 @@ class ParseQuery { * @returns {Promise} A promise that is resolved with the count when * the query completes. */ - count(options?: { useMasterKey?: boolean, sessionToken?: string }): Promise { + count(options?: { useMasterKey?: boolean; sessionToken?: string }): Promise { options = options || {}; - const findOptions: { useMasterKey?: boolean, sessionToken?: string } = {}; + const findOptions: { useMasterKey?: boolean; sessionToken?: string } = {}; if (options.hasOwnProperty('useMasterKey')) { findOptions.useMasterKey = options.useMasterKey; } @@ -807,7 +807,9 @@ class ParseQuery { distinct(key: string, options?: { sessionToken?: string }): Promise> { options = options || {}; - const distinctOptions: { sessionToken?: string, useMasterKey: boolean } = { useMasterKey: true}; + const distinctOptions: { sessionToken?: string; useMasterKey: boolean } = { + useMasterKey: true, + }; if (options.hasOwnProperty('sessionToken')) { distinctOptions.sessionToken = options.sessionToken; @@ -835,7 +837,9 @@ class ParseQuery { */ aggregate(pipeline: any, options?: { sessionToken?: string }): Promise> { options = options || {}; - const aggregateOptions: { sessionToken?: string, useMasterKey: boolean } = { useMasterKey: true }; + const aggregateOptions: { sessionToken?: string; useMasterKey: boolean } = { + useMasterKey: true, + }; if (options.hasOwnProperty('sessionToken')) { aggregateOptions.sessionToken = options.sessionToken; @@ -955,10 +959,7 @@ class ParseQuery { * @returns {Promise} A promise that will be fulfilled once the * iteration has completed. */ - eachBatch( - callback: (objs: Array) => void, - options?: BatchOptions - ): Promise { + eachBatch(callback: (objs: Array) => void, options?: BatchOptions): Promise { options = options || {}; if (this._order || this._skip || this._limit >= 0) { @@ -1550,7 +1551,12 @@ class ParseQuery { throw new Error('The value being searched for must be a string.'); } - const fullOptions: { $term?: string, $language?: string, $caseSensitive?: boolean, $diacriticSensitive?: boolean } = {}; + const fullOptions: { + $term?: string; + $language?: string; + $caseSensitive?: boolean; + $diacriticSensitive?: boolean; + } = {}; fullOptions.$term = value; for (const option in options) { @@ -2155,12 +2161,20 @@ class ParseQuery { } const DefaultController = { - find(className: string, params: QueryJSON, options: RequestOptions): Promise<{ results: Array }> { + find( + className: string, + params: QueryJSON, + options: RequestOptions + ): Promise<{ results: Array }> { const RESTController = CoreManager.getRESTController(); return RESTController.request('GET', 'classes/' + className, params, options); }, - aggregate(className: string, params: any, options: RequestOptions): Promise<{ results: Array }> { + aggregate( + className: string, + params: any, + options: RequestOptions + ): Promise<{ results: Array }> { const RESTController = CoreManager.getRESTController(); return RESTController.request('GET', 'aggregate/' + className, params, options); diff --git a/src/ParseRelation.js b/src/ParseRelation.js index fef257f63..fde1b1ec9 100644 --- a/src/ParseRelation.js +++ b/src/ParseRelation.js @@ -108,7 +108,7 @@ class ParseRelation { * * @returns {object} JSON representation of Relation */ - toJSON(): { __type: 'Relation', className: ?string } { + toJSON(): { __type: 'Relation'; className: ?string } { return { __type: 'Relation', className: this.targetClassName, diff --git a/src/ParseRole.ts b/src/ParseRole.ts index 67e5a5b31..6ce7ca754 100644 --- a/src/ParseRole.ts +++ b/src/ParseRole.ts @@ -112,7 +112,7 @@ class ParseRole extends ParseObject { } validate(attrs: AttributeMap, options?: any): ParseError | boolean { - const isInvalid = (super.validate as typeof this['validate'])(attrs, options); + const isInvalid = (super.validate as (typeof this)['validate'])(attrs, options); if (isInvalid) { return isInvalid; } diff --git a/src/ParseSchema.js b/src/ParseSchema.js index 38cfc9ab4..6ecdfe61f 100644 --- a/src/ParseSchema.js +++ b/src/ParseSchema.js @@ -24,8 +24,8 @@ const FIELD_TYPES = [ ]; type FieldOptions = { - required: boolean, - defaultValue: any, + required: boolean; + defaultValue: any; }; /** diff --git a/src/ParseUser.ts b/src/ParseUser.ts index 75756a70e..f26566813 100644 --- a/src/ParseUser.ts +++ b/src/ParseUser.ts @@ -10,9 +10,9 @@ import type { RequestOptions, FullOptions } from './RESTController'; export type AuthData = { [key: string]: any }; export type AuthProviderType = { authenticate?(options: { - error?: (provider: AuthProviderType, error: string | any) => void, - success?: (provider: AuthProviderType, result: AuthData) => void, - }): void, + error?: (provider: AuthProviderType, error: string | any) => void; + success?: (provider: AuthProviderType, result: AuthData) => void; + }): void; restoreAuthentication(authData: any): boolean; getAuthType(): string; deauthenticate?(): void; @@ -118,7 +118,7 @@ class ParseUser extends ParseObject { this.stripAnonymity(); const controller = CoreManager.getUserController(); - return controller.linkWith(this, authData, saveOpts).catch((e) => { + return controller.linkWith(this, authData, saveOpts).catch(e => { delete authData[authType]; this.restoreAnonimity(oldAnonymousData); throw e; @@ -398,7 +398,7 @@ class ParseUser extends ParseObject { * * @returns {string} the session token, or undefined */ - getSessionToken(): string | null{ + getSessionToken(): string | null { const token = this.get('sessionToken'); if (token == null || typeof token === 'string') { return token; @@ -429,7 +429,10 @@ class ParseUser extends ParseObject { * @returns {Promise} A promise that is fulfilled when the signup * finishes. */ - signUp(attrs: AttributeMap, options?: FullOptions & { context?: AttributeMap }): Promise { + signUp( + attrs: AttributeMap, + options?: FullOptions & { context?: AttributeMap } + ): Promise { options = options || {}; const signupOptions: FullOptions & { context?: AttributeMap } = {}; @@ -553,7 +556,7 @@ class ParseUser extends ParseObject { * * @param {string} password The password to be verified. * @param {object} options The options. - * @param {boolean} [options.ignoreEmailVerification=false] Set to `true` to bypass email verification and verify + * @param {boolean} [options.ignoreEmailVerification] Set to `true` to bypass email verification and verify * the password regardless of whether the email has been verified. This requires the master key. * @returns {Promise} A promise that is fulfilled with a user when the password is correct. */ @@ -693,7 +696,12 @@ class ParseUser extends ParseObject { * @returns {Promise} A promise that is fulfilled with the user when * the login completes. */ - static logInWithAdditionalAuth(username: string, password: string, authData: AuthData, options?: FullOptions) { + static logInWithAdditionalAuth( + username: string, + password: string, + authData: AuthData, + options?: FullOptions + ) { if (typeof username !== 'string') { return Promise.reject(new ParseError(ParseError.OTHER_CAUSE, 'Username must be a string.')); } @@ -720,7 +728,10 @@ class ParseUser extends ParseObject { */ static loginAs(userId: string) { if (!userId) { - throw new ParseError(ParseError.USERNAME_MISSING, 'Cannot log in as user with an empty user id'); + throw new ParseError( + ParseError.USERNAME_MISSING, + 'Cannot log in as user with an empty user id' + ); } const controller = CoreManager.getUserController(); const user = new this(); @@ -877,7 +888,7 @@ class ParseUser extends ParseObject { * @param {string} username The username of the user whose password should be verified. * @param {string} password The password to be verified. * @param {object} options The options. - * @param {boolean} [options.ignoreEmailVerification=false] Set to `true` to bypass email verification and verify + * @param {boolean} [options.ignoreEmailVerification] Set to `true` to bypass email verification and verify * the password regardless of whether the email has been verified. This requires the master key. * @returns {Promise} A promise that is fulfilled with a user when the password is correct. */ @@ -1034,7 +1045,7 @@ const DefaultController = { return DefaultController.updateUserOnDisk(user); }, - currentUser(): ParseUser | null{ + currentUser(): ParseUser | null { if (currentUserCache) { return currentUserCache; } @@ -1170,14 +1181,16 @@ const DefaultController = { loginAs(user: ParseUser, userId: string): Promise { const RESTController = CoreManager.getRESTController(); - return RESTController.request('POST', 'loginAs', { userId }, { useMasterKey: true }).then(response => { - user._finishFetch(response); - user._setExisted(true); - if (!canUseCurrentUser) { - return Promise.resolve(user); + return RESTController.request('POST', 'loginAs', { userId }, { useMasterKey: true }).then( + response => { + user._finishFetch(response); + user._setExisted(true); + if (!canUseCurrentUser) { + return Promise.resolve(user); + } + return DefaultController.setCurrentUser(user); } - return DefaultController.setCurrentUser(user); - }); + ); }, become(user: ParseUser, options: RequestOptions): Promise { @@ -1272,7 +1285,9 @@ const DefaultController = { const data = { username, password, - ...(options.ignoreEmailVerification !== undefined && { ignoreEmailVerification: options.ignoreEmailVerification }), + ...(options.ignoreEmailVerification !== undefined && { + ignoreEmailVerification: options.ignoreEmailVerification, + }), }; return RESTController.request('GET', 'verifyPassword', data, options); }, diff --git a/src/Push.ts b/src/Push.ts index 2c0581921..38b995fbb 100644 --- a/src/Push.ts +++ b/src/Push.ts @@ -6,10 +6,10 @@ import type { WhereClause } from './ParseQuery'; import type { FullOptions } from './RESTController'; export type PushData = { - where?: WhereClause | ParseQuery, - push_time?: Date | string, - expiration_time?: Date | string, - expiration_interval?: number, + where?: WhereClause | ParseQuery; + push_time?: Date | string; + expiration_time?: Date | string; + expiration_interval?: number; }; /** @@ -86,7 +86,10 @@ export function send(data: PushData, options: FullOptions = {}): Promise * * @returns {Parse.Object} Status of Push. */ -export function getPushStatus(pushStatusId: string, options: FullOptions = {}): Promise { +export function getPushStatus( + pushStatusId: string, + options: FullOptions = {} +): Promise { const pushOptions = { useMasterKey: true }; if (options.hasOwnProperty('useMasterKey')) { pushOptions.useMasterKey = options.useMasterKey; diff --git a/src/RESTController.js b/src/RESTController.js index a6e8cec60..95ad69bd0 100644 --- a/src/RESTController.js +++ b/src/RESTController.js @@ -9,26 +9,26 @@ import ParseError from './ParseError'; import { resolvingPromise } from './promiseUtils'; export type RequestOptions = { - useMasterKey?: boolean, - sessionToken?: string, - installationId?: string, - returnStatus?: boolean, - batchSize?: number, - include?: any, - progress?: any, - context?: any, - usePost?: boolean, - ignoreEmailVerification?: boolean, + useMasterKey?: boolean; + sessionToken?: string; + installationId?: string; + returnStatus?: boolean; + batchSize?: number; + include?: any; + progress?: any; + context?: any; + usePost?: boolean; + ignoreEmailVerification?: boolean; }; export type FullOptions = { - success?: any, - error?: any, - useMasterKey?: boolean, - sessionToken?: string, - installationId?: string, - progress?: any, - usePost?: boolean, + success?: any; + error?: any; + useMasterKey?: boolean; + sessionToken?: string; + installationId?: string; + progress?: any; + usePost?: boolean; }; let XHR = null; @@ -111,10 +111,16 @@ const RESTController = { let response; try { response = JSON.parse(xhr.responseText); - const availableHeaders = typeof xhr.getAllResponseHeaders === 'function' ? xhr.getAllResponseHeaders() : ""; + const availableHeaders = + typeof xhr.getAllResponseHeaders === 'function' ? xhr.getAllResponseHeaders() : ''; headers = {}; - if (typeof xhr.getResponseHeader === 'function' && availableHeaders?.indexOf('access-control-expose-headers') >= 0) { - const responseHeaders = xhr.getResponseHeader('access-control-expose-headers').split(', '); + if ( + typeof xhr.getResponseHeader === 'function' && + availableHeaders?.indexOf('access-control-expose-headers') >= 0 + ) { + const responseHeaders = xhr + .getResponseHeader('access-control-expose-headers') + .split(', '); responseHeaders.forEach(header => { if (availableHeaders.indexOf(header.toLowerCase()) >= 0) { headers[header] = xhr.getResponseHeader(header.toLowerCase()); diff --git a/src/SingleInstanceStateController.js b/src/SingleInstanceStateController.js index 9bf086860..dfc51cb00 100644 --- a/src/SingleInstanceStateController.js +++ b/src/SingleInstanceStateController.js @@ -8,14 +8,14 @@ import type { Op } from './ParseOp'; import type { AttributeMap, ObjectCache, OpsMap, State } from './ObjectStateMutations'; type ObjectIdentifier = { - className: string, - id: string, + className: string; + id: string; }; let objectState: { [className: string]: { - [id: string]: State, - }, + [id: string]: State; + }; } = {}; export function getState(obj: ObjectIdentifier): ?State { diff --git a/src/Socket.weapp.js b/src/Socket.weapp.js index d8d3884e7..7cebe889e 100644 --- a/src/Socket.weapp.js +++ b/src/Socket.weapp.js @@ -13,7 +13,7 @@ module.exports = class SocketWeapp { this.onmessage(msg); }); - wx.onSocketClose((event) => { + wx.onSocketClose(event => { this.onclose(event); }); diff --git a/src/TaskQueue.ts b/src/TaskQueue.ts index 0d14c32d4..093481024 100644 --- a/src/TaskQueue.ts +++ b/src/TaskQueue.ts @@ -1,8 +1,8 @@ import { resolvingPromise } from './promiseUtils'; type Task = { - task: () => Promise, - _completion: any, + task: () => Promise; + _completion: any; }; class TaskQueue { diff --git a/src/WebSocketController.js b/src/WebSocketController.js index c3e1d0ca4..5a95582c5 100644 --- a/src/WebSocketController.js +++ b/src/WebSocketController.js @@ -4,7 +4,8 @@ let WebSocketController; try { if (process.env.PARSE_BUILD === 'browser') { - WebSocketController = (typeof WebSocket === 'function' || typeof WebSocket === 'object' ? WebSocket : null); + WebSocketController = + typeof WebSocket === 'function' || typeof WebSocket === 'object' ? WebSocket : null; } else if (process.env.PARSE_BUILD === 'node') { WebSocketController = require('ws'); } else if (process.env.PARSE_BUILD === 'weapp') { diff --git a/src/__tests__/CoreManager-test.js b/src/__tests__/CoreManager-test.js index d4744ae1e..0dd3aafd1 100644 --- a/src/__tests__/CoreManager-test.js +++ b/src/__tests__/CoreManager-test.js @@ -136,19 +136,19 @@ describe('CoreManager', () => { 'InstallationController must implement currentInstallationId()' ); - expect(CoreManager.setInstallationController.bind(null, { - currentInstallationId: function () {}, - currentInstallation: function () {}, - })).toThrow( - 'InstallationController must implement updateInstallationOnDisk()' - ); + expect( + CoreManager.setInstallationController.bind(null, { + currentInstallationId: function () {}, + currentInstallation: function () {}, + }) + ).toThrow('InstallationController must implement updateInstallationOnDisk()'); - expect(CoreManager.setInstallationController.bind(null, { - currentInstallationId: function () {}, - updateInstallationOnDisk: function () {}, - })).toThrow( - 'InstallationController must implement currentInstallation()' - ); + expect( + CoreManager.setInstallationController.bind(null, { + currentInstallationId: function () {}, + updateInstallationOnDisk: function () {}, + }) + ).toThrow('InstallationController must implement currentInstallation()'); expect( CoreManager.setInstallationController.bind(null, { diff --git a/src/__tests__/Hooks-test.js b/src/__tests__/Hooks-test.js index 365070fdd..03d9b248a 100644 --- a/src/__tests__/Hooks-test.js +++ b/src/__tests__/Hooks-test.js @@ -132,80 +132,69 @@ describe('Hooks', () => { it('shoud throw invalid create', async () => { expect.assertions(10); - const p1 = Hooks.create({ functionName: 'myFunction' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p2 = Hooks.create({ url: 'http://dummy.com' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p3 = Hooks.create({ className: 'MyClass' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p4 = Hooks.create({ className: 'MyClass', url: 'http://dummy.com' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p5 = Hooks.create({ className: 'MyClass', triggerName: 'beforeSave' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); + const p1 = Hooks.create({ functionName: 'myFunction' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p2 = Hooks.create({ url: 'http://dummy.com' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p3 = Hooks.create({ className: 'MyClass' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p4 = Hooks.create({ className: 'MyClass', url: 'http://dummy.com' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p5 = Hooks.create({ className: 'MyClass', triggerName: 'beforeSave' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); await Promise.all([p1, p2, p3, p4, p5]); }); it('shoud throw invalid update', async () => { expect.assertions(6); - const p1 = Hooks.update({ functionssName: 'myFunction' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p2 = Hooks.update({ className: 'MyClass' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p3 = Hooks.update({ className: 'MyClass', url: 'http://dummy.com' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); + const p1 = Hooks.update({ functionssName: 'myFunction' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p2 = Hooks.update({ className: 'MyClass' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p3 = Hooks.update({ className: 'MyClass', url: 'http://dummy.com' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); await Promise.all([p1, p2, p3]); }); it('shoud throw invalid remove', async () => { expect.assertions(6); - const p1 = Hooks.remove({ functionssName: 'myFunction' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p2 = Hooks.remove({ className: 'MyClass' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); - - const p3 = Hooks.remove({ className: 'MyClass', url: 'http://dummy.com' }) - .catch(err => { - expect(err.code).toBe(143); - expect(err.error).toBe('invalid hook declaration'); - }); + const p1 = Hooks.remove({ functionssName: 'myFunction' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p2 = Hooks.remove({ className: 'MyClass' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); + + const p3 = Hooks.remove({ className: 'MyClass', url: 'http://dummy.com' }).catch(err => { + expect(err.code).toBe(143); + expect(err.error).toBe('invalid hook declaration'); + }); await Promise.all([p1, p2, p3]); }); diff --git a/src/__tests__/InstallationController-test.js b/src/__tests__/InstallationController-test.js index 8c6422a2d..efcb97be9 100644 --- a/src/__tests__/InstallationController-test.js +++ b/src/__tests__/InstallationController-test.js @@ -44,7 +44,7 @@ describe('InstallationController', () => { }); it('permanently stores the installation id', async () => { - const iid = await InstallationController.currentInstallationId(); + const iid = await InstallationController.currentInstallationId(); InstallationController._clearCache(); const i = await InstallationController.currentInstallationId(); expect(i).toBe(iid); @@ -76,7 +76,7 @@ describe('InstallationController', () => { it('permanently stores the current installation', async () => { const iid = 'stored-installation-id'; InstallationController._setInstallationIdCache(iid); - const installation = await InstallationController.currentInstallation(); + const installation = await InstallationController.currentInstallation(); InstallationController._clearCache(); const i = await InstallationController.currentInstallation(); expect(i.installationId).toEqual(installation.installationId); diff --git a/src/__tests__/OfflineQuery-test.js b/src/__tests__/OfflineQuery-test.js index f700f3210..3fb130da5 100644 --- a/src/__tests__/OfflineQuery-test.js +++ b/src/__tests__/OfflineQuery-test.js @@ -285,7 +285,10 @@ describe('OfflineQuery', () => { it('matches on inequalities', () => { const player = new ParseObject('Person'); - player.set('score', 12).set('name', 'Bill').set('birthday', new Date(1980, 2, 4)); + player + .set('score', 12) + .set('name', 'Bill') + .set('birthday', new Date(1980, 2, 4)); let q = new ParseQuery('Person'); q.lessThan('score', 15); diff --git a/src/__tests__/Parse-test.js b/src/__tests__/Parse-test.js index 83ebcfd7e..e68ea8253 100644 --- a/src/__tests__/Parse-test.js +++ b/src/__tests__/Parse-test.js @@ -96,9 +96,8 @@ describe('Parse module', () => { }); it('cannot set EventuallyQueue controller with missing functions', () => { - const controller = { - }; - expect(() => Parse.EventuallyQueue = controller).toThrow( + const controller = {}; + expect(() => (Parse.EventuallyQueue = controller)).toThrow( 'EventuallyQueue must implement poll()' ); }); @@ -190,7 +189,7 @@ describe('Parse module', () => { it('can set and get live query', () => { const temp = Parse.LiveQuery; const LiveQuery = new ParseLiveQuery(); - Parse.LiveQuery = LiveQuery + Parse.LiveQuery = LiveQuery; expect(Parse.LiveQuery).toEqual(LiveQuery); Parse.LiveQuery = temp; }); diff --git a/src/__tests__/ParseFile-test.js b/src/__tests__/ParseFile-test.js index f86b010df..d353a9437 100644 --- a/src/__tests__/ParseFile-test.js +++ b/src/__tests__/ParseFile-test.js @@ -24,7 +24,7 @@ const mockLocalDatastore = { const objectKey = mockLocalDatastore.getKeyForObject(object); }), _updateObjectIfPinned: jest.fn(), - getKeyForObject: jest.fn((object) => { + getKeyForObject: jest.fn(object => { // (Taken from LocalDataStore source) This fails for nested objects that are not ParseObject const OBJECT_PREFIX = 'Parse_LDS_'; const objectId = object.objectId || object._getId(); diff --git a/src/__tests__/ParseGeoPoint-test.js b/src/__tests__/ParseGeoPoint-test.js index 3bc9346c0..665d53fb3 100644 --- a/src/__tests__/ParseGeoPoint-test.js +++ b/src/__tests__/ParseGeoPoint-test.js @@ -232,6 +232,8 @@ describe('GeoPoint', () => { expect(options).toEqual({ timeout: 5000 }); }, }; - await expect(ParseGeoPoint.current({ timeout: 5000 })).rejects.toEqual({ message: 'PERMISSION_DENIED' }); + await expect(ParseGeoPoint.current({ timeout: 5000 })).rejects.toEqual({ + message: 'PERMISSION_DENIED', + }); }); }); diff --git a/src/__tests__/ParseInstallation-test.js b/src/__tests__/ParseInstallation-test.js index 7870fce0b..8ed3993b4 100644 --- a/src/__tests__/ParseInstallation-test.js +++ b/src/__tests__/ParseInstallation-test.js @@ -99,10 +99,7 @@ describe('ParseInstallation', () => { return Promise.resolve({}, 200); } once = false; - const parseError = new ParseError( - ParseError.OBJECT_NOT_FOUND, - 'Object not found.' - ); + const parseError = new ParseError(ParseError.OBJECT_NOT_FOUND, 'Object not found.'); return Promise.reject(parseError); }, ajax() {}, @@ -200,10 +197,7 @@ describe('ParseInstallation', () => { } once = false; // fetch() results - const parseError = new ParseError( - ParseError.OBJECT_NOT_FOUND, - 'Object not found.' - ); + const parseError = new ParseError(ParseError.OBJECT_NOT_FOUND, 'Object not found.'); return Promise.reject(parseError); }, ajax() {}, diff --git a/src/__tests__/ParseLiveQuery-test.js b/src/__tests__/ParseLiveQuery-test.js index ae105f1ef..01f0c48fd 100644 --- a/src/__tests__/ParseLiveQuery-test.js +++ b/src/__tests__/ParseLiveQuery-test.js @@ -19,7 +19,7 @@ const mockLiveQueryClient = { close: jest.fn(), }; CoreManager.setEventEmitter(EventEmitter); -const LiveQuery = new ParseLiveQuery() +const LiveQuery = new ParseLiveQuery(); describe('ParseLiveQuery', () => { beforeEach(() => { diff --git a/src/__tests__/ParseObject-test.js b/src/__tests__/ParseObject-test.js index 0a752cee1..7cb64bc89 100644 --- a/src/__tests__/ParseObject-test.js +++ b/src/__tests__/ParseObject-test.js @@ -126,12 +126,13 @@ const mockLocalDatastore = { const objectKey = mockLocalDatastore.getKeyForObject(object); }), _updateObjectIfPinned: jest.fn(), - getKeyForObject: jest.fn((object) => { + getKeyForObject: jest.fn(object => { // (Taken from LocalDataStore source) This fails for nested objects that are not ParseObject const objectId = object.objectId || object._getId(); const OBJECT_PREFIX = 'Parse_LDS_'; return `${OBJECT_PREFIX}${object.className}_${objectId}`; - }), updateFromServer: jest.fn(), + }), + updateFromServer: jest.fn(), _clear: jest.fn(), checkIfEnabled: jest.fn(() => { if (!mockLocalDatastore.isEnabled) { @@ -2440,7 +2441,7 @@ describe('ParseObject', () => { expect(controller.ajax).toHaveBeenCalledTimes(0); }); - it('can save an array of objects', (done) => { + it('can save an array of objects', done => { const xhr = { setRequestHeader: jest.fn(), open: jest.fn(), @@ -2478,7 +2479,7 @@ describe('ParseObject', () => { }); }); - it('can saveAll with batchSize', (done) => { + it('can saveAll with batchSize', done => { const xhrs = []; for (let i = 0; i < 2; i++) { xhrs[i] = { @@ -2539,7 +2540,7 @@ describe('ParseObject', () => { }); }); - it('can saveAll with global batchSize', (done) => { + it('can saveAll with global batchSize', done => { const xhrs = []; for (let i = 0; i < 2; i++) { xhrs[i] = { @@ -2600,7 +2601,7 @@ describe('ParseObject', () => { }); }); - it('returns the first error when saving an array of objects', (done) => { + it('returns the first error when saving an array of objects', done => { const xhrs = []; for (let i = 0; i < 2; i++) { xhrs[i] = { @@ -2661,7 +2662,7 @@ describe('ObjectController', () => { jest.clearAllMocks(); }); - it('can fetch a single object', (done) => { + it('can fetch a single object', done => { const objectController = CoreManager.getObjectController(); const xhr = { setRequestHeader: jest.fn(), diff --git a/src/__tests__/ParseOp-test.js b/src/__tests__/ParseOp-test.js index 6a7ff78ff..838904523 100644 --- a/src/__tests__/ParseOp-test.js +++ b/src/__tests__/ParseOp-test.js @@ -33,7 +33,9 @@ const ParseObject = require('../ParseObject'); const ParseOp = require('../ParseOp'); const CoreManager = require('../CoreManager'); jest.spyOn(CoreManager, 'getParseObject').mockImplementation(() => require('../ParseObject')); -jest.spyOn(CoreManager, 'getEventuallyQueue').mockImplementation(() => require('../EventuallyQueue')); +jest + .spyOn(CoreManager, 'getEventuallyQueue') + .mockImplementation(() => require('../EventuallyQueue')); const { Op, SetOp, UnsetOp, IncrementOp, AddOp, AddUniqueOp, RemoveOp, RelationOp, opFromJSON } = ParseOp; diff --git a/src/__tests__/ParseQuery-test.js b/src/__tests__/ParseQuery-test.js index 6afcd224f..8fdca4cb2 100644 --- a/src/__tests__/ParseQuery-test.js +++ b/src/__tests__/ParseQuery-test.js @@ -1803,7 +1803,7 @@ describe('ParseQuery', () => { q.select('size', 'name'); q.includeAll(); q.hint('_id_'); - q.exclude('foo') + q.exclude('foo'); await q.findAll(); expect(findMock).toHaveBeenCalledTimes(1); @@ -3857,5 +3857,4 @@ describe('ParseQuery LocalDatastore', () => { query.comment(); expect(query._comment).toBeUndefined(); }); - }); diff --git a/src/__tests__/ParseUser-test.js b/src/__tests__/ParseUser-test.js index 16f25e682..5d60ed699 100644 --- a/src/__tests__/ParseUser-test.js +++ b/src/__tests__/ParseUser-test.js @@ -354,9 +354,11 @@ describe('ParseUser', () => { }, ajax() {}, }); - const response = await ParseUser.logInWithAdditionalAuth('username', 'password', {mfa: {key:'1234'}}); + const response = await ParseUser.logInWithAdditionalAuth('username', 'password', { + mfa: { key: '1234' }, + }); expect(response instanceof ParseUser).toBe(true); - expect(response.get('authDataResponse')).toEqual({mfa: { enabled: true }}); + expect(response.get('authDataResponse')).toEqual({ mfa: { enabled: true } }); }); it('loginWithAdditonal fails with invalid payload', async () => { @@ -368,13 +370,12 @@ describe('ParseUser', () => { await expect(ParseUser.logInWithAdditionalAuth('username', {}, {})).rejects.toThrowError( new ParseError(ParseError.OTHER_CAUSE, 'Password must be a string.') ); - await expect(ParseUser.logInWithAdditionalAuth('username', 'password', '')).rejects.toThrowError( - new ParseError(ParseError.OTHER_CAUSE, 'Auth must be an object.') - ); + await expect( + ParseUser.logInWithAdditionalAuth('username', 'password', '') + ).rejects.toThrowError(new ParseError(ParseError.OTHER_CAUSE, 'Auth must be an object.')); }); }); - it('preserves changes when logging in', done => { ParseUser.enableUnsafeCurrentUser(); ParseUser._clearCache(); @@ -409,11 +410,11 @@ describe('ParseUser', () => { }); }); - it('does not allow loginAs without id', (done) => { + it('does not allow loginAs without id', done => { try { ParseUser.loginAs(null, null); } catch (e) { - expect(e.message).toBe('Cannot log in as user with an empty user id') + expect(e.message).toBe('Cannot log in as user with an empty user id'); done(); } }); diff --git a/src/__tests__/RESTController-test.js b/src/__tests__/RESTController-test.js index 4c1890379..412d5f2e8 100644 --- a/src/__tests__/RESTController-test.js +++ b/src/__tests__/RESTController-test.js @@ -223,8 +223,10 @@ describe('RESTController', () => { getResponseHeader: function (header) { return headers[header]; }, - getAllResponseHeaders: function() { - return Object.keys(headers).map(key => `${key}: ${headers[key]}`).join('\n'); + getAllResponseHeaders: function () { + return Object.keys(headers) + .map(key => `${key}: ${headers[key]}`) + .join('\n'); }, send: function () { this.status = 200; @@ -234,7 +236,12 @@ describe('RESTController', () => { }, }; RESTController._setXHR(XHR); - const response = await RESTController.request('GET', 'classes/MyObject', {}, { returnStatus: true }); + const response = await RESTController.request( + 'GET', + 'classes/MyObject', + {}, + { returnStatus: true } + ); expect(response._headers['X-Parse-Job-Status-Id']).toBe('1234'); }); @@ -246,8 +253,10 @@ describe('RESTController', () => { getResponseHeader: function (header) { return headers[header]; }, - getAllResponseHeaders: function() { - return Object.keys(headers).map(key => `${key}: ${headers[key]}`).join('\n'); + getAllResponseHeaders: function () { + return Object.keys(headers) + .map(key => `${key}: ${headers[key]}`) + .join('\n'); }, send: function () { this.status = 200; @@ -287,10 +296,10 @@ describe('RESTController', () => { it('does not invoke Chrome browser console error on getResponseHeader', async () => { const headers = { 'access-control-expose-headers': 'a, b, c', - 'a' : 'value', - 'b' : 'value', - 'c' : 'value', - } + a: 'value', + b: 'value', + c: 'value', + }; const XHR = function () {}; XHR.prototype = { open: function () {}, @@ -299,10 +308,12 @@ describe('RESTController', () => { if (Object.keys(headers).includes(key)) { return headers[key]; } - throw new Error("Chrome creates a console error here."); + throw new Error('Chrome creates a console error here.'); }), getAllResponseHeaders: jest.fn(() => { - return Object.keys(headers).map(key => `${key}: ${headers[key]}`).join('\r\n'); + return Object.keys(headers) + .map(key => `${key}: ${headers[key]}`) + .join('\r\n'); }), send: function () { this.status = 200; @@ -317,7 +328,6 @@ describe('RESTController', () => { expect(XHR.prototype.getResponseHeader.mock.calls.length).toBe(4); }); - it('handles invalid header', async () => { const XHR = function () {}; XHR.prototype = { diff --git a/src/__tests__/Storage-test.js b/src/__tests__/Storage-test.js index 843d2c57a..2c2b9a2a7 100644 --- a/src/__tests__/Storage-test.js +++ b/src/__tests__/Storage-test.js @@ -207,8 +207,9 @@ describe('IndexDB StorageController', () => { it('handle indexedDB is not accessible', async () => { jest.isolateModules(() => { global.indexedDB = mockIndexedDB; - jest.spyOn(idbKeyVal, 'createStore') - .mockImplementationOnce(() => { throw new Error('Protected'); }); + jest.spyOn(idbKeyVal, 'createStore').mockImplementationOnce(() => { + throw new Error('Protected'); + }); const dbController = require('../IndexedDBStorageController'); expect(dbController).toBeUndefined(); expect(idbKeyVal.createStore).toHaveBeenCalled(); diff --git a/src/__tests__/test_helpers/flushPromises.js b/src/__tests__/test_helpers/flushPromises.js index d33a0e3c3..b67d76302 100644 --- a/src/__tests__/test_helpers/flushPromises.js +++ b/src/__tests__/test_helpers/flushPromises.js @@ -3,7 +3,7 @@ const { setImmediate } = require('timers'); * Wait for all asynchronous code to finish executing */ function flushPromises() { - return new Promise((resolve) => setImmediate(resolve)); + return new Promise(resolve => setImmediate(resolve)); } module.exports = flushPromises; diff --git a/src/promiseUtils.ts b/src/promiseUtils.ts index 8e82a8191..d911de062 100644 --- a/src/promiseUtils.ts +++ b/src/promiseUtils.ts @@ -6,7 +6,8 @@ export function resolvingPromise() { res = resolve; rej = reject; }); - const defer: typeof promise & { resolve: (res: T) => void, reject: (err: any) => void } = promise as any; + const defer: typeof promise & { resolve: (res: T) => void; reject: (err: any) => void } = + promise as any; defer.resolve = res!; defer.reject = rej!; return defer; diff --git a/src/unsavedChildren.ts b/src/unsavedChildren.ts index ce11d2966..b2619fb9e 100644 --- a/src/unsavedChildren.ts +++ b/src/unsavedChildren.ts @@ -4,8 +4,8 @@ import type ParseObject from './ParseObject'; import ParseRelation from './ParseRelation'; type EncounterMap = { - objects: { [identifier: string]: ParseObject | boolean }, - files: Array, + objects: { [identifier: string]: ParseObject | boolean }; + files: Array; }; /** From 09a2d0b9ab5f5489462d0b6ef650da0fac821c3a Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Sat, 18 May 2024 16:33:56 -0500 Subject: [PATCH 10/53] style: Run Prettier for TypeScript declaration files (#2142) --- .eslintrc.json | 1 + package-lock.json | 13 + package.json | 5 +- src/{FacebookUtils.js => FacebookUtils.ts} | 8 +- src/LocalDatastore.ts | 2 +- src/ObjectStateMutations.ts | 6 +- src/{ParseConfig.js => ParseConfig.ts} | 9 +- src/ParseObject.ts | 4 +- src/{ParseOp.js => ParseOp.ts} | 31 +- src/{ParsePolygon.js => ParsePolygon.ts} | 28 +- src/{ParseSchema.js => ParseSchema.ts} | 33 +- src/__tests__/ObjectStateMutations-test.js | 72 +- types/Analytics.d.ts | 7 +- types/AnonymousUtils.d.ts | 100 +- types/CoreManager.d.ts | 555 +++-- types/EventuallyQueue.d.ts | 328 +-- types/FacebookUtils.d.ts | 198 +- types/InstallationController.d.ts | 12 +- types/LiveQueryClient.d.ts | 167 +- types/LiveQuerySubscription.d.ts | 26 +- types/LocalDatastore.d.ts | 64 +- types/LocalDatastoreController.default.d.ts | 12 +- ...LocalDatastoreController.react-native.d.ts | 12 +- types/LocalDatastoreUtils.d.ts | 6 +- types/ObjectStateMutations.d.ts | 35 +- types/OfflineQuery.d.ts | 30 +- types/Parse.d.ts | 134 +- types/ParseACL.d.ts | 236 +- types/ParseCLP.d.ts | 380 ++-- types/ParseConfig.d.ts | 141 +- types/ParseError.d.ts | 134 +- types/ParseFile.d.ts | 347 +-- types/ParseGeoPoint.d.ts | 162 +- types/ParseHooks.d.ts | 44 +- types/ParseInstallation.d.ts | 324 +-- types/ParseObject.d.ts | 1998 +++++++++-------- types/ParseOp.d.ts | 137 +- types/ParsePolygon.d.ts | 96 +- types/ParseQuery.d.ts | 1831 +++++++-------- types/ParseRelation.d.ts | 76 +- types/ParseRole.d.ts | 114 +- types/ParseSchema.d.ts | 428 ++-- types/ParseSession.d.ts | 64 +- types/ParseUser.d.ts | 980 ++++---- types/Push.d.ts | 13 +- types/RESTController.d.ts | 32 +- types/SingleInstanceStateController.d.ts | 13 +- types/Socket.weapp.d.ts | 14 +- types/Storage.d.ts | 22 +- types/TaskQueue.d.ts | 12 +- types/Xhr.weapp.d.ts | 50 +- types/encode.d.ts | 8 +- types/index.d.ts | 2 +- types/node.d.ts | 2 +- types/promiseUtils.d.ts | 14 +- types/react-native.d.ts | 2 +- types/tests.ts | 22 +- types/unsavedChildren.d.ts | 5 +- 58 files changed, 4958 insertions(+), 4643 deletions(-) rename src/{FacebookUtils.js => FacebookUtils.ts} (98%) rename src/{ParseConfig.js => ParseConfig.ts} (97%) rename src/{ParseOp.js => ParseOp.ts} (94%) rename src/{ParsePolygon.js => ParsePolygon.ts} (85%) rename src/{ParseSchema.js => ParseSchema.ts} (95%) diff --git a/.eslintrc.json b/.eslintrc.json index 8503d698d..25d55dca6 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -40,6 +40,7 @@ "require-atomic-updates": "off", "prefer-spread": "off", "prefer-rest-params": "off", + "@typescript-eslint/triple-slash-reference": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-var-requires": "off", diff --git a/package-lock.json b/package-lock.json index 1cffda772..5ef1dce28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "@semantic-release/github": "8.0.7", "@semantic-release/npm": "9.0.2", "@semantic-release/release-notes-generator": "10.0.3", + "@types/facebook-js-sdk": "3.3.11", "babel-jest": "29.5.0", "babel-plugin-inline-package-json": "2.0.0", "babel-plugin-minify-dead-code-elimination": "0.5.2", @@ -5834,6 +5835,12 @@ "@types/send": "*" } }, + "node_modules/@types/facebook-js-sdk": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@types/facebook-js-sdk/-/facebook-js-sdk-3.3.11.tgz", + "integrity": "sha512-VMIZR6zG7rwGrviiKdujALtckGwsnz2V4tTFvmriAl4MKjNRwh5Gz6g3eExla9BB5eDPB+AREQVoIMekcxv9tg==", + "dev": true + }, "node_modules/@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -34341,6 +34348,12 @@ "@types/send": "*" } }, + "@types/facebook-js-sdk": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@types/facebook-js-sdk/-/facebook-js-sdk-3.3.11.tgz", + "integrity": "sha512-VMIZR6zG7rwGrviiKdujALtckGwsnz2V4tTFvmriAl4MKjNRwh5Gz6g3eExla9BB5eDPB+AREQVoIMekcxv9tg==", + "dev": true + }, "@types/graceful-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", diff --git a/package.json b/package.json index a20f52f78..018a34639 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@semantic-release/github": "8.0.7", "@semantic-release/npm": "9.0.2", "@semantic-release/release-notes-generator": "10.0.3", + "@types/facebook-js-sdk": "3.3.11", "babel-jest": "29.5.0", "babel-plugin-inline-package-json": "2.0.0", "babel-plugin-minify-dead-code-elimination": "0.5.2", @@ -97,7 +98,7 @@ }, "scripts": { "build": "node build_releases.js", - "build:types": "tsc", + "build:types": "tsc && prettier --write 'types/{**/*,*}.ts' && npm run lint:fix", "release": "node build_releases.js && npm publish", "test": "cross-env PARSE_BUILD=node jest", "test:mongodb": "npm run test:mongodb:runnerstart && npm run integration", @@ -118,7 +119,7 @@ "pre-commit": "lint-staged", "release_docs": "./release_docs.sh", "gulp": "gulp", - "prettier": "prettier --write '{src,integration}/{**/*,*}.{js,ts}' && npm run lint:fix", + "prettier": "prettier --write '{src,integration,types}/{**/*,*}.{js,ts}' && npm run lint:fix", "cross-env": "cross-env" }, "lint-staged": { diff --git a/src/FacebookUtils.js b/src/FacebookUtils.ts similarity index 98% rename from src/FacebookUtils.js rename to src/FacebookUtils.ts index d7ca36b2a..00d6424ed 100644 --- a/src/FacebookUtils.js +++ b/src/FacebookUtils.ts @@ -1,13 +1,11 @@ -/** - * @flow-weak - */ /* global FB */ import ParseUser from './ParseUser'; +import type { AuthProviderType } from './ParseUser'; let initialized = false; let requestedPermissions; let initOptions; -const provider = { +const provider: AuthProviderType = { authenticate(options) { if (typeof FB === 'undefined') { options.error(this, 'Facebook SDK not found.'); @@ -38,7 +36,7 @@ const provider = { restoreAuthentication(authData) { if (authData) { - const newOptions = {}; + const newOptions: typeof initOptions = {}; if (initOptions) { for (const key in initOptions) { newOptions[key] = initOptions[key]; diff --git a/src/LocalDatastore.ts b/src/LocalDatastore.ts index f7df58614..72556df64 100644 --- a/src/LocalDatastore.ts +++ b/src/LocalDatastore.ts @@ -126,7 +126,7 @@ const LocalDatastore = { }, // Retrieve all pointer fields from object recursively - _getChildren(object: ParseObject) { + _getChildren(object: ParseObject): any { const encountered = {}; const json = object._toFullJSON(undefined, true); for (const key in json) { diff --git a/src/ObjectStateMutations.ts b/src/ObjectStateMutations.ts index 9ff397ae2..a22593d14 100644 --- a/src/ObjectStateMutations.ts +++ b/src/ObjectStateMutations.ts @@ -86,7 +86,7 @@ export function estimateAttribute( if (pendingOps[i][attr]) { if (pendingOps[i][attr] instanceof RelationOp) { if (object.id) { - value = pendingOps[i][attr].applyTo(value, object, attr); + value = (pendingOps[i][attr] as RelationOp).applyTo(value, object, attr); } } else { value = pendingOps[i][attr].applyTo(value); @@ -110,7 +110,7 @@ export function estimateAttributes( for (attr in pendingOps[i]) { if (pendingOps[i][attr] instanceof RelationOp) { if (object.id) { - data[attr] = pendingOps[i][attr].applyTo(data[attr], object, attr); + data[attr] = (pendingOps[i][attr] as RelationOp).applyTo(data[attr], object, attr); } } else { if (attr.includes('.')) { @@ -129,7 +129,7 @@ export function estimateAttributes( } } else { if (Array.isArray(object[key])) { - object[key] = [ ...object[key] ]; + object[key] = [...object[key]]; } else { object[key] = { ...object[key] }; } diff --git a/src/ParseConfig.js b/src/ParseConfig.ts similarity index 97% rename from src/ParseConfig.js rename to src/ParseConfig.ts index 57620deb6..08b8d533f 100644 --- a/src/ParseConfig.js +++ b/src/ParseConfig.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import decode from './decode'; import encode from './encode'; @@ -17,7 +13,6 @@ import type { RequestOptions } from './RESTController'; * * @alias Parse.Config */ - class ParseConfig { attributes: { [key: string]: any }; _escapedAttributes: { [key: string]: any }; @@ -123,7 +118,7 @@ class ParseConfig { } } -let currentConfig = null; +let currentConfig: ParseConfig | null = null; const CURRENT_CONFIG_KEY = 'currentConfig'; @@ -195,7 +190,7 @@ const DefaultController = { }); }, - save(attrs: { [key: string]: any }, masterKeyOnlyFlags: { [key: string]: any }) { + save(attrs?: { [key: string]: any }, masterKeyOnlyFlags?: { [key: string]: any }) { const RESTController = CoreManager.getRESTController(); const encodedAttrs = {}; for (const key in attrs) { diff --git a/src/ParseObject.ts b/src/ParseObject.ts index 83ed7cf4c..700c4fdae 100644 --- a/src/ParseObject.ts +++ b/src/ParseObject.ts @@ -58,7 +58,7 @@ type FetchOptions = { // Mapping of class names to constructors, so we can populate objects from the // server with appropriate subclasses of ParseObject -const classMap = {}; +const classMap: AttributeMap = {}; // Global counter for generating unique Ids for non-single-instance objects let objectCount = 0; @@ -412,7 +412,7 @@ class ParseObject { const pending = stateController.popPendingState(this._getStateIdentifier()); for (attr in pending) { if (pending[attr] instanceof RelationOp) { - changes[attr] = pending[attr].applyTo(undefined, this, attr); + changes[attr] = (pending[attr] as RelationOp).applyTo(undefined, this, attr); } else if (!(attr in response)) { // Only SetOps and UnsetOps should not come back with results changes[attr] = pending[attr].applyTo(undefined); diff --git a/src/ParseOp.js b/src/ParseOp.ts similarity index 94% rename from src/ParseOp.js rename to src/ParseOp.ts index 386ab1b9e..9242f5012 100644 --- a/src/ParseOp.js +++ b/src/ParseOp.ts @@ -1,16 +1,13 @@ -/** - * @flow - */ - import arrayContainsObject from './arrayContainsObject'; import decode from './decode'; import encode from './encode'; import CoreManager from './CoreManager'; import type ParseObject from './ParseObject'; +import type Pointer from './ParseObject'; import ParseRelation from './ParseRelation'; import unique from './unique'; -export function opFromJSON(json: { [key: string]: any }): ?Op { +export function opFromJSON(json: { [key: string]: any }): Op | null { if (!json || !json.__op) { return null; } @@ -58,12 +55,12 @@ export function opFromJSON(json: { [key: string]: any }): ?Op { export class Op { // Empty parent class applyTo(value: any): any {} /* eslint-disable-line @typescript-eslint/no-unused-vars */ - mergeWith(previous: Op): ?Op {} /* eslint-disable-line @typescript-eslint/no-unused-vars */ - toJSON(): any {} + mergeWith(previous: Op): Op | void {} /* eslint-disable-line @typescript-eslint/no-unused-vars */ + toJSON(offline?: boolean): any {} /* eslint-disable-line @typescript-eslint/no-unused-vars */ } export class SetOp extends Op { - _value: ?any; + _value: any; constructor(value: any) { super(); @@ -78,7 +75,7 @@ export class SetOp extends Op { return new SetOp(this._value); } - toJSON(offline?: boolean) { + toJSON(offline?: boolean): any { return encode(this._value, false, true, undefined, offline); } } @@ -108,7 +105,7 @@ export class IncrementOp extends Op { this._amount = amount; } - applyTo(value: ?any): number { + applyTo(value: any): number { if (typeof value === 'undefined') { return this._amount; } @@ -192,7 +189,7 @@ export class AddUniqueOp extends Op { } if (Array.isArray(value)) { const ParseObject = CoreManager.getParseObject(); - const toAdd = []; + const toAdd: any[] = []; this._value.forEach(v => { if (v instanceof ParseObject) { if (!arrayContainsObject(value, v)) { @@ -301,7 +298,7 @@ export class RemoveOp extends Op { } export class RelationOp extends Op { - _targetClassName: ?string; + _targetClassName: string | null; relationsToAdd: Array; relationsToRemove: Array; @@ -340,7 +337,7 @@ export class RelationOp extends Op { return obj.id; } - applyTo(value: any, parent: ParseObject, key?: string): ?ParseRelation { + applyTo(value: any, parent?: ParseObject, key?: string): ParseRelation { if (!value) { if (!parent || !key) { throw new Error( @@ -426,7 +423,7 @@ export class RelationOp extends Op { } toJSON(): { __op?: string; objects?: any; ops?: any } { - const idToPointer = id => { + const idToPointer = (id: string) => { return { __type: 'Pointer', className: this._targetClassName, @@ -434,9 +431,9 @@ export class RelationOp extends Op { }; }; - let adds = null; - let removes = null; - let pointers = null; + let pointers: any = null; + let adds: null | { __op: string; objects: null | Pointer[] } = null; + let removes: null | { __op: string; objects: null | Pointer[] } = null; if (this.relationsToAdd.length > 0) { pointers = this.relationsToAdd.map(idToPointer); diff --git a/src/ParsePolygon.js b/src/ParsePolygon.ts similarity index 85% rename from src/ParsePolygon.js rename to src/ParsePolygon.ts index 3d08fb62a..ced17f2f0 100644 --- a/src/ParsePolygon.js +++ b/src/ParsePolygon.ts @@ -1,8 +1,6 @@ -/** - * @flow - */ - import ParseGeoPoint from './ParseGeoPoint'; +type Coordinate = [number, number]; +type Coordinates = Coordinate[]; /** * Creates a new Polygon with any of the following forms:
          @@ -24,12 +22,12 @@ import ParseGeoPoint from './ParseGeoPoint'; * @alias Parse.Polygon */ class ParsePolygon { - _coordinates: Array>; + _coordinates: Coordinates; /** - * @param {(number[][] | Parse.GeoPoint[])} coordinates An Array of coordinate pairs + * @param {(Coordinates | Parse.GeoPoint[])} coordinates An Array of coordinate pairs */ - constructor(coordinates: Array> | Array) { + constructor(coordinates: Coordinates | Array) { this._coordinates = ParsePolygon._validate(coordinates); } @@ -37,14 +35,14 @@ class ParsePolygon { * Coordinates value for this Polygon. * Throws an exception if not valid type. * - * @property {(number[][] | Parse.GeoPoint[])} coordinates list of coordinates - * @returns {number[][]} + * @property {(Coordinates | Parse.GeoPoint[])} coordinates list of coordinates + * @returns {Coordinates} */ - get coordinates(): Array> { + get coordinates(): Coordinates { return this._coordinates; } - set coordinates(coords: Array> | Array) { + set coordinates(coords: Coordinates | Array) { this._coordinates = ParsePolygon._validate(coords); } @@ -53,7 +51,7 @@ class ParsePolygon { * * @returns {object} */ - toJSON(): { __type: string; coordinates: Array> } { + toJSON(): { __type: string; coordinates: Coordinates } { ParsePolygon._validate(this._coordinates); return { __type: 'Polygon', @@ -67,7 +65,7 @@ class ParsePolygon { * @param {(Parse.Polygon | object)} other * @returns {boolean} */ - equals(other: any): boolean { + equals(other: ParsePolygon | any): boolean { if (!(other instanceof ParsePolygon) || this.coordinates.length !== other.coordinates.length) { return false; } @@ -138,14 +136,14 @@ class ParsePolygon { * @throws {TypeError} * @returns {number[][]} Array of coordinates if validated. */ - static _validate(coords: Array> | Array): Array> { + static _validate(coords: Coordinates | Array): Coordinates { if (!Array.isArray(coords)) { throw new TypeError('Coordinates must be an Array'); } if (coords.length < 3) { throw new TypeError('Polygon must have at least 3 GeoPoints or Points'); } - const points = []; + const points: Coordinates = []; for (let i = 0; i < coords.length; i += 1) { const coord = coords[i]; let geoPoint; diff --git a/src/ParseSchema.js b/src/ParseSchema.ts similarity index 95% rename from src/ParseSchema.js rename to src/ParseSchema.ts index 6ecdfe61f..4decdcf4f 100644 --- a/src/ParseSchema.js +++ b/src/ParseSchema.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import ParseObject from './ParseObject'; import ParseCLP from './ParseCLP'; @@ -24,8 +20,9 @@ const FIELD_TYPES = [ ]; type FieldOptions = { - required: boolean; - defaultValue: any; + required?: boolean; + defaultValue?: any; + targetClass?: string; }; /** @@ -222,12 +219,14 @@ class ParseSchema { throw new Error(`${type} is not a valid type.`); } if (type === 'Pointer') { - return this.addPointer(name, options.targetClass, options); + return this.addPointer(name, options.targetClass!, options); } if (type === 'Relation') { - return this.addRelation(name, options.targetClass, options); + return this.addRelation(name, options.targetClass!); } - const fieldOptions = { type }; + const fieldOptions: Partial & { + type: string; + } = { type }; if (typeof options.required === 'boolean') { fieldOptions.required = options.required; @@ -404,7 +403,9 @@ class ParseSchema { if (!targetClass) { throw new Error('You need to set the targetClass of the Pointer.'); } - const fieldOptions = { type: 'Pointer', targetClass }; + const fieldOptions: Partial & { + type: string; + } = { type: 'Pointer', targetClass }; if (typeof options.required === 'boolean') { fieldOptions.required = options.required; @@ -466,30 +467,30 @@ class ParseSchema { } const DefaultController = { - send(className: string, method: string, params: any = {}): Promise { + send(className: string, method: string, params: any = {}): Promise { const RESTController = CoreManager.getRESTController(); return RESTController.request(method, `schemas/${className}`, params, { useMasterKey: true, }); }, - get(className: string): Promise { + get(className: string): Promise { return this.send(className, 'GET'); }, - create(className: string, params: any): Promise { + create(className: string, params: any): Promise { return this.send(className, 'POST', params); }, - update(className: string, params: any): Promise { + update(className: string, params: any): Promise { return this.send(className, 'PUT', params); }, - delete(className: string): Promise { + delete(className: string): Promise { return this.send(className, 'DELETE'); }, - purge(className: string): Promise { + purge(className: string): Promise { const RESTController = CoreManager.getRESTController(); return RESTController.request('DELETE', `purge/${className}`, {}, { useMasterKey: true }); }, diff --git a/src/__tests__/ObjectStateMutations-test.js b/src/__tests__/ObjectStateMutations-test.js index 898f7e606..56fc7640d 100644 --- a/src/__tests__/ObjectStateMutations-test.js +++ b/src/__tests__/ObjectStateMutations-test.js @@ -211,35 +211,47 @@ describe('ObjectStateMutations', () => { // Test one level nested serverData = { _id: 'someId', - items: [{ value: 'a', count: 5 }, { value: 'b', count: 1 } ], + items: [ + { value: 'a', count: 5 }, + { value: 'b', count: 1 }, + ], className: 'bug', - number: 2 - } + number: 2, + }; pendingOps = [{ 'items.0.count': new ParseOps.IncrementOp(1) }]; expect( ObjectStateMutations.estimateAttributes(serverData, pendingOps, 'someClass', 'someId') ).toEqual({ _id: 'someId', - items: [{ value: 'a', count: 6 }, { value: 'b', count: 1 }], + items: [ + { value: 'a', count: 6 }, + { value: 'b', count: 1 }, + ], className: 'bug', - number: 2 + number: 2, }); // Test multiple level nested fields serverData = { _id: 'someId', - items: [{ value: { count: 54 }, count: 5 }, { value: 'b', count: 1 }], + items: [ + { value: { count: 54 }, count: 5 }, + { value: 'b', count: 1 }, + ], className: 'bug', - number: 2 - } + number: 2, + }; pendingOps = [{ 'items.0.value.count': new ParseOps.IncrementOp(6) }]; expect( ObjectStateMutations.estimateAttributes(serverData, pendingOps, 'someClass', 'someId') ).toEqual({ _id: 'someId', - items: [{ value: { count: 60 }, count: 5 }, { value: 'b', count: 1 }], + items: [ + { value: { count: 60 }, count: 5 }, + { value: 'b', count: 1 }, + ], className: 'bug', - number: 2 + number: 2, }); }); @@ -266,20 +278,38 @@ describe('ObjectStateMutations', () => { }); it('can commit dot notation array changes from the server', () => { - const serverData = { items: [{ value: 'a', count: 5 }, { value: 'b', count: 1 }] }; - ObjectStateMutations.commitServerChanges(serverData, {}, { - 'items.0.count': 15, - 'items.1.count': 4, + const serverData = { + items: [ + { value: 'a', count: 5 }, + { value: 'b', count: 1 }, + ], + }; + ObjectStateMutations.commitServerChanges( + serverData, + {}, + { + 'items.0.count': 15, + 'items.1.count': 4, + } + ); + expect(serverData).toEqual({ + items: [ + { value: 'a', count: 15 }, + { value: 'b', count: 4 }, + ], }); - expect(serverData).toEqual({ items: [{ value: 'a', count: 15 }, { value: 'b', count: 4 }] }); }); it('can commit dot notation array changes from the server to empty serverData', () => { const serverData = {}; - ObjectStateMutations.commitServerChanges(serverData, {}, { - 'items.0.count': 15, - 'items.1.count': 4, - }); + ObjectStateMutations.commitServerChanges( + serverData, + {}, + { + 'items.0.count': 15, + 'items.1.count': 4, + } + ); expect(serverData).toEqual({ items: [{ count: 15 }, { count: 4 }] }); }); @@ -287,9 +317,9 @@ describe('ObjectStateMutations', () => { const serverData = {}; const objectCache = {}; ObjectStateMutations.commitServerChanges(serverData, objectCache, { - items: { '0': { count: 20 }, '1': { count: 5 } } + items: { '0': { count: 20 }, '1': { count: 5 } }, }); - expect(serverData).toEqual({ items: [ { count: 20 }, { count: 5 } ] }); + expect(serverData).toEqual({ items: [{ count: 20 }, { count: 5 }] }); expect(objectCache).toEqual({ items: '[{"count":20},{"count":5}]' }); }); diff --git a/types/Analytics.d.ts b/types/Analytics.d.ts index 015d22a76..5d260ca6c 100644 --- a/types/Analytics.d.ts +++ b/types/Analytics.d.ts @@ -37,6 +37,9 @@ * @returns {Promise} A promise that is resolved when the round-trip * to the server completes. */ -export function track(name: string, dimensions: { +export function track( + name: string, + dimensions: { [key: string]: string; -}): Promise; + } +): Promise; diff --git a/types/AnonymousUtils.d.ts b/types/AnonymousUtils.d.ts index 8637c2083..ddb0bd644 100644 --- a/types/AnonymousUtils.d.ts +++ b/types/AnonymousUtils.d.ts @@ -1,56 +1,56 @@ export default AnonymousUtils; declare namespace AnonymousUtils { - /** - * Gets whether the user has their account linked to anonymous user. - * - * @function isLinked - * @name Parse.AnonymousUtils.isLinked - * @param {Parse.User} user User to check for. - * The user must be logged in on this device. - * @returns {boolean} true if the user has their account - * linked to an anonymous user. - * @static - */ - function isLinked(user: ParseUser): boolean; - /** - * Logs in a user Anonymously. - * - * @function logIn - * @name Parse.AnonymousUtils.logIn - * @param {object} options MasterKey / SessionToken. - * @returns {Promise} Logged in user - * @static - */ - function logIn(options?: RequestOptions): Promise; - /** - * Links Anonymous User to an existing PFUser. - * - * @function link - * @name Parse.AnonymousUtils.link - * @param {Parse.User} user User to link. This must be the current user. - * @param {object} options MasterKey / SessionToken. - * @returns {Promise} Linked with User - * @static - */ - function link(user: ParseUser, options?: RequestOptions): Promise; - /** - * Returns true if Authentication Provider has been registered for use. - * - * @function isRegistered - * @name Parse.AnonymousUtils.isRegistered - * @returns {boolean} - * @static - */ - function isRegistered(): boolean; - function _getAuthProvider(): { - restoreAuthentication(): boolean; - getAuthType(): string; - getAuthData(): { - authData: { - id: any; - }; - }; + /** + * Gets whether the user has their account linked to anonymous user. + * + * @function isLinked + * @name Parse.AnonymousUtils.isLinked + * @param {Parse.User} user User to check for. + * The user must be logged in on this device. + * @returns {boolean} true if the user has their account + * linked to an anonymous user. + * @static + */ + function isLinked(user: ParseUser): boolean; + /** + * Logs in a user Anonymously. + * + * @function logIn + * @name Parse.AnonymousUtils.logIn + * @param {object} options MasterKey / SessionToken. + * @returns {Promise} Logged in user + * @static + */ + function logIn(options?: RequestOptions): Promise; + /** + * Links Anonymous User to an existing PFUser. + * + * @function link + * @name Parse.AnonymousUtils.link + * @param {Parse.User} user User to link. This must be the current user. + * @param {object} options MasterKey / SessionToken. + * @returns {Promise} Linked with User + * @static + */ + function link(user: ParseUser, options?: RequestOptions): Promise; + /** + * Returns true if Authentication Provider has been registered for use. + * + * @function isRegistered + * @name Parse.AnonymousUtils.isRegistered + * @returns {boolean} + * @static + */ + function isRegistered(): boolean; + function _getAuthProvider(): { + restoreAuthentication(): boolean; + getAuthType(): string; + getAuthData(): { + authData: { + id: any; + }; }; + }; } import ParseUser from './ParseUser'; import { RequestOptions } from './RESTController'; diff --git a/types/CoreManager.d.ts b/types/CoreManager.d.ts index d2bbd484f..f7aeefda3 100644 --- a/types/CoreManager.d.ts +++ b/types/CoreManager.d.ts @@ -16,283 +16,364 @@ import type LiveQueryClient from './LiveQueryClient'; import type ParseSchema from './ParseSchema'; import type ParseInstallation from './ParseInstallation'; type AnalyticsController = { - track: (name: string, dimensions: { - [key: string]: string; - }) => Promise; + track: ( + name: string, + dimensions: { + [key: string]: string; + } + ) => Promise; }; type CloudController = { - run: (name: string, data: any, options: RequestOptions) => Promise; - getJobsData: (options: RequestOptions) => Promise; - /** Returns promise which resolves with JobStatusId of the job */ - startJob: (name: string, data: any, options: RequestOptions) => Promise; + run: (name: string, data: any, options: RequestOptions) => Promise; + getJobsData: (options: RequestOptions) => Promise; + /** Returns promise which resolves with JobStatusId of the job */ + startJob: (name: string, data: any, options: RequestOptions) => Promise; }; type ConfigController = { - current: () => Promise | ParseConfig; - get: (opts?: RequestOptions) => Promise; - save: (attrs: { - [key: string]: any; - }, masterKeyOnlyFlags?: { - [key: string]: any; - }) => Promise; + current: () => Promise | ParseConfig; + get: (opts?: RequestOptions) => Promise; + save: ( + attrs: { + [key: string]: any; + }, + masterKeyOnlyFlags?: { + [key: string]: any; + } + ) => Promise; }; type CryptoController = { - encrypt: (obj: any, secretKey: string) => string; - decrypt: (encryptedText: string, secretKey: any) => string; + encrypt: (obj: any, secretKey: string) => string; + decrypt: (encryptedText: string, secretKey: any) => string; }; type FileController = { - saveFile: (name: string, source: FileSource, options?: FullOptions) => Promise; - saveBase64: (name: string, source: FileSource, options?: FileSaveOptions) => Promise<{ - name: string; - url: string; - }>; - download: (uri: string, options?: any) => Promise<{ - base64?: string; - contentType?: string; - }>; - deleteFile: (name: string, options?: { - useMasterKey?: boolean; - }) => Promise; + saveFile: (name: string, source: FileSource, options?: FullOptions) => Promise; + saveBase64: ( + name: string, + source: FileSource, + options?: FileSaveOptions + ) => Promise<{ + name: string; + url: string; + }>; + download: ( + uri: string, + options?: any + ) => Promise<{ + base64?: string; + contentType?: string; + }>; + deleteFile: ( + name: string, + options?: { + useMasterKey?: boolean; + } + ) => Promise; }; type InstallationController = { - currentInstallationId: () => Promise; - currentInstallation: () => Promise; - updateInstallationOnDisk: (installation: ParseInstallation) => Promise; + currentInstallationId: () => Promise; + currentInstallation: () => Promise; + updateInstallationOnDisk: (installation: ParseInstallation) => Promise; }; type ObjectController = { - fetch: (object: ParseObject | Array, forceFetch: boolean, options: RequestOptions) => Promise | ParseObject | undefined>; - save: (object: ParseObject | Array | null, options: RequestOptions) => Promise | ParseFile | undefined>; - destroy: (object: ParseObject | Array, options: RequestOptions) => Promise>; + fetch: ( + object: ParseObject | Array, + forceFetch: boolean, + options: RequestOptions + ) => Promise | ParseObject | undefined>; + save: ( + object: ParseObject | Array | null, + options: RequestOptions + ) => Promise | ParseFile | undefined>; + destroy: ( + object: ParseObject | Array, + options: RequestOptions + ) => Promise>; }; type ObjectStateController = { - getState: (obj: any) => State | null; - initializeState: (obj: any, initial?: State) => State; - removeState: (obj: any) => State | null; - getServerData: (obj: any) => AttributeMap; - setServerData: (obj: any, attributes: AttributeMap) => void; - getPendingOps: (obj: any) => Array; - setPendingOp: (obj: any, attr: string, op?: Op) => void; - pushPendingState: (obj: any) => void; - popPendingState: (obj: any) => OpsMap | undefined; - mergeFirstPendingState: (obj: any) => void; - getObjectCache: (obj: any) => ObjectCache; - estimateAttribute: (obj: any, attr: string) => any; - estimateAttributes: (obj: any) => AttributeMap; - commitServerChanges: (obj: any, changes: AttributeMap) => void; - enqueueTask: (obj: any, task: () => Promise) => Promise; - clearAllState: () => void; - duplicateState: (source: any, dest: any) => void; + getState: (obj: any) => State | null; + initializeState: (obj: any, initial?: State) => State; + removeState: (obj: any) => State | null; + getServerData: (obj: any) => AttributeMap; + setServerData: (obj: any, attributes: AttributeMap) => void; + getPendingOps: (obj: any) => Array; + setPendingOp: (obj: any, attr: string, op?: Op) => void; + pushPendingState: (obj: any) => void; + popPendingState: (obj: any) => OpsMap | undefined; + mergeFirstPendingState: (obj: any) => void; + getObjectCache: (obj: any) => ObjectCache; + estimateAttribute: (obj: any, attr: string) => any; + estimateAttributes: (obj: any) => AttributeMap; + commitServerChanges: (obj: any, changes: AttributeMap) => void; + enqueueTask: (obj: any, task: () => Promise) => Promise; + clearAllState: () => void; + duplicateState: (source: any, dest: any) => void; }; type PushController = { - send: (data: PushData, options?: FullOptions) => Promise; + send: (data: PushData, options?: FullOptions) => Promise; }; type QueryController = { - find(className: string, params: QueryJSON, options: RequestOptions): Promise<{ - results?: Array; - className?: string; - count?: number; - }>; - aggregate(className: string, params: any, options: RequestOptions): Promise<{ - results?: Array; - }>; + find( + className: string, + params: QueryJSON, + options: RequestOptions + ): Promise<{ + results?: Array; + className?: string; + count?: number; + }>; + aggregate( + className: string, + params: any, + options: RequestOptions + ): Promise<{ + results?: Array; + }>; }; type EventuallyQueue = { - save: (object: ParseObject, serverOptions: SaveOptions) => Promise; - destroy: (object: ParseObject, serverOptions: RequestOptions) => Promise; - poll: (ms?: number) => void; + save: (object: ParseObject, serverOptions: SaveOptions) => Promise; + destroy: (object: ParseObject, serverOptions: RequestOptions) => Promise; + poll: (ms?: number) => void; }; type RESTController = { - request: (method: string, path: string, data?: any, options?: RequestOptions) => Promise; - ajax: (method: string, url: string, data: any, headers?: any, options?: FullOptions) => Promise; - handleError: (err?: any) => void; + request: (method: string, path: string, data?: any, options?: RequestOptions) => Promise; + ajax: ( + method: string, + url: string, + data: any, + headers?: any, + options?: FullOptions + ) => Promise; + handleError: (err?: any) => void; }; type SchemaController = { - purge: (className: string) => Promise; - get: (className: string, options?: RequestOptions) => Promise<{ - results: ParseSchema[]; - }>; - delete: (className: string, options?: RequestOptions) => Promise; - create: (className: string, params: any, options?: RequestOptions) => Promise; - update: (className: string, params: any, options?: RequestOptions) => Promise; - send(className: string, method: string, params: any, options: RequestOptions): Promise; + purge: (className: string) => Promise; + get: ( + className: string, + options?: RequestOptions + ) => Promise<{ + results: ParseSchema[]; + }>; + delete: (className: string, options?: RequestOptions) => Promise; + create: (className: string, params: any, options?: RequestOptions) => Promise; + update: (className: string, params: any, options?: RequestOptions) => Promise; + send(className: string, method: string, params: any, options: RequestOptions): Promise; }; type SessionController = { - getSession: (token: RequestOptions) => Promise; -}; -type StorageController = { - async: 0; - getItem: (path: string) => string | null; - setItem: (path: string, value: string) => void; - removeItem: (path: string) => void; - getItemAsync?: (path: string) => Promise; - setItemAsync?: (path: string, value: string) => Promise; - removeItemAsync?: (path: string) => Promise; - clear: () => void; - getAllKeys?: () => Array; - getAllKeysAsync?: () => Promise>; -} | { - async: 1; - getItem?: (path: string) => string | null; - setItem?: (path: string, value: string) => void; - removeItem?: (path: string) => void; - getItemAsync: (path: string) => Promise; - setItemAsync: (path: string, value: string) => Promise; - removeItemAsync: (path: string) => Promise; - clear: () => void; - getAllKeys?: () => Array; - getAllKeysAsync?: () => Promise>; + getSession: (token: RequestOptions) => Promise; }; +type StorageController = + | { + async: 0; + getItem: (path: string) => string | null; + setItem: (path: string, value: string) => void; + removeItem: (path: string) => void; + getItemAsync?: (path: string) => Promise; + setItemAsync?: (path: string, value: string) => Promise; + removeItemAsync?: (path: string) => Promise; + clear: () => void; + getAllKeys?: () => Array; + getAllKeysAsync?: () => Promise>; + } + | { + async: 1; + getItem?: (path: string) => string | null; + setItem?: (path: string, value: string) => void; + removeItem?: (path: string) => void; + getItemAsync: (path: string) => Promise; + setItemAsync: (path: string, value: string) => Promise; + removeItemAsync: (path: string) => Promise; + clear: () => void; + getAllKeys?: () => Array; + getAllKeysAsync?: () => Promise>; + }; type LocalDatastoreController = { - fromPinWithName: (name: string) => any | undefined; - pinWithName: (name: string, objects: any) => void; - unPinWithName: (name: string) => void; - getAllContents: () => any | undefined; - clear: () => void; + fromPinWithName: (name: string) => any | undefined; + pinWithName: (name: string, objects: any) => void; + unPinWithName: (name: string) => void; + getAllContents: () => any | undefined; + clear: () => void; }; type UserController = { - setCurrentUser: (user: ParseUser) => Promise; - currentUser: () => ParseUser | null; - currentUserAsync: () => Promise; - signUp: (user: ParseUser, attrs: AttributeMap, options: RequestOptions) => Promise; - logIn: (user: ParseUser, options: RequestOptions) => Promise; - loginAs: (user: ParseUser, userId: string) => Promise; - become: (user: ParseUser, options: RequestOptions) => Promise; - hydrate: (user: ParseUser, userJSON: AttributeMap) => Promise; - logOut: (options: RequestOptions) => Promise; - me: (user: ParseUser, options: RequestOptions) => Promise; - requestPasswordReset: (email: string, options: RequestOptions) => Promise; - updateUserOnDisk: (user: ParseUser) => Promise; - upgradeToRevocableSession: (user: ParseUser, options: RequestOptions) => Promise; - linkWith: (user: ParseUser, authData: AuthData, options?: FullOptions) => Promise; - removeUserFromDisk: () => Promise; - verifyPassword: (username: string, password: string, options: RequestOptions) => Promise; - requestEmailVerification: (email: string, options: RequestOptions) => Promise; + setCurrentUser: (user: ParseUser) => Promise; + currentUser: () => ParseUser | null; + currentUserAsync: () => Promise; + signUp: (user: ParseUser, attrs: AttributeMap, options: RequestOptions) => Promise; + logIn: (user: ParseUser, options: RequestOptions) => Promise; + loginAs: (user: ParseUser, userId: string) => Promise; + become: (user: ParseUser, options: RequestOptions) => Promise; + hydrate: (user: ParseUser, userJSON: AttributeMap) => Promise; + logOut: (options: RequestOptions) => Promise; + me: (user: ParseUser, options: RequestOptions) => Promise; + requestPasswordReset: (email: string, options: RequestOptions) => Promise; + updateUserOnDisk: (user: ParseUser) => Promise; + upgradeToRevocableSession: (user: ParseUser, options: RequestOptions) => Promise; + linkWith: (user: ParseUser, authData: AuthData, options?: FullOptions) => Promise; + removeUserFromDisk: () => Promise; + verifyPassword: ( + username: string, + password: string, + options: RequestOptions + ) => Promise; + requestEmailVerification: (email: string, options: RequestOptions) => Promise; }; type HooksController = { - get: (type: string, functionName?: string, triggerName?: string) => Promise; - create: (hook: HookDeclaration) => Promise; - remove: (hook: HookDeleteArg) => Promise; - update: (hook: HookDeclaration) => Promise; - sendRequest?: (method: string, path: string, body?: any) => Promise; + get: (type: string, functionName?: string, triggerName?: string) => Promise; + create: (hook: HookDeclaration) => Promise; + remove: (hook: HookDeleteArg) => Promise; + update: (hook: HookDeclaration) => Promise; + sendRequest?: (method: string, path: string, body?: any) => Promise; }; type LiveQueryControllerType = { - setDefaultLiveQueryClient(liveQueryClient: LiveQueryClient): void; - getDefaultLiveQueryClient(): Promise; - _clearCachedDefaultClient(): void; + setDefaultLiveQueryClient(liveQueryClient: LiveQueryClient): void; + getDefaultLiveQueryClient(): Promise; + _clearCachedDefaultClient(): void; }; /** Based on https://github.com/react-native-async-storage/async-storage/blob/main/packages/default-storage-backend/src/types.ts */ type AsyncStorageType = { - /** Fetches an item for a `key` and invokes a callback upon completion. */ - getItem: (key: string, callback?: (error?: Error | null, result?: string | null) => void) => Promise; - /** Sets the value for a `key` and invokes a callback upon completion. */ - setItem: (key: string, value: string, callback?: (error?: Error | null) => void) => Promise; - /** Removes an item for a `key` and invokes a callback upon completion. */ - removeItem: (key: string, callback?: (error?: Error | null) => void) => Promise; - /** Merges an existing `key` value with an input value, assuming both values are stringified JSON. */ - mergeItem: (key: string, value: string, callback?: (error?: Error | null) => void) => Promise; - /** - * Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably - * don't want to call this; use `removeItem` or `multiRemove` to clear only - * your app's keys. - */ - clear: (callback?: (error?: Error | null) => void) => Promise; - /** Gets *all* keys known to your app; for all callers, libraries, etc. */ - getAllKeys: (callback?: (error?: Error | null, result?: readonly string[] | null) => void) => Promise; - /** - * This allows you to batch the fetching of items given an array of `key` - * inputs. Your callback will be invoked with an array of corresponding - * key-value pairs found. - */ - multiGet: (keys: readonly string[], callback?: (errors?: readonly (Error | null)[] | null, result?: readonly [string, string][]) => void) => Promise; - /** - * Use this as a batch operation for storing multiple key-value pairs. When - * the operation completes you'll get a single callback with any errors. - * - * See https://react-native-async-storage.github.io/async-storage/docs/api#multiset - */ - multiSet: (keyValuePairs: [string, string][], callback?: (errors?: readonly (Error | null)[] | null) => void) => Promise; - /** - * Call this to batch the deletion of all keys in the `keys` array. - * - * See https://react-native-async-storage.github.io/async-storage/docs/api#multiremove - */ - multiRemove: (keys: readonly string[], callback?: (errors?: readonly (Error | null)[] | null) => void) => Promise; - /** - * Batch operation to merge in existing and new values for a given set of - * keys. This assumes that the values are stringified JSON. - * - * See https://react-native-async-storage.github.io/async-storage/docs/api#multimerge - */ - multiMerge: (keyValuePairs: [string, string][], callback?: (errors?: readonly (Error | null)[] | null) => void) => Promise; + /** Fetches an item for a `key` and invokes a callback upon completion. */ + getItem: ( + key: string, + callback?: (error?: Error | null, result?: string | null) => void + ) => Promise; + /** Sets the value for a `key` and invokes a callback upon completion. */ + setItem: (key: string, value: string, callback?: (error?: Error | null) => void) => Promise; + /** Removes an item for a `key` and invokes a callback upon completion. */ + removeItem: (key: string, callback?: (error?: Error | null) => void) => Promise; + /** Merges an existing `key` value with an input value, assuming both values are stringified JSON. */ + mergeItem: ( + key: string, + value: string, + callback?: (error?: Error | null) => void + ) => Promise; + /** + * Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably + * don't want to call this; use `removeItem` or `multiRemove` to clear only + * your app's keys. + */ + clear: (callback?: (error?: Error | null) => void) => Promise; + /** Gets *all* keys known to your app; for all callers, libraries, etc. */ + getAllKeys: ( + callback?: (error?: Error | null, result?: readonly string[] | null) => void + ) => Promise; + /** + * This allows you to batch the fetching of items given an array of `key` + * inputs. Your callback will be invoked with an array of corresponding + * key-value pairs found. + */ + multiGet: ( + keys: readonly string[], + callback?: ( + errors?: readonly (Error | null)[] | null, + result?: readonly [string, string][] + ) => void + ) => Promise; + /** + * Use this as a batch operation for storing multiple key-value pairs. When + * the operation completes you'll get a single callback with any errors. + * + * See https://react-native-async-storage.github.io/async-storage/docs/api#multiset + */ + multiSet: ( + keyValuePairs: [string, string][], + callback?: (errors?: readonly (Error | null)[] | null) => void + ) => Promise; + /** + * Call this to batch the deletion of all keys in the `keys` array. + * + * See https://react-native-async-storage.github.io/async-storage/docs/api#multiremove + */ + multiRemove: ( + keys: readonly string[], + callback?: (errors?: readonly (Error | null)[] | null) => void + ) => Promise; + /** + * Batch operation to merge in existing and new values for a given set of + * keys. This assumes that the values are stringified JSON. + * + * See https://react-native-async-storage.github.io/async-storage/docs/api#multimerge + */ + multiMerge: ( + keyValuePairs: [string, string][], + callback?: (errors?: readonly (Error | null)[] | null) => void + ) => Promise; }; export type WebSocketController = { - onopen: () => void; - onmessage: (message: any) => void; - onclose: (arg?: any) => void; - onerror: (error: any) => void; - send: (data: any) => void; - close: () => void; + onopen: () => void; + onmessage: (message: any) => void; + onclose: (arg?: any) => void; + onerror: (error: any) => void; + send: (data: any) => void; + close: () => void; }; declare const CoreManager: { - get: (key: string) => any; - set: (key: string, value: any) => void; - setIfNeeded: (key: string, value: any) => any; - setAnalyticsController(controller: AnalyticsController): void; - getAnalyticsController(): AnalyticsController; - setCloudController(controller: CloudController): void; - getCloudController(): CloudController; - setConfigController(controller: ConfigController): void; - getConfigController(): ConfigController; - setCryptoController(controller: CryptoController): void; - getCryptoController(): CryptoController; - setEventEmitter(eventEmitter: any): void; - getEventEmitter(): any; - setFileController(controller: FileController): void; - setEventuallyQueue(controller: EventuallyQueue): void; - getEventuallyQueue(): EventuallyQueue; - getFileController(): FileController; - setInstallationController(controller: InstallationController): void; - getInstallationController(): InstallationController; - setLiveQuery(liveQuery: any): void; - getLiveQuery(): any; - setObjectController(controller: ObjectController): void; - getObjectController(): ObjectController; - setObjectStateController(controller: ObjectStateController): void; - getObjectStateController(): ObjectStateController; - setPushController(controller: PushController): void; - getPushController(): PushController; - setQueryController(controller: QueryController): void; - getQueryController(): QueryController; - setRESTController(controller: RESTController): void; - getRESTController(): RESTController; - setSchemaController(controller: SchemaController): void; - getSchemaController(): SchemaController; - setSessionController(controller: SessionController): void; - getSessionController(): SessionController; - setStorageController(controller: StorageController): void; - setLocalDatastoreController(controller: LocalDatastoreController): void; - getLocalDatastoreController(): LocalDatastoreController; - setLocalDatastore(store: any): void; - getLocalDatastore(): any; - getStorageController(): StorageController; - setAsyncStorage(storage: AsyncStorageType): void; - getAsyncStorage(): AsyncStorageType; - setWebSocketController(controller: new (url: string | URL, protocols?: string | string[] | undefined) => WebSocketController): void; - getWebSocketController(): new (url: string | URL, protocols?: string | string[] | undefined) => WebSocketController; - setUserController(controller: UserController): void; - getUserController(): UserController; - setLiveQueryController(controller: LiveQueryControllerType): void; - getLiveQueryController(): LiveQueryControllerType; - setHooksController(controller: HooksController): void; - getHooksController(): HooksController; - setParseOp(op: any): void; - getParseOp(): any; - setParseObject(object: any): void; - getParseObject(): any; - setParseQuery(query: any): void; - getParseQuery(): any; - setParseRole(role: any): void; - getParseRole(): any; - setParseUser(user: any): void; - getParseUser(): any; + get: (key: string) => any; + set: (key: string, value: any) => void; + setIfNeeded: (key: string, value: any) => any; + setAnalyticsController(controller: AnalyticsController): void; + getAnalyticsController(): AnalyticsController; + setCloudController(controller: CloudController): void; + getCloudController(): CloudController; + setConfigController(controller: ConfigController): void; + getConfigController(): ConfigController; + setCryptoController(controller: CryptoController): void; + getCryptoController(): CryptoController; + setEventEmitter(eventEmitter: any): void; + getEventEmitter(): any; + setFileController(controller: FileController): void; + setEventuallyQueue(controller: EventuallyQueue): void; + getEventuallyQueue(): EventuallyQueue; + getFileController(): FileController; + setInstallationController(controller: InstallationController): void; + getInstallationController(): InstallationController; + setLiveQuery(liveQuery: any): void; + getLiveQuery(): any; + setObjectController(controller: ObjectController): void; + getObjectController(): ObjectController; + setObjectStateController(controller: ObjectStateController): void; + getObjectStateController(): ObjectStateController; + setPushController(controller: PushController): void; + getPushController(): PushController; + setQueryController(controller: QueryController): void; + getQueryController(): QueryController; + setRESTController(controller: RESTController): void; + getRESTController(): RESTController; + setSchemaController(controller: SchemaController): void; + getSchemaController(): SchemaController; + setSessionController(controller: SessionController): void; + getSessionController(): SessionController; + setStorageController(controller: StorageController): void; + setLocalDatastoreController(controller: LocalDatastoreController): void; + getLocalDatastoreController(): LocalDatastoreController; + setLocalDatastore(store: any): void; + getLocalDatastore(): any; + getStorageController(): StorageController; + setAsyncStorage(storage: AsyncStorageType): void; + getAsyncStorage(): AsyncStorageType; + setWebSocketController( + controller: new ( + url: string | URL, + protocols?: string | string[] | undefined + ) => WebSocketController + ): void; + getWebSocketController(): new ( + url: string | URL, + protocols?: string | string[] | undefined + ) => WebSocketController; + setUserController(controller: UserController): void; + getUserController(): UserController; + setLiveQueryController(controller: LiveQueryControllerType): void; + getLiveQueryController(): LiveQueryControllerType; + setHooksController(controller: HooksController): void; + getHooksController(): HooksController; + setParseOp(op: any): void; + getParseOp(): any; + setParseObject(object: any): void; + getParseObject(): any; + setParseQuery(query: any): void; + getParseQuery(): any; + setParseRole(role: any): void; + getParseRole(): any; + setParseUser(user: any): void; + getParseUser(): any; }; export default CoreManager; diff --git a/types/EventuallyQueue.d.ts b/types/EventuallyQueue.d.ts index 61694cfa0..c00dca73d 100644 --- a/types/EventuallyQueue.d.ts +++ b/types/EventuallyQueue.d.ts @@ -1,171 +1,175 @@ export default EventuallyQueue; declare namespace EventuallyQueue { - /** - * Add object to queue with save operation. - * - * @function save - * @name Parse.EventuallyQueue.save - * @param {ParseObject} object Parse.Object to be saved eventually - * @param {object} [serverOptions] See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Object.html#save Parse.Object.save} options. - * @returns {Promise} A promise that is fulfilled if object is added to queue. - * @static - * @see Parse.Object#saveEventually - */ - function save(object: ParseObject, serverOptions?: SaveOptions): Promise; - /** - * Add object to queue with save operation. - * - * @function destroy - * @name Parse.EventuallyQueue.destroy - * @param {ParseObject} object Parse.Object to be destroyed eventually - * @param {object} [serverOptions] See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Object.html#destroy Parse.Object.destroy} options - * @returns {Promise} A promise that is fulfilled if object is added to queue. - * @static - * @see Parse.Object#destroyEventually - */ - function destroy(object: ParseObject, serverOptions?: RequestOptions): Promise; - /** - * Generate unique identifier to avoid duplicates and maintain previous state. - * - * @param {string} action save / destroy - * @param {object} object Parse.Object to be queued - * @returns {string} - * @static - * @ignore - */ - function generateQueueId(action: string, object: ParseObject): string; - /** - * Build queue object and add to queue. - * - * @param {string} action save / destroy - * @param {object} object Parse.Object to be queued - * @param {object} [serverOptions] - * @returns {Promise} A promise that is fulfilled if object is added to queue. - * @static - * @ignore - */ - function enqueue(action: string, object: ParseObject, serverOptions?: RequestOptions | SaveOptions): Promise; - function store(data: any): Promise; - function load(): Promise; - /** - * Sets the in-memory queue from local storage and returns. - * - * @function getQueue - * @name Parse.EventuallyQueue.getQueue - * @returns {Promise} - * @static - */ - function getQueue(): Promise; - /** - * Saves the queue to local storage - * - * @param {Queue} queue Queue containing Parse.Object data. - * @returns {Promise} A promise that is fulfilled when queue is stored. - * @static - * @ignore - */ - function setQueue(queue: Queue): Promise; - /** - * Removes Parse.Object data from queue. - * - * @param {string} queueId Unique identifier for Parse.Object data. - * @returns {Promise} A promise that is fulfilled when queue is stored. - * @static - * @ignore - */ - function remove(queueId: string): Promise; - /** - * Removes all objects from queue. - * - * @function clear - * @name Parse.EventuallyQueue.clear - * @returns {Promise} A promise that is fulfilled when queue is cleared. - * @static - */ - function clear(): Promise; - /** - * Return the index of a queueId in the queue. Returns -1 if not found. - * - * @param {Queue} queue Queue containing Parse.Object data. - * @param {string} queueId Unique identifier for Parse.Object data. - * @returns {number} - * @static - * @ignore - */ - function queueItemExists(queue: Queue, queueId: string): number; - /** - * Return the number of objects in the queue. - * - * @function length - * @name Parse.EventuallyQueue.length - * @returns {number} - * @static - */ - function length(): number; - /** - * Sends the queue to the server. - * - * @function sendQueue - * @name Parse.EventuallyQueue.sendQueue - * @returns {Promise} Returns true if queue was sent successfully. - * @static - */ - function sendQueue(): Promise; - /** - * Build queue object and add to queue. - * - * @param {ParseObject} object Parse.Object to be processed - * @param {QueueObject} queueObject Parse.Object data from the queue - * @returns {Promise} A promise that is fulfilled when operation is performed. - * @static - * @ignore - */ - function sendQueueCallback(object: ParseObject, queueObject: QueueObject): Promise; - /** - * Start polling server for network connection. - * Will send queue if connection is established. - * - * @function poll - * @name Parse.EventuallyQueue.poll - * @param [ms] Milliseconds to ping the server. Default 2000ms - * @static - */ - function poll(ms?: number): void; - /** - * Turns off polling. - * - * @function stopPoll - * @name Parse.EventuallyQueue.stopPoll - * @static - */ - function stopPoll(): void; - /** - * Return true if pinging the server. - * - * @function isPolling - * @name Parse.EventuallyQueue.isPolling - * @returns {boolean} - * @static - */ - function isPolling(): boolean; - function _setPolling(flag: boolean): void; - namespace process { - function create(ObjectType: any, queueObject: any): Promise; - function byId(ObjectType: any, queueObject: any): Promise; - function byHash(ObjectType: any, queueObject: any): Promise; - } + /** + * Add object to queue with save operation. + * + * @function save + * @name Parse.EventuallyQueue.save + * @param {ParseObject} object Parse.Object to be saved eventually + * @param {object} [serverOptions] See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Object.html#save Parse.Object.save} options. + * @returns {Promise} A promise that is fulfilled if object is added to queue. + * @static + * @see Parse.Object#saveEventually + */ + function save(object: ParseObject, serverOptions?: SaveOptions): Promise; + /** + * Add object to queue with save operation. + * + * @function destroy + * @name Parse.EventuallyQueue.destroy + * @param {ParseObject} object Parse.Object to be destroyed eventually + * @param {object} [serverOptions] See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Object.html#destroy Parse.Object.destroy} options + * @returns {Promise} A promise that is fulfilled if object is added to queue. + * @static + * @see Parse.Object#destroyEventually + */ + function destroy(object: ParseObject, serverOptions?: RequestOptions): Promise; + /** + * Generate unique identifier to avoid duplicates and maintain previous state. + * + * @param {string} action save / destroy + * @param {object} object Parse.Object to be queued + * @returns {string} + * @static + * @ignore + */ + function generateQueueId(action: string, object: ParseObject): string; + /** + * Build queue object and add to queue. + * + * @param {string} action save / destroy + * @param {object} object Parse.Object to be queued + * @param {object} [serverOptions] + * @returns {Promise} A promise that is fulfilled if object is added to queue. + * @static + * @ignore + */ + function enqueue( + action: string, + object: ParseObject, + serverOptions?: RequestOptions | SaveOptions + ): Promise; + function store(data: any): Promise; + function load(): Promise; + /** + * Sets the in-memory queue from local storage and returns. + * + * @function getQueue + * @name Parse.EventuallyQueue.getQueue + * @returns {Promise} + * @static + */ + function getQueue(): Promise; + /** + * Saves the queue to local storage + * + * @param {Queue} queue Queue containing Parse.Object data. + * @returns {Promise} A promise that is fulfilled when queue is stored. + * @static + * @ignore + */ + function setQueue(queue: Queue): Promise; + /** + * Removes Parse.Object data from queue. + * + * @param {string} queueId Unique identifier for Parse.Object data. + * @returns {Promise} A promise that is fulfilled when queue is stored. + * @static + * @ignore + */ + function remove(queueId: string): Promise; + /** + * Removes all objects from queue. + * + * @function clear + * @name Parse.EventuallyQueue.clear + * @returns {Promise} A promise that is fulfilled when queue is cleared. + * @static + */ + function clear(): Promise; + /** + * Return the index of a queueId in the queue. Returns -1 if not found. + * + * @param {Queue} queue Queue containing Parse.Object data. + * @param {string} queueId Unique identifier for Parse.Object data. + * @returns {number} + * @static + * @ignore + */ + function queueItemExists(queue: Queue, queueId: string): number; + /** + * Return the number of objects in the queue. + * + * @function length + * @name Parse.EventuallyQueue.length + * @returns {number} + * @static + */ + function length(): number; + /** + * Sends the queue to the server. + * + * @function sendQueue + * @name Parse.EventuallyQueue.sendQueue + * @returns {Promise} Returns true if queue was sent successfully. + * @static + */ + function sendQueue(): Promise; + /** + * Build queue object and add to queue. + * + * @param {ParseObject} object Parse.Object to be processed + * @param {QueueObject} queueObject Parse.Object data from the queue + * @returns {Promise} A promise that is fulfilled when operation is performed. + * @static + * @ignore + */ + function sendQueueCallback(object: ParseObject, queueObject: QueueObject): Promise; + /** + * Start polling server for network connection. + * Will send queue if connection is established. + * + * @function poll + * @name Parse.EventuallyQueue.poll + * @param [ms] Milliseconds to ping the server. Default 2000ms + * @static + */ + function poll(ms?: number): void; + /** + * Turns off polling. + * + * @function stopPoll + * @name Parse.EventuallyQueue.stopPoll + * @static + */ + function stopPoll(): void; + /** + * Return true if pinging the server. + * + * @function isPolling + * @name Parse.EventuallyQueue.isPolling + * @returns {boolean} + * @static + */ + function isPolling(): boolean; + function _setPolling(flag: boolean): void; + namespace process { + function create(ObjectType: any, queueObject: any): Promise; + function byId(ObjectType: any, queueObject: any): Promise; + function byHash(ObjectType: any, queueObject: any): Promise; + } } import ParseObject from './ParseObject'; import { SaveOptions } from './ParseObject'; import { RequestOptions } from './RESTController'; type Queue = QueueObject[]; type QueueObject = { - queueId: string; - action: string; - object: ParseObject; - serverOptions: RequestOptions | SaveOptions; - id: string; - className: string; - hash: string; - createdAt: Date; + queueId: string; + action: string; + object: ParseObject; + serverOptions: RequestOptions | SaveOptions; + id: string; + className: string; + hash: string; + createdAt: Date; }; diff --git a/types/FacebookUtils.d.ts b/types/FacebookUtils.d.ts index bef770ab7..3cfebcaff 100644 --- a/types/FacebookUtils.d.ts +++ b/types/FacebookUtils.d.ts @@ -1,93 +1,107 @@ -// @ts-nocheck +import ParseUser from './ParseUser'; +import type { AuthProviderType } from './ParseUser'; +/** + * Provides a set of utilities for using Parse with Facebook. + * + * @class Parse.FacebookUtils + * @static + * @hideconstructor + */ +declare const FacebookUtils: { + /** + * Initializes Parse Facebook integration. Call this function after you + * have loaded the Facebook Javascript SDK with the same parameters + * as you would pass to + * + * FB.init(). Parse.FacebookUtils will invoke FB.init() for you + * with these arguments. + * + * @function init + * @name Parse.FacebookUtils.init + * @param {object} options Facebook options argument as described here: + * + * FB.init(). The status flag will be coerced to 'false' because it + * interferes with Parse Facebook integration. Call FB.getLoginStatus() + * explicitly if this behavior is required by your application. + */ + init(options: any): void; + /** + * Gets whether the user has their account linked to Facebook. + * + * @function isLinked + * @name Parse.FacebookUtils.isLinked + * @param {Parse.User} user User to check for a facebook link. + * The user must be logged in on this device. + * @returns {boolean} true if the user has their account + * linked to Facebook. + */ + isLinked(user: any): any; + /** + * Logs in a user using Facebook. This method delegates to the Facebook + * SDK to authenticate the user, and then automatically logs in (or + * creates, in the case where it is a new user) a Parse.User. + * + * Standard API: + * + * logIn(permission: string, authData: Object); + * + * Advanced API: Used for handling your own oAuth tokens + * {@link https://docs.parseplatform.org/rest/guide/#linking-users} + * + * logIn(authData: Object, options?: Object); + * + * @function logIn + * @name Parse.FacebookUtils.logIn + * @param {(string | object)} permissions The permissions required for Facebook + * log in. This is a comma-separated string of permissions. + * Alternatively, supply a Facebook authData object as described in our + * REST API docs if you want to handle getting facebook auth tokens + * yourself. + * @param {object} options MasterKey / SessionToken. Alternatively can be used for authData if permissions is a string + * @returns {Promise} + */ + logIn(permissions: any, options: any): Promise; + /** + * Links Facebook to an existing PFUser. This method delegates to the + * Facebook SDK to authenticate the user, and then automatically links + * the account to the Parse.User. + * + * Standard API: + * + * link(user: Parse.User, permission: string, authData?: Object); + * + * Advanced API: Used for handling your own oAuth tokens + * {@link https://docs.parseplatform.org/rest/guide/#linking-users} + * + * link(user: Parse.User, authData: Object, options?: FullOptions); + * + * @function link + * @name Parse.FacebookUtils.link + * @param {Parse.User} user User to link to Facebook. This must be the + * current user. + * @param {(string | object)} permissions The permissions required for Facebook + * log in. This is a comma-separated string of permissions. + * Alternatively, supply a Facebook authData object as described in our + * REST API docs if you want to handle getting facebook auth tokens + * yourself. + * @param {object} options MasterKey / SessionToken. Alternatively can be used for authData if permissions is a string + * @returns {Promise} + */ + link(user: any, permissions: any, options: any): any; + /** + * Unlinks the Parse.User from a Facebook account. + * + * @function unlink + * @name Parse.FacebookUtils.unlink + * @param {Parse.User} user User to unlink from Facebook. This must be the + * current user. + * @param {object} options Standard options object with success and error + * callbacks. + * @returns {Promise} + */ + unlink: (user: any, options: any) => any; + _getAuthProvider(): AuthProviderType; +}; export default FacebookUtils; -declare namespace FacebookUtils { - /** - * Initializes Parse Facebook integration. Call this function after you - * have loaded the Facebook Javascript SDK with the same parameters - * as you would pass to - * - * FB.init(). Parse.FacebookUtils will invoke FB.init() for you - * with these arguments. - * - * @function init - * @name Parse.FacebookUtils.init - * @param {object} options Facebook options argument as described here: - * - * FB.init(). The status flag will be coerced to 'false' because it - * interferes with Parse Facebook integration. Call FB.getLoginStatus() - * explicitly if this behavior is required by your application. - */ - function init(options: any): void; - /** - * Gets whether the user has their account linked to Facebook. - * - * @function isLinked - * @name Parse.FacebookUtils.isLinked - * @param {Parse.User} user User to check for a facebook link. - * The user must be logged in on this device. - * @returns {boolean} true if the user has their account - * linked to Facebook. - */ - function isLinked(user: Parse.User): boolean; - /** - * Logs in a user using Facebook. This method delegates to the Facebook - * SDK to authenticate the user, and then automatically logs in (or - * creates, in the case where it is a new user) a Parse.User. - * - * Standard API: - * - * logIn(permission: string, authData: Object); - * - * Advanced API: Used for handling your own oAuth tokens - * {@link https://docs.parseplatform.org/rest/guide/#linking-users} - * - * logIn(authData: Object, options?: Object); - * - * @function logIn - * @name Parse.FacebookUtils.logIn - * @param {(string | object)} permissions The permissions required for Facebook - * log in. This is a comma-separated string of permissions. - * Alternatively, supply a Facebook authData object as described in our - * REST API docs if you want to handle getting facebook auth tokens - * yourself. - * @param {object} options MasterKey / SessionToken. Alternatively can be used for authData if permissions is a string - * @returns {Promise} - */ - function logIn(permissions: any, options: any): Promise; - /** - * Links Facebook to an existing PFUser. This method delegates to the - * Facebook SDK to authenticate the user, and then automatically links - * the account to the Parse.User. - * - * Standard API: - * - * link(user: Parse.User, permission: string, authData?: Object); - * - * Advanced API: Used for handling your own oAuth tokens - * {@link https://docs.parseplatform.org/rest/guide/#linking-users} - * - * link(user: Parse.User, authData: Object, options?: FullOptions); - * - * @function link - * @name Parse.FacebookUtils.link - * @param {Parse.User} user User to link to Facebook. This must be the - * current user. - * @param {(string | object)} permissions The permissions required for Facebook - * log in. This is a comma-separated string of permissions. - * Alternatively, supply a Facebook authData object as described in our - * REST API docs if you want to handle getting facebook auth tokens - * yourself. - * @param {object} options MasterKey / SessionToken. Alternatively can be used for authData if permissions is a string - * @returns {Promise} - */ - function link(user: Parse.User, permissions: any, options: any): Promise; - function unlink(user: Parse.User, options: any): Promise; - function _getAuthProvider(): { - authenticate(options: any): void; - restoreAuthentication(authData: any): boolean; - getAuthType(): string; - deauthenticate(): void; - }; -} diff --git a/types/InstallationController.d.ts b/types/InstallationController.d.ts index 1409c39db..9797e9d93 100644 --- a/types/InstallationController.d.ts +++ b/types/InstallationController.d.ts @@ -1,10 +1,10 @@ import ParseInstallation from './ParseInstallation'; declare const InstallationController: { - updateInstallationOnDisk(installation: ParseInstallation): Promise; - currentInstallationId(): Promise; - currentInstallation(): Promise; - _clearCache(): void; - _setInstallationIdCache(iid: string): void; - _setCurrentInstallationCache(installation: ParseInstallation, matchesDisk?: boolean): void; + updateInstallationOnDisk(installation: ParseInstallation): Promise; + currentInstallationId(): Promise; + currentInstallation(): Promise; + _clearCache(): void; + _setInstallationIdCache(iid: string): void; + _setCurrentInstallationCache(installation: ParseInstallation, matchesDisk?: boolean): void; }; export default InstallationController; diff --git a/types/LiveQueryClient.d.ts b/types/LiveQueryClient.d.ts index 19f19c33f..301650880 100644 --- a/types/LiveQueryClient.d.ts +++ b/types/LiveQueryClient.d.ts @@ -45,85 +45,92 @@ import type ParseQuery from './ParseQuery'; * @alias Parse.LiveQueryClient */ declare class LiveQueryClient { - attempts: number; - id: number; - requestId: number; - applicationId: string; - serverURL: string; - javascriptKey?: string; - masterKey?: string; - sessionToken?: string; - installationId?: string; - additionalProperties: boolean; - connectPromise: any; - subscriptions: Map; - socket: WebSocketController & { - closingPromise?: any; - }; - state: string; - reconnectHandle: any; - emitter: any; - on: any; - emit: any; - /** - * @param {object} options - * @param {string} options.applicationId - applicationId of your Parse app - * @param {string} options.serverURL - the URL of your LiveQuery server - * @param {string} options.javascriptKey (optional) - * @param {string} options.masterKey (optional) Your Parse Master Key. (Node.js only!) - * @param {string} options.sessionToken (optional) - * @param {string} options.installationId (optional) - */ - constructor({ applicationId, serverURL, javascriptKey, masterKey, sessionToken, installationId, }: { - applicationId: any; - serverURL: any; - javascriptKey: any; - masterKey: any; - sessionToken: any; - installationId: any; - }); - shouldOpen(): any; - /** - * Subscribes to a ParseQuery - * - * If you provide the sessionToken, when the LiveQuery server gets ParseObject's - * updates from parse server, it'll try to check whether the sessionToken fulfills - * the ParseObject's ACL. The LiveQuery server will only send updates to clients whose - * sessionToken is fit for the ParseObject's ACL. You can check the LiveQuery protocol - * here for more details. The subscription you get is the same subscription you get - * from our Standard API. - * - * @param {ParseQuery} query - the ParseQuery you want to subscribe to - * @param {string} sessionToken (optional) - * @returns {LiveQuerySubscription | undefined} - */ - subscribe(query: ParseQuery, sessionToken?: string): LiveQuerySubscription | undefined; - /** - * After calling unsubscribe you'll stop receiving events from the subscription object. - * - * @param {object} subscription - subscription you would like to unsubscribe from. - * @returns {Promise | undefined} - */ - unsubscribe(subscription: LiveQuerySubscription): Promise; - /** - * After open is called, the LiveQueryClient will try to send a connect request - * to the LiveQuery server. - * - */ - open(): void; - resubscribe(): void; - /** - * This method will close the WebSocket connection to this LiveQueryClient, - * cancel the auto reconnect and unsubscribe all subscriptions based on it. - * - * @returns {Promise | undefined} CloseEvent {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close_event} - */ - close(): Promise; - _handleReset(): void; - _handleWebSocketOpen(): void; - _handleWebSocketMessage(event: any): void; - _handleWebSocketClose(): void; - _handleWebSocketError(error: any): void; - _handleReconnect(): void; + attempts: number; + id: number; + requestId: number; + applicationId: string; + serverURL: string; + javascriptKey?: string; + masterKey?: string; + sessionToken?: string; + installationId?: string; + additionalProperties: boolean; + connectPromise: any; + subscriptions: Map; + socket: WebSocketController & { + closingPromise?: any; + }; + state: string; + reconnectHandle: any; + emitter: any; + on: any; + emit: any; + /** + * @param {object} options + * @param {string} options.applicationId - applicationId of your Parse app + * @param {string} options.serverURL - the URL of your LiveQuery server + * @param {string} options.javascriptKey (optional) + * @param {string} options.masterKey (optional) Your Parse Master Key. (Node.js only!) + * @param {string} options.sessionToken (optional) + * @param {string} options.installationId (optional) + */ + constructor({ + applicationId, + serverURL, + javascriptKey, + masterKey, + sessionToken, + installationId, + }: { + applicationId: any; + serverURL: any; + javascriptKey: any; + masterKey: any; + sessionToken: any; + installationId: any; + }); + shouldOpen(): any; + /** + * Subscribes to a ParseQuery + * + * If you provide the sessionToken, when the LiveQuery server gets ParseObject's + * updates from parse server, it'll try to check whether the sessionToken fulfills + * the ParseObject's ACL. The LiveQuery server will only send updates to clients whose + * sessionToken is fit for the ParseObject's ACL. You can check the LiveQuery protocol + * here for more details. The subscription you get is the same subscription you get + * from our Standard API. + * + * @param {ParseQuery} query - the ParseQuery you want to subscribe to + * @param {string} sessionToken (optional) + * @returns {LiveQuerySubscription | undefined} + */ + subscribe(query: ParseQuery, sessionToken?: string): LiveQuerySubscription | undefined; + /** + * After calling unsubscribe you'll stop receiving events from the subscription object. + * + * @param {object} subscription - subscription you would like to unsubscribe from. + * @returns {Promise | undefined} + */ + unsubscribe(subscription: LiveQuerySubscription): Promise; + /** + * After open is called, the LiveQueryClient will try to send a connect request + * to the LiveQuery server. + * + */ + open(): void; + resubscribe(): void; + /** + * This method will close the WebSocket connection to this LiveQueryClient, + * cancel the auto reconnect and unsubscribe all subscriptions based on it. + * + * @returns {Promise | undefined} CloseEvent {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close_event} + */ + close(): Promise; + _handleReset(): void; + _handleWebSocketOpen(): void; + _handleWebSocketMessage(event: any): void; + _handleWebSocketClose(): void; + _handleWebSocketError(error: any): void; + _handleReconnect(): void; } export default LiveQueryClient; diff --git a/types/LiveQuerySubscription.d.ts b/types/LiveQuerySubscription.d.ts index b393ab8a0..06a4ed154 100644 --- a/types/LiveQuerySubscription.d.ts +++ b/types/LiveQuerySubscription.d.ts @@ -85,17 +85,17 @@ export default Subscription; * @alias Parse.LiveQuerySubscription */ declare class Subscription { - constructor(id: any, query: any, sessionToken: any); - id: any; - query: any; - sessionToken: any; - subscribePromise: Promise; - unsubscribePromise: Promise; - subscribed: boolean; - /** - * Close the subscription - * - * @returns {Promise} - */ - unsubscribe(): Promise; + constructor(id: any, query: any, sessionToken: any); + id: any; + query: any; + sessionToken: any; + subscribePromise: Promise; + unsubscribePromise: Promise; + subscribed: boolean; + /** + * Close the subscription + * + * @returns {Promise} + */ + unsubscribe(): Promise; } diff --git a/types/LocalDatastore.d.ts b/types/LocalDatastore.d.ts index 8508577dd..4559910a9 100644 --- a/types/LocalDatastore.d.ts +++ b/types/LocalDatastore.d.ts @@ -20,37 +20,37 @@ import type ParseObject from './ParseObject'; * @static */ declare const LocalDatastore: { - isEnabled: boolean; - isSyncing: boolean; - fromPinWithName(name: string): Promise>; - pinWithName(name: string, value: any): Promise; - unPinWithName(name: string): Promise; - _getAllContents(): Promise; - _getRawStorage(): Promise; - _clear(): Promise; - _handlePinAllWithName(name: string, objects: Array): Promise; - _handleUnPinAllWithName(name: string, objects: Array): Promise; - _getChildren(object: ParseObject): {}; - _traverse(object: any, encountered: any): void; - _serializeObjectsFromPinName(name: string): Promise; - _serializeObject(objectKey: string, localDatastore: any): Promise; - _updateObjectIfPinned(object: ParseObject): Promise; - _destroyObjectIfPinned(object: ParseObject): Promise; - _updateLocalIdForObject(localId: string, object: ParseObject): Promise; - /** - * Updates Local Datastore from Server - * - *
          -     * await Parse.LocalDatastore.updateFromServer();
          -     * 
          - * - * @function updateFromServer - * @name Parse.LocalDatastore.updateFromServer - * @static - */ - updateFromServer(): Promise; - getKeyForObject(object: any): string; - getPinName(pinName?: string): string; - checkIfEnabled(): any; + isEnabled: boolean; + isSyncing: boolean; + fromPinWithName(name: string): Promise>; + pinWithName(name: string, value: any): Promise; + unPinWithName(name: string): Promise; + _getAllContents(): Promise; + _getRawStorage(): Promise; + _clear(): Promise; + _handlePinAllWithName(name: string, objects: Array): Promise; + _handleUnPinAllWithName(name: string, objects: Array): Promise; + _getChildren(object: ParseObject): any; + _traverse(object: any, encountered: any): void; + _serializeObjectsFromPinName(name: string): Promise; + _serializeObject(objectKey: string, localDatastore: any): Promise; + _updateObjectIfPinned(object: ParseObject): Promise; + _destroyObjectIfPinned(object: ParseObject): Promise; + _updateLocalIdForObject(localId: string, object: ParseObject): Promise; + /** + * Updates Local Datastore from Server + * + *
          +   * await Parse.LocalDatastore.updateFromServer();
          +   * 
          + * + * @function updateFromServer + * @name Parse.LocalDatastore.updateFromServer + * @static + */ + updateFromServer(): Promise; + getKeyForObject(object: any): string; + getPinName(pinName?: string): string; + checkIfEnabled(): any; }; export default LocalDatastore; diff --git a/types/LocalDatastoreController.default.d.ts b/types/LocalDatastoreController.default.d.ts index 8ccbb01b6..5f36329c3 100644 --- a/types/LocalDatastoreController.default.d.ts +++ b/types/LocalDatastoreController.default.d.ts @@ -1,9 +1,9 @@ declare const LocalDatastoreController: { - fromPinWithName(name: string): Promise>; - pinWithName(name: string, value: any): any; - unPinWithName(name: string): any; - getAllContents(): Promise; - getRawStorage(): Promise; - clear(): Promise; + fromPinWithName(name: string): Promise>; + pinWithName(name: string, value: any): any; + unPinWithName(name: string): any; + getAllContents(): Promise; + getRawStorage(): Promise; + clear(): Promise; }; export default LocalDatastoreController; diff --git a/types/LocalDatastoreController.react-native.d.ts b/types/LocalDatastoreController.react-native.d.ts index 2db09d794..96b58dfd5 100644 --- a/types/LocalDatastoreController.react-native.d.ts +++ b/types/LocalDatastoreController.react-native.d.ts @@ -1,9 +1,9 @@ declare const LocalDatastoreController: { - fromPinWithName(name: string): Promise>; - pinWithName(name: string, value: any): Promise; - unPinWithName(name: string): Promise; - getAllContents(): Promise; - getRawStorage(): Promise; - clear(): Promise; + fromPinWithName(name: string): Promise>; + pinWithName(name: string, value: any): Promise; + unPinWithName(name: string): Promise; + getAllContents(): Promise; + getRawStorage(): Promise; + clear(): Promise; }; export default LocalDatastoreController; diff --git a/types/LocalDatastoreUtils.d.ts b/types/LocalDatastoreUtils.d.ts index 7472e6570..db607c44e 100644 --- a/types/LocalDatastoreUtils.d.ts +++ b/types/LocalDatastoreUtils.d.ts @@ -1,5 +1,5 @@ -declare const DEFAULT_PIN = "_default"; -declare const PIN_PREFIX = "parsePin_"; -declare const OBJECT_PREFIX = "Parse_LDS_"; +declare const DEFAULT_PIN = '_default'; +declare const PIN_PREFIX = 'parsePin_'; +declare const OBJECT_PREFIX = 'Parse_LDS_'; declare function isLocalDatastoreKey(key: string): boolean; export { DEFAULT_PIN, PIN_PREFIX, OBJECT_PREFIX, isLocalDatastoreKey }; diff --git a/types/ObjectStateMutations.d.ts b/types/ObjectStateMutations.d.ts index 7a2086d80..75d1793eb 100644 --- a/types/ObjectStateMutations.d.ts +++ b/types/ObjectStateMutations.d.ts @@ -2,20 +2,20 @@ import TaskQueue from './TaskQueue'; import type { Op } from './ParseOp'; import type ParseObject from './ParseObject'; export type AttributeMap = { - [attr: string]: any; + [attr: string]: any; }; export type OpsMap = { - [attr: string]: Op; + [attr: string]: Op; }; export type ObjectCache = { - [attr: string]: string; + [attr: string]: string; }; export type State = { - serverData: AttributeMap; - pendingOps: Array; - objectCache: ObjectCache; - tasks: TaskQueue; - existed: boolean; + serverData: AttributeMap; + pendingOps: Array; + objectCache: ObjectCache; + tasks: TaskQueue; + existed: boolean; }; export declare function defaultState(): State; export declare function setServerData(serverData: AttributeMap, attributes: AttributeMap): void; @@ -23,6 +23,19 @@ export declare function setPendingOp(pendingOps: Array, attr: string, op export declare function pushPendingState(pendingOps: Array): void; export declare function popPendingState(pendingOps: Array): OpsMap; export declare function mergeFirstPendingState(pendingOps: Array): void; -export declare function estimateAttribute(serverData: AttributeMap, pendingOps: Array, object: ParseObject, attr: string): any; -export declare function estimateAttributes(serverData: AttributeMap, pendingOps: Array, object: ParseObject): AttributeMap; -export declare function commitServerChanges(serverData: AttributeMap, objectCache: ObjectCache, changes: AttributeMap): void; +export declare function estimateAttribute( + serverData: AttributeMap, + pendingOps: Array, + object: ParseObject, + attr: string +): any; +export declare function estimateAttributes( + serverData: AttributeMap, + pendingOps: Array, + object: ParseObject +): AttributeMap; +export declare function commitServerChanges( + serverData: AttributeMap, + objectCache: ObjectCache, + changes: AttributeMap +): void; diff --git a/types/OfflineQuery.d.ts b/types/OfflineQuery.d.ts index 8c8c81b16..a1044dcf4 100644 --- a/types/OfflineQuery.d.ts +++ b/types/OfflineQuery.d.ts @@ -1,17 +1,17 @@ export type RelativeTimeToDateResult = { - /** - * The conversion status, `error` if conversion failed or - * `success` if conversion succeeded. - */ - status: string; - /** - * The error message if conversion failed, or the relative - * time indication (`past`, `present`, `future`) if conversion succeeded. - */ - info: string; - /** - * The converted date, or `undefined` if conversion - * failed. - */ - result: Date | undefined; + /** + * The conversion status, `error` if conversion failed or + * `success` if conversion succeeded. + */ + status: string; + /** + * The error message if conversion failed, or the relative + * time indication (`past`, `present`, `future`) if conversion succeeded. + */ + info: string; + /** + * The converted date, or `undefined` if conversion + * failed. + */ + result: Date | undefined; }; diff --git a/types/Parse.d.ts b/types/Parse.d.ts index 407bdb7c2..34e369210 100644 --- a/types/Parse.d.ts +++ b/types/Parse.d.ts @@ -34,73 +34,73 @@ import LiveQueryClient from './LiveQueryClient'; * @hideconstructor */ interface ParseType { - ACL: typeof ACL; - Parse?: ParseType; - Analytics: typeof Analytics; - AnonymousUtils: typeof AnonymousUtils; - Cloud: typeof Cloud & { - /** only available in server environments */ - useMasterKey?: () => void; - }; - CLP: typeof CLP; - CoreManager: typeof CoreManager; - Config: typeof Config; - Error: typeof ParseError; - EventuallyQueue: typeof EventuallyQueue; - FacebookUtils: typeof FacebookUtils; - File: typeof File; - GeoPoint: typeof GeoPoint; - Hooks?: any; - Polygon: typeof Polygon; - Installation: typeof Installation; - LocalDatastore: typeof LocalDatastore; - Object: typeof ParseObject; - Op: { - Set: typeof ParseOp.SetOp; - Unset: typeof ParseOp.UnsetOp; - Increment: typeof ParseOp.IncrementOp; - Add: typeof ParseOp.AddOp; - Remove: typeof ParseOp.RemoveOp; - AddUnique: typeof ParseOp.AddUniqueOp; - Relation: typeof ParseOp.RelationOp; - }; - Push: typeof Push; - Query: typeof Query; - Relation: typeof Relation; - Role: typeof Role; - Schema: typeof Schema; - Session: typeof Session; - Storage: typeof Storage; - User: typeof User; - LiveQuery: typeof ParseLiveQuery; - LiveQueryClient: typeof LiveQueryClient; - initialize(applicationId: string, javaScriptKey: string): void; - _initialize(applicationId: string, javaScriptKey: string, masterKey?: string): void; - setAsyncStorage(storage: any): void; - setLocalDatastoreController(controller: any): void; - getServerHealth(): Promise; - applicationId: string; - javaScriptKey: string; - masterKey: string; - serverURL: string; - serverAuthToken: string; - serverAuthType: string; - liveQueryServerURL: string; - encryptedUser: boolean; - secret: string; - idempotency: boolean; - allowCustomObjectId: boolean; - IndexedDB?: any; - _request(...args: any[]): void; - _ajax(...args: any[]): void; - _decode(...args: any[]): void; - _encode(...args: any[]): void; - _getInstallationId?(): Promise; - enableLocalDatastore(polling: boolean, ms: number): void; - isLocalDatastoreEnabled(): boolean; - dumpLocalDatastore(): void; - enableEncryptedUser(): void; - isEncryptedUserEnabled(): void; + ACL: typeof ACL; + Parse?: ParseType; + Analytics: typeof Analytics; + AnonymousUtils: typeof AnonymousUtils; + Cloud: typeof Cloud & { + /** only available in server environments */ + useMasterKey?: () => void; + }; + CLP: typeof CLP; + CoreManager: typeof CoreManager; + Config: typeof Config; + Error: typeof ParseError; + EventuallyQueue: typeof EventuallyQueue; + FacebookUtils: typeof FacebookUtils; + File: typeof File; + GeoPoint: typeof GeoPoint; + Hooks?: any; + Polygon: typeof Polygon; + Installation: typeof Installation; + LocalDatastore: typeof LocalDatastore; + Object: typeof ParseObject; + Op: { + Set: typeof ParseOp.SetOp; + Unset: typeof ParseOp.UnsetOp; + Increment: typeof ParseOp.IncrementOp; + Add: typeof ParseOp.AddOp; + Remove: typeof ParseOp.RemoveOp; + AddUnique: typeof ParseOp.AddUniqueOp; + Relation: typeof ParseOp.RelationOp; + }; + Push: typeof Push; + Query: typeof Query; + Relation: typeof Relation; + Role: typeof Role; + Schema: typeof Schema; + Session: typeof Session; + Storage: typeof Storage; + User: typeof User; + LiveQuery: typeof ParseLiveQuery; + LiveQueryClient: typeof LiveQueryClient; + initialize(applicationId: string, javaScriptKey: string): void; + _initialize(applicationId: string, javaScriptKey: string, masterKey?: string): void; + setAsyncStorage(storage: any): void; + setLocalDatastoreController(controller: any): void; + getServerHealth(): Promise; + applicationId: string; + javaScriptKey: string; + masterKey: string; + serverURL: string; + serverAuthToken: string; + serverAuthType: string; + liveQueryServerURL: string; + encryptedUser: boolean; + secret: string; + idempotency: boolean; + allowCustomObjectId: boolean; + IndexedDB?: any; + _request(...args: any[]): void; + _ajax(...args: any[]): void; + _decode(...args: any[]): void; + _encode(...args: any[]): void; + _getInstallationId?(): Promise; + enableLocalDatastore(polling: boolean, ms: number): void; + isLocalDatastoreEnabled(): boolean; + dumpLocalDatastore(): void; + enableEncryptedUser(): void; + isEncryptedUserEnabled(): void; } declare const Parse: ParseType; export default Parse; diff --git a/types/ParseACL.d.ts b/types/ParseACL.d.ts index 3d29cf5ea..0a17992b5 100644 --- a/types/ParseACL.d.ts +++ b/types/ParseACL.d.ts @@ -14,128 +14,128 @@ export default ParseACL; * @alias Parse.ACL */ declare class ParseACL { - /** - * @param {(Parse.User | object)} arg1 The user to initialize the ACL for - */ - constructor(arg1: ParseUser | ByIdMap); - permissionsById: ByIdMap; - /** - * Returns a JSON-encoded version of the ACL. - * - * @returns {object} - */ - toJSON(): ByIdMap; - /** - * Returns whether this ACL is equal to another object - * - * @param {ParseACL} other The other object's ACL to compare to - * @returns {boolean} - */ - equals(other: ParseACL): boolean; - _setAccess(accessType: string, userId: ParseUser | ParseRole | string, allowed: boolean): void; - _getAccess(accessType: string, userId: ParseUser | ParseRole | string): boolean; - /** - * Sets whether the given user is allowed to read this object. - * - * @param userId An instance of Parse.User or its objectId. - * @param {boolean} allowed Whether that user should have read access. - */ - setReadAccess(userId: ParseUser | ParseRole | string, allowed: boolean): void; - /** - * Get whether the given user id is *explicitly* allowed to read this object. - * Even if this returns false, the user may still be able to access it if - * getPublicReadAccess returns true or a role that the user belongs to has - * write access. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role. - * @returns {boolean} - */ - getReadAccess(userId: ParseUser | ParseRole | string): boolean; - /** - * Sets whether the given user id is allowed to write this object. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role.. - * @param {boolean} allowed Whether that user should have write access. - */ - setWriteAccess(userId: ParseUser | ParseRole | string, allowed: boolean): void; - /** - * Gets whether the given user id is *explicitly* allowed to write this object. - * Even if this returns false, the user may still be able to write it if - * getPublicWriteAccess returns true or a role that the user belongs to has - * write access. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role. - * @returns {boolean} - */ - getWriteAccess(userId: ParseUser | ParseRole | string): boolean; - /** - * Sets whether the public is allowed to read this object. - * - * @param {boolean} allowed - */ - setPublicReadAccess(allowed: boolean): void; - /** - * Gets whether the public is allowed to read this object. - * - * @returns {boolean} - */ - getPublicReadAccess(): boolean; - /** - * Sets whether the public is allowed to write this object. - * - * @param {boolean} allowed - */ - setPublicWriteAccess(allowed: boolean): void; - /** - * Gets whether the public is allowed to write this object. - * - * @returns {boolean} - */ - getPublicWriteAccess(): boolean; - /** - * Gets whether users belonging to the given role are allowed - * to read this object. Even if this returns false, the role may - * still be able to write it if a parent role has read access. - * - * @param role The name of the role, or a Parse.Role object. - * @returns {boolean} true if the role has read access. false otherwise. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - getRoleReadAccess(role: ParseRole | string): boolean; - /** - * Gets whether users belonging to the given role are allowed - * to write this object. Even if this returns false, the role may - * still be able to write it if a parent role has write access. - * - * @param role The name of the role, or a Parse.Role object. - * @returns {boolean} true if the role has write access. false otherwise. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - getRoleWriteAccess(role: ParseRole | string): boolean; - /** - * Sets whether users belonging to the given role are allowed - * to read this object. - * - * @param role The name of the role, or a Parse.Role object. - * @param {boolean} allowed Whether the given role can read this object. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - setRoleReadAccess(role: ParseRole | string, allowed: boolean): void; - /** - * Sets whether users belonging to the given role are allowed - * to write this object. - * - * @param role The name of the role, or a Parse.Role object. - * @param {boolean} allowed Whether the given role can write this object. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - setRoleWriteAccess(role: ParseRole | string, allowed: boolean): void; + /** + * @param {(Parse.User | object)} arg1 The user to initialize the ACL for + */ + constructor(arg1: ParseUser | ByIdMap); + permissionsById: ByIdMap; + /** + * Returns a JSON-encoded version of the ACL. + * + * @returns {object} + */ + toJSON(): ByIdMap; + /** + * Returns whether this ACL is equal to another object + * + * @param {ParseACL} other The other object's ACL to compare to + * @returns {boolean} + */ + equals(other: ParseACL): boolean; + _setAccess(accessType: string, userId: ParseUser | ParseRole | string, allowed: boolean): void; + _getAccess(accessType: string, userId: ParseUser | ParseRole | string): boolean; + /** + * Sets whether the given user is allowed to read this object. + * + * @param userId An instance of Parse.User or its objectId. + * @param {boolean} allowed Whether that user should have read access. + */ + setReadAccess(userId: ParseUser | ParseRole | string, allowed: boolean): void; + /** + * Get whether the given user id is *explicitly* allowed to read this object. + * Even if this returns false, the user may still be able to access it if + * getPublicReadAccess returns true or a role that the user belongs to has + * write access. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role. + * @returns {boolean} + */ + getReadAccess(userId: ParseUser | ParseRole | string): boolean; + /** + * Sets whether the given user id is allowed to write this object. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role.. + * @param {boolean} allowed Whether that user should have write access. + */ + setWriteAccess(userId: ParseUser | ParseRole | string, allowed: boolean): void; + /** + * Gets whether the given user id is *explicitly* allowed to write this object. + * Even if this returns false, the user may still be able to write it if + * getPublicWriteAccess returns true or a role that the user belongs to has + * write access. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role. + * @returns {boolean} + */ + getWriteAccess(userId: ParseUser | ParseRole | string): boolean; + /** + * Sets whether the public is allowed to read this object. + * + * @param {boolean} allowed + */ + setPublicReadAccess(allowed: boolean): void; + /** + * Gets whether the public is allowed to read this object. + * + * @returns {boolean} + */ + getPublicReadAccess(): boolean; + /** + * Sets whether the public is allowed to write this object. + * + * @param {boolean} allowed + */ + setPublicWriteAccess(allowed: boolean): void; + /** + * Gets whether the public is allowed to write this object. + * + * @returns {boolean} + */ + getPublicWriteAccess(): boolean; + /** + * Gets whether users belonging to the given role are allowed + * to read this object. Even if this returns false, the role may + * still be able to write it if a parent role has read access. + * + * @param role The name of the role, or a Parse.Role object. + * @returns {boolean} true if the role has read access. false otherwise. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + getRoleReadAccess(role: ParseRole | string): boolean; + /** + * Gets whether users belonging to the given role are allowed + * to write this object. Even if this returns false, the role may + * still be able to write it if a parent role has write access. + * + * @param role The name of the role, or a Parse.Role object. + * @returns {boolean} true if the role has write access. false otherwise. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + getRoleWriteAccess(role: ParseRole | string): boolean; + /** + * Sets whether users belonging to the given role are allowed + * to read this object. + * + * @param role The name of the role, or a Parse.Role object. + * @param {boolean} allowed Whether the given role can read this object. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + setRoleReadAccess(role: ParseRole | string, allowed: boolean): void; + /** + * Sets whether users belonging to the given role are allowed + * to write this object. + * + * @param role The name of the role, or a Parse.Role object. + * @param {boolean} allowed Whether the given role can write this object. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + setRoleWriteAccess(role: ParseRole | string, allowed: boolean): void; } type ByIdMap = { - [userId: string]: PermissionsMap; + [userId: string]: PermissionsMap; }; import ParseUser from './ParseUser'; import ParseRole from './ParseRole'; type PermissionsMap = { - [permission: string]: boolean; + [permission: string]: boolean; }; diff --git a/types/ParseCLP.d.ts b/types/ParseCLP.d.ts index eaa7d6b26..9a3d8e3b3 100644 --- a/types/ParseCLP.d.ts +++ b/types/ParseCLP.d.ts @@ -2,13 +2,13 @@ import ParseRole from './ParseRole'; import ParseUser from './ParseUser'; type Entity = ParseUser | ParseRole | string; type UsersMap = { - [userId: string]: boolean | any; + [userId: string]: boolean | any; }; export type PermissionsMap = { - writeUserFields?: string[]; - readUserFields?: string[]; + writeUserFields?: string[]; + readUserFields?: string[]; } & { - [permission: string]: UsersMap; + [permission: string]: UsersMap; }; /** * Creates a new CLP. @@ -103,191 +103,191 @@ export type PermissionsMap = { * @alias Parse.CLP */ declare class ParseCLP { - permissionsMap: PermissionsMap; - /** - * @param {(Parse.User | Parse.Role | object)} userId The user to initialize the CLP for - */ - constructor(userId: ParseUser | ParseRole | PermissionsMap); - /** - * Returns a JSON-encoded version of the CLP. - * - * @returns {object} - */ - toJSON(): PermissionsMap; - /** - * Returns whether this CLP is equal to another object - * - * @param other The other object to compare to - * @returns {boolean} - */ - equals(other: ParseCLP): boolean; - _getRoleName(role: ParseRole | string): string; - _parseEntity(entity: Entity): string; - _setAccess(permission: string, userId: Entity, allowed: boolean): void; - _getAccess(permission: string, userId: Entity, returnBoolean?: boolean): boolean | string[]; - _setArrayAccess(permission: string, userId: Entity, fields: string[]): void; - _setGroupPointerPermission(operation: string, pointerFields: string[]): void; - _getGroupPointerPermissions(operation: 'readUserFields' | 'writeUserFields'): string[]; - /** - * Sets user pointer fields to allow permission for get/count/find operations. - * - * @param {string[]} pointerFields User pointer fields - */ - setReadUserFields(pointerFields: string[]): void; - /** - * @returns {string[]} User pointer fields - */ - getReadUserFields(): string[]; - /** - * Sets user pointer fields to allow permission for create/delete/update/addField operations - * - * @param {string[]} pointerFields User pointer fields - */ - setWriteUserFields(pointerFields: string[]): void; - /** - * @returns {string[]} User pointer fields - */ - getWriteUserFields(): string[]; - /** - * Sets whether the given user is allowed to retrieve fields from this class. - * - * @param userId An instance of Parse.User or its objectId. - * @param {string[]} fields fields to be protected - */ - setProtectedFields(userId: Entity, fields: string[]): void; - /** - * Returns array of fields are accessable to this user. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role. - * @returns {string[]} - */ - getProtectedFields(userId: Entity): string[]; - /** - * Sets whether the given user is allowed to read from this class. - * - * @param userId An instance of Parse.User or its objectId. - * @param {boolean} allowed whether that user should have read access. - */ - setReadAccess(userId: Entity, allowed: boolean): void; - /** - * Get whether the given user id is *explicitly* allowed to read from this class. - * Even if this returns false, the user may still be able to access it if - * getPublicReadAccess returns true or a role that the user belongs to has - * write access. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role. - * @returns {boolean} - */ - getReadAccess(userId: Entity): boolean; - /** - * Sets whether the given user id is allowed to write to this class. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role.. - * @param {boolean} allowed Whether that user should have write access. - */ - setWriteAccess(userId: Entity, allowed: boolean): void; - /** - * Gets whether the given user id is *explicitly* allowed to write to this class. - * Even if this returns false, the user may still be able to write it if - * getPublicWriteAccess returns true or a role that the user belongs to has - * write access. - * - * @param userId An instance of Parse.User or its objectId, or a Parse.Role. - * @returns {boolean} - */ - getWriteAccess(userId: Entity): boolean; - /** - * Sets whether the public is allowed to read from this class. - * - * @param {boolean} allowed - */ - setPublicReadAccess(allowed: boolean): void; - /** - * Gets whether the public is allowed to read from this class. - * - * @returns {boolean} - */ - getPublicReadAccess(): boolean; - /** - * Sets whether the public is allowed to write to this class. - * - * @param {boolean} allowed - */ - setPublicWriteAccess(allowed: boolean): void; - /** - * Gets whether the public is allowed to write to this class. - * - * @returns {boolean} - */ - getPublicWriteAccess(): boolean; - /** - * Sets whether the public is allowed to protect fields in this class. - * - * @param {string[]} fields - */ - setPublicProtectedFields(fields: string[]): void; - /** - * Gets whether the public is allowed to read fields from this class. - * - * @returns {string[]} - */ - getPublicProtectedFields(): string[]; - /** - * Gets whether users belonging to the given role are allowed - * to read from this class. Even if this returns false, the role may - * still be able to write it if a parent role has read access. - * - * @param role The name of the role, or a Parse.Role object. - * @returns {boolean} true if the role has read access. false otherwise. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - getRoleReadAccess(role: ParseRole | string): boolean; - /** - * Gets whether users belonging to the given role are allowed - * to write to this user. Even if this returns false, the role may - * still be able to write it if a parent role has write access. - * - * @param role The name of the role, or a Parse.Role object. - * @returns {boolean} true if the role has write access. false otherwise. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - getRoleWriteAccess(role: ParseRole | string): boolean; - /** - * Sets whether users belonging to the given role are allowed - * to read from this class. - * - * @param role The name of the role, or a Parse.Role object. - * @param {boolean} allowed Whether the given role can read this object. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - setRoleReadAccess(role: ParseRole | string, allowed: boolean): void; - /** - * Sets whether users belonging to the given role are allowed - * to write to this class. - * - * @param role The name of the role, or a Parse.Role object. - * @param {boolean} allowed Whether the given role can write this object. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - setRoleWriteAccess(role: ParseRole | string, allowed: boolean): void; - /** - * Gets whether users belonging to the given role are allowed - * to count to this user. Even if this returns false, the role may - * still be able to count it if a parent role has count access. - * - * @param role The name of the role, or a Parse.Role object. - * @returns {string[]} - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - getRoleProtectedFields(role: ParseRole | string): string[]; - /** - * Sets whether users belonging to the given role are allowed - * to set access field in this class. - * - * @param role The name of the role, or a Parse.Role object. - * @param {string[]} fields Fields to be protected by Role. - * @throws {TypeError} If role is neither a Parse.Role nor a String. - */ - setRoleProtectedFields(role: ParseRole | string, fields: string[]): void; + permissionsMap: PermissionsMap; + /** + * @param {(Parse.User | Parse.Role | object)} userId The user to initialize the CLP for + */ + constructor(userId: ParseUser | ParseRole | PermissionsMap); + /** + * Returns a JSON-encoded version of the CLP. + * + * @returns {object} + */ + toJSON(): PermissionsMap; + /** + * Returns whether this CLP is equal to another object + * + * @param other The other object to compare to + * @returns {boolean} + */ + equals(other: ParseCLP): boolean; + _getRoleName(role: ParseRole | string): string; + _parseEntity(entity: Entity): string; + _setAccess(permission: string, userId: Entity, allowed: boolean): void; + _getAccess(permission: string, userId: Entity, returnBoolean?: boolean): boolean | string[]; + _setArrayAccess(permission: string, userId: Entity, fields: string[]): void; + _setGroupPointerPermission(operation: string, pointerFields: string[]): void; + _getGroupPointerPermissions(operation: 'readUserFields' | 'writeUserFields'): string[]; + /** + * Sets user pointer fields to allow permission for get/count/find operations. + * + * @param {string[]} pointerFields User pointer fields + */ + setReadUserFields(pointerFields: string[]): void; + /** + * @returns {string[]} User pointer fields + */ + getReadUserFields(): string[]; + /** + * Sets user pointer fields to allow permission for create/delete/update/addField operations + * + * @param {string[]} pointerFields User pointer fields + */ + setWriteUserFields(pointerFields: string[]): void; + /** + * @returns {string[]} User pointer fields + */ + getWriteUserFields(): string[]; + /** + * Sets whether the given user is allowed to retrieve fields from this class. + * + * @param userId An instance of Parse.User or its objectId. + * @param {string[]} fields fields to be protected + */ + setProtectedFields(userId: Entity, fields: string[]): void; + /** + * Returns array of fields are accessable to this user. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role. + * @returns {string[]} + */ + getProtectedFields(userId: Entity): string[]; + /** + * Sets whether the given user is allowed to read from this class. + * + * @param userId An instance of Parse.User or its objectId. + * @param {boolean} allowed whether that user should have read access. + */ + setReadAccess(userId: Entity, allowed: boolean): void; + /** + * Get whether the given user id is *explicitly* allowed to read from this class. + * Even if this returns false, the user may still be able to access it if + * getPublicReadAccess returns true or a role that the user belongs to has + * write access. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role. + * @returns {boolean} + */ + getReadAccess(userId: Entity): boolean; + /** + * Sets whether the given user id is allowed to write to this class. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role.. + * @param {boolean} allowed Whether that user should have write access. + */ + setWriteAccess(userId: Entity, allowed: boolean): void; + /** + * Gets whether the given user id is *explicitly* allowed to write to this class. + * Even if this returns false, the user may still be able to write it if + * getPublicWriteAccess returns true or a role that the user belongs to has + * write access. + * + * @param userId An instance of Parse.User or its objectId, or a Parse.Role. + * @returns {boolean} + */ + getWriteAccess(userId: Entity): boolean; + /** + * Sets whether the public is allowed to read from this class. + * + * @param {boolean} allowed + */ + setPublicReadAccess(allowed: boolean): void; + /** + * Gets whether the public is allowed to read from this class. + * + * @returns {boolean} + */ + getPublicReadAccess(): boolean; + /** + * Sets whether the public is allowed to write to this class. + * + * @param {boolean} allowed + */ + setPublicWriteAccess(allowed: boolean): void; + /** + * Gets whether the public is allowed to write to this class. + * + * @returns {boolean} + */ + getPublicWriteAccess(): boolean; + /** + * Sets whether the public is allowed to protect fields in this class. + * + * @param {string[]} fields + */ + setPublicProtectedFields(fields: string[]): void; + /** + * Gets whether the public is allowed to read fields from this class. + * + * @returns {string[]} + */ + getPublicProtectedFields(): string[]; + /** + * Gets whether users belonging to the given role are allowed + * to read from this class. Even if this returns false, the role may + * still be able to write it if a parent role has read access. + * + * @param role The name of the role, or a Parse.Role object. + * @returns {boolean} true if the role has read access. false otherwise. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + getRoleReadAccess(role: ParseRole | string): boolean; + /** + * Gets whether users belonging to the given role are allowed + * to write to this user. Even if this returns false, the role may + * still be able to write it if a parent role has write access. + * + * @param role The name of the role, or a Parse.Role object. + * @returns {boolean} true if the role has write access. false otherwise. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + getRoleWriteAccess(role: ParseRole | string): boolean; + /** + * Sets whether users belonging to the given role are allowed + * to read from this class. + * + * @param role The name of the role, or a Parse.Role object. + * @param {boolean} allowed Whether the given role can read this object. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + setRoleReadAccess(role: ParseRole | string, allowed: boolean): void; + /** + * Sets whether users belonging to the given role are allowed + * to write to this class. + * + * @param role The name of the role, or a Parse.Role object. + * @param {boolean} allowed Whether the given role can write this object. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + setRoleWriteAccess(role: ParseRole | string, allowed: boolean): void; + /** + * Gets whether users belonging to the given role are allowed + * to count to this user. Even if this returns false, the role may + * still be able to count it if a parent role has count access. + * + * @param role The name of the role, or a Parse.Role object. + * @returns {string[]} + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + getRoleProtectedFields(role: ParseRole | string): string[]; + /** + * Sets whether users belonging to the given role are allowed + * to set access field in this class. + * + * @param role The name of the role, or a Parse.Role object. + * @param {string[]} fields Fields to be protected by Role. + * @throws {TypeError} If role is neither a Parse.Role nor a String. + */ + setRoleProtectedFields(role: ParseRole | string, fields: string[]): void; } export default ParseCLP; diff --git a/types/ParseConfig.d.ts b/types/ParseConfig.d.ts index 757f71f83..a4fb48d07 100644 --- a/types/ParseConfig.d.ts +++ b/types/ParseConfig.d.ts @@ -1,5 +1,4 @@ -// @ts-nocheck -export default ParseConfig; +import type { RequestOptions } from './RESTController'; /** * Parse.Config is a local representation of configuration data that * can be set from the Parse dashboard. @@ -7,71 +6,75 @@ export default ParseConfig; * @alias Parse.Config */ declare class ParseConfig { - /** - * Retrieves the most recently-fetched configuration object, either from - * memory or from local storage if necessary. - * - * @static - * @returns {Parse.Config} The most recently-fetched Parse.Config if it - * exists, else an empty Parse.Config. - */ - static current(): Parse.Config; - /** - * Gets a new configuration object from the server. - * - * @static - * @param {object} options - * Valid options are:
            - *
          • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
          - * @returns {Promise} A promise that is resolved with a newly-created - * configuration object when the get completes. - */ - static get(options?: RequestOptions): Promise; - /** - * Save value keys to the server. - * - * @static - * @param {object} attrs The config parameters and values. - * @param {object} masterKeyOnlyFlags The flags that define whether config parameters listed - * in `attrs` should be retrievable only by using the master key. - * For example: `param1: true` makes `param1` only retrievable by using the master key. - * If a parameter is not provided or set to `false`, it can be retrieved without - * using the master key. - * @returns {Promise} A promise that is resolved with a newly-created - * configuration object or with the current with the update. - */ - static save(attrs: { - [key: string]: any; - }, masterKeyOnlyFlags: { - [key: string]: any; - }): Promise; - /** - * Used for testing - * - * @private - */ - private static _clearCache; - attributes: { - [key: string]: any; - }; - _escapedAttributes: { - [key: string]: any; - }; - /** - * Gets the value of an attribute. - * - * @param {string} attr The name of an attribute. - * @returns {*} - */ - get(attr: string): any; - /** - * Gets the HTML-escaped value of an attribute. - * - * @param {string} attr The name of an attribute. - * @returns {string} - */ - escape(attr: string): string; + attributes: { + [key: string]: any; + }; + _escapedAttributes: { + [key: string]: any; + }; + constructor(); + /** + * Gets the value of an attribute. + * + * @param {string} attr The name of an attribute. + * @returns {*} + */ + get(attr: string): any; + /** + * Gets the HTML-escaped value of an attribute. + * + * @param {string} attr The name of an attribute. + * @returns {string} + */ + escape(attr: string): string; + /** + * Retrieves the most recently-fetched configuration object, either from + * memory or from local storage if necessary. + * + * @static + * @returns {Parse.Config} The most recently-fetched Parse.Config if it + * exists, else an empty Parse.Config. + */ + static current(): ParseConfig | Promise; + /** + * Gets a new configuration object from the server. + * + * @static + * @param {object} options + * Valid options are:
            + *
          • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
          + * @returns {Promise} A promise that is resolved with a newly-created + * configuration object when the get completes. + */ + static get(options?: RequestOptions): Promise; + /** + * Save value keys to the server. + * + * @static + * @param {object} attrs The config parameters and values. + * @param {object} masterKeyOnlyFlags The flags that define whether config parameters listed + * in `attrs` should be retrievable only by using the master key. + * For example: `param1: true` makes `param1` only retrievable by using the master key. + * If a parameter is not provided or set to `false`, it can be retrieved without + * using the master key. + * @returns {Promise} A promise that is resolved with a newly-created + * configuration object or with the current with the update. + */ + static save( + attrs: { + [key: string]: any; + }, + masterKeyOnlyFlags: { + [key: string]: any; + } + ): Promise; + /** + * Used for testing + * + * @private + */ + static _clearCache(): void; } -import { RequestOptions } from './RESTController'; +export default ParseConfig; diff --git a/types/ParseError.d.ts b/types/ParseError.d.ts index a276ae251..167e9addb 100644 --- a/types/ParseError.d.ts +++ b/types/ParseError.d.ts @@ -5,73 +5,73 @@ export default ParseError; * @alias Parse.Error */ declare class ParseError extends Error { - /** - * @param {number} code An error code constant from Parse.Error. - * @param {string} message A detailed description of the error. - */ - constructor(code: number, message: string); - code: number; + /** + * @param {number} code An error code constant from Parse.Error. + * @param {string} message A detailed description of the error. + */ + constructor(code: number, message: string); + code: number; } declare namespace ParseError { - let OTHER_CAUSE: number; - let INTERNAL_SERVER_ERROR: number; - let CONNECTION_FAILED: number; - let OBJECT_NOT_FOUND: number; - let INVALID_QUERY: number; - let INVALID_CLASS_NAME: number; - let MISSING_OBJECT_ID: number; - let INVALID_KEY_NAME: number; - let INVALID_POINTER: number; - let INVALID_JSON: number; - let COMMAND_UNAVAILABLE: number; - let NOT_INITIALIZED: number; - let INCORRECT_TYPE: number; - let INVALID_CHANNEL_NAME: number; - let PUSH_MISCONFIGURED: number; - let OBJECT_TOO_LARGE: number; - let OPERATION_FORBIDDEN: number; - let CACHE_MISS: number; - let INVALID_NESTED_KEY: number; - let INVALID_FILE_NAME: number; - let INVALID_ACL: number; - let TIMEOUT: number; - let INVALID_EMAIL_ADDRESS: number; - let MISSING_CONTENT_TYPE: number; - let MISSING_CONTENT_LENGTH: number; - let INVALID_CONTENT_LENGTH: number; - let FILE_TOO_LARGE: number; - let FILE_SAVE_ERROR: number; - let DUPLICATE_VALUE: number; - let INVALID_ROLE_NAME: number; - let EXCEEDED_QUOTA: number; - let SCRIPT_FAILED: number; - let VALIDATION_ERROR: number; - let INVALID_IMAGE_DATA: number; - let UNSAVED_FILE_ERROR: number; - let INVALID_PUSH_TIME_ERROR: number; - let FILE_DELETE_ERROR: number; - let FILE_DELETE_UNNAMED_ERROR: number; - let REQUEST_LIMIT_EXCEEDED: number; - let DUPLICATE_REQUEST: number; - let INVALID_EVENT_NAME: number; - let INVALID_VALUE: number; - let USERNAME_MISSING: number; - let PASSWORD_MISSING: number; - let USERNAME_TAKEN: number; - let EMAIL_TAKEN: number; - let EMAIL_MISSING: number; - let EMAIL_NOT_FOUND: number; - let SESSION_MISSING: number; - let MUST_CREATE_USER_THROUGH_SIGNUP: number; - let ACCOUNT_ALREADY_LINKED: number; - let INVALID_SESSION_TOKEN: number; - let MFA_ERROR: number; - let MFA_TOKEN_REQUIRED: number; - let LINKED_ID_MISSING: number; - let INVALID_LINKED_SESSION: number; - let UNSUPPORTED_SERVICE: number; - let INVALID_SCHEMA_OPERATION: number; - let AGGREGATE_ERROR: number; - let FILE_READ_ERROR: number; - let X_DOMAIN_REQUEST: number; + let OTHER_CAUSE: number; + let INTERNAL_SERVER_ERROR: number; + let CONNECTION_FAILED: number; + let OBJECT_NOT_FOUND: number; + let INVALID_QUERY: number; + let INVALID_CLASS_NAME: number; + let MISSING_OBJECT_ID: number; + let INVALID_KEY_NAME: number; + let INVALID_POINTER: number; + let INVALID_JSON: number; + let COMMAND_UNAVAILABLE: number; + let NOT_INITIALIZED: number; + let INCORRECT_TYPE: number; + let INVALID_CHANNEL_NAME: number; + let PUSH_MISCONFIGURED: number; + let OBJECT_TOO_LARGE: number; + let OPERATION_FORBIDDEN: number; + let CACHE_MISS: number; + let INVALID_NESTED_KEY: number; + let INVALID_FILE_NAME: number; + let INVALID_ACL: number; + let TIMEOUT: number; + let INVALID_EMAIL_ADDRESS: number; + let MISSING_CONTENT_TYPE: number; + let MISSING_CONTENT_LENGTH: number; + let INVALID_CONTENT_LENGTH: number; + let FILE_TOO_LARGE: number; + let FILE_SAVE_ERROR: number; + let DUPLICATE_VALUE: number; + let INVALID_ROLE_NAME: number; + let EXCEEDED_QUOTA: number; + let SCRIPT_FAILED: number; + let VALIDATION_ERROR: number; + let INVALID_IMAGE_DATA: number; + let UNSAVED_FILE_ERROR: number; + let INVALID_PUSH_TIME_ERROR: number; + let FILE_DELETE_ERROR: number; + let FILE_DELETE_UNNAMED_ERROR: number; + let REQUEST_LIMIT_EXCEEDED: number; + let DUPLICATE_REQUEST: number; + let INVALID_EVENT_NAME: number; + let INVALID_VALUE: number; + let USERNAME_MISSING: number; + let PASSWORD_MISSING: number; + let USERNAME_TAKEN: number; + let EMAIL_TAKEN: number; + let EMAIL_MISSING: number; + let EMAIL_NOT_FOUND: number; + let SESSION_MISSING: number; + let MUST_CREATE_USER_THROUGH_SIGNUP: number; + let ACCOUNT_ALREADY_LINKED: number; + let INVALID_SESSION_TOKEN: number; + let MFA_ERROR: number; + let MFA_TOKEN_REQUIRED: number; + let LINKED_ID_MISSING: number; + let INVALID_LINKED_SESSION: number; + let UNSUPPORTED_SERVICE: number; + let INVALID_SCHEMA_OPERATION: number; + let AGGREGATE_ERROR: number; + let FILE_READ_ERROR: number; + let X_DOMAIN_REQUEST: number; } diff --git a/types/ParseFile.d.ts b/types/ParseFile.d.ts index 5ac7c3407..48f1a4c4b 100644 --- a/types/ParseFile.d.ts +++ b/types/ParseFile.d.ts @@ -1,32 +1,35 @@ import type { FullOptions } from './RESTController'; type Base64 = { - base64: string; + base64: string; }; type Uri = { - uri: string; + uri: string; }; type FileData = Array | Base64 | Blob | Uri; export type FileSaveOptions = FullOptions & { - metadata?: { - [key: string]: any; - }; - tags?: { - [key: string]: any; - }; -}; -export type FileSource = { - format: 'file'; - file: Blob; - type: string | undefined; -} | { - format: 'base64'; - base64: string; - type: string | undefined; -} | { - format: 'uri'; - uri: string; - type: string | undefined; + metadata?: { + [key: string]: any; + }; + tags?: { + [key: string]: any; + }; }; +export type FileSource = + | { + format: 'file'; + file: Blob; + type: string | undefined; + } + | { + format: 'base64'; + base64: string; + type: string | undefined; + } + | { + format: 'uri'; + uri: string; + type: string | undefined; + }; /** * A Parse.File is a local representation of a file that is saved to the Parse * cloud. @@ -34,157 +37,155 @@ export type FileSource = { * @alias Parse.File */ declare class ParseFile { - _name: string; - _url?: string; - _source: FileSource; - _previousSave?: Promise; - _data?: string; - _requestTask?: any; - _metadata?: object; - _tags?: object; - /** - * @param name {String} The file's name. This will be prefixed by a unique - * value once the file has finished saving. The file name must begin with - * an alphanumeric character, and consist of alphanumeric characters, - * periods, spaces, underscores, or dashes. - * @param data {Array} The data for the file, as either: - * 1. an Array of byte value Numbers, or - * 2. an Object like { base64: "..." } with a base64-encoded String. - * 3. an Object like { uri: "..." } with a uri String. - * 4. a File object selected with a file upload control. (3) only works - * in Firefox 3.6+, Safari 6.0.2+, Chrome 7+, and IE 10+. - * For example: - *
          -     * var fileUploadControl = $("#profilePhotoFileUpload")[0];
          -     * if (fileUploadControl.files.length > 0) {
          -     *   var file = fileUploadControl.files[0];
          -     *   var name = "photo.jpg";
          -     *   var parseFile = new Parse.File(name, file);
          -     *   parseFile.save().then(function() {
          -     *     // The file has been saved to Parse.
          -     *   }, function(error) {
          -     *     // The file either could not be read, or could not be saved to Parse.
          -     *   });
          -     * }
          - * @param type {String} Optional Content-Type header to use for the file. If - * this is omitted, the content type will be inferred from the name's - * extension. - * @param metadata {object} Optional key value pairs to be stored with file object - * @param tags {object} Optional key value pairs to be stored with file object - */ - constructor(name: string, data?: FileData, type?: string, metadata?: object, tags?: object); - /** - * Return the data for the file, downloading it if not already present. - * Data is present if initialized with Byte Array, Base64 or Saved with Uri. - * Data is cleared if saved with File object selected with a file upload control - * - * @returns {Promise} Promise that is resolve with base64 data - */ - getData(): Promise; - /** - * Gets the name of the file. Before save is called, this is the filename - * given by the user. After save is called, that name gets prefixed with a - * unique identifier. - * - * @returns {string} - */ - name(): string; - /** - * Gets the url of the file. It is only available after you save the file or - * after you get the file from a Parse.Object. - * - * @param {object} options An object to specify url options - * @param {boolean} [options.forceSecure] force the url to be secure - * @returns {string | undefined} - */ - url(options?: { - forceSecure?: boolean; - }): string | undefined; - /** - * Gets the metadata of the file. - * - * @returns {object} - */ - metadata(): object; - /** - * Gets the tags of the file. - * - * @returns {object} - */ - tags(): object; - /** - * Saves the file to the Parse cloud. - * - * @param {object} options - * Valid options are:
            - *
          • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
          • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
          • progress: In Browser only, callback for upload progress. For example: - *
            -     * let parseFile = new Parse.File(name, file);
            -     * parseFile.save({
            -     *   progress: (progressValue, loaded, total, { type }) => {
            -     *     if (type === "upload" && progressValue !== null) {
            -     *       // Update the UI using progressValue
            -     *     }
            -     *   }
            -     * });
            -     * 
            - *
          - * @returns {Promise | undefined} Promise that is resolved when the save finishes. - */ - save(options?: FileSaveOptions): Promise | undefined; - /** - * Aborts the request if it has already been sent. - */ - cancel(): void; - /** - * Deletes the file from the Parse cloud. - * In Cloud Code and Node only with Master Key. - * - * @param {object} options - * Valid options are:
            - *
          • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            -     * @returns {Promise} Promise that is resolved when the delete finishes.
            -     */
            -    destroy(options?: FullOptions): Promise;
            -    toJSON(): {
            -        __type: 'File';
            -        name?: string;
            -        url?: string;
            -    };
            -    equals(other: any): boolean;
            -    /**
            -     * Sets metadata to be saved with file object. Overwrites existing metadata
            -     *
            -     * @param {object} metadata Key value pairs to be stored with file object
            -     */
            -    setMetadata(metadata: any): void;
            -    /**
            -     * Sets metadata to be saved with file object. Adds to existing metadata.
            -     *
            -     * @param {string} key key to store the metadata
            -     * @param {*} value metadata
            -     */
            -    addMetadata(key: string, value: any): void;
            -    /**
            -     * Sets tags to be saved with file object. Overwrites existing tags
            -     *
            -     * @param {object} tags Key value pairs to be stored with file object
            -     */
            -    setTags(tags: any): void;
            -    /**
            -     * Sets tags to be saved with file object. Adds to existing tags.
            -     *
            -     * @param {string} key key to store tags
            -     * @param {*} value tag
            -     */
            -    addTag(key: string, value: string): void;
            -    static fromJSON(obj: any): ParseFile;
            -    static encodeBase64(bytes: Array | Uint8Array): string;
            +  _name: string;
            +  _url?: string;
            +  _source: FileSource;
            +  _previousSave?: Promise;
            +  _data?: string;
            +  _requestTask?: any;
            +  _metadata?: object;
            +  _tags?: object;
            +  /**
            +   * @param name {String} The file's name. This will be prefixed by a unique
            +   *     value once the file has finished saving. The file name must begin with
            +   *     an alphanumeric character, and consist of alphanumeric characters,
            +   *     periods, spaces, underscores, or dashes.
            +   * @param data {Array} The data for the file, as either:
            +   *     1. an Array of byte value Numbers, or
            +   *     2. an Object like { base64: "..." } with a base64-encoded String.
            +   *     3. an Object like { uri: "..." } with a uri String.
            +   *     4. a File object selected with a file upload control. (3) only works
            +   *        in Firefox 3.6+, Safari 6.0.2+, Chrome 7+, and IE 10+.
            +   *        For example:
            +   * 
            +   * var fileUploadControl = $("#profilePhotoFileUpload")[0];
            +   * if (fileUploadControl.files.length > 0) {
            +   *   var file = fileUploadControl.files[0];
            +   *   var name = "photo.jpg";
            +   *   var parseFile = new Parse.File(name, file);
            +   *   parseFile.save().then(function() {
            +   *     // The file has been saved to Parse.
            +   *   }, function(error) {
            +   *     // The file either could not be read, or could not be saved to Parse.
            +   *   });
            +   * }
            + * @param type {String} Optional Content-Type header to use for the file. If + * this is omitted, the content type will be inferred from the name's + * extension. + * @param metadata {object} Optional key value pairs to be stored with file object + * @param tags {object} Optional key value pairs to be stored with file object + */ + constructor(name: string, data?: FileData, type?: string, metadata?: object, tags?: object); + /** + * Return the data for the file, downloading it if not already present. + * Data is present if initialized with Byte Array, Base64 or Saved with Uri. + * Data is cleared if saved with File object selected with a file upload control + * + * @returns {Promise} Promise that is resolve with base64 data + */ + getData(): Promise; + /** + * Gets the name of the file. Before save is called, this is the filename + * given by the user. After save is called, that name gets prefixed with a + * unique identifier. + * + * @returns {string} + */ + name(): string; + /** + * Gets the url of the file. It is only available after you save the file or + * after you get the file from a Parse.Object. + * + * @param {object} options An object to specify url options + * @param {boolean} [options.forceSecure] force the url to be secure + * @returns {string | undefined} + */ + url(options?: { forceSecure?: boolean }): string | undefined; + /** + * Gets the metadata of the file. + * + * @returns {object} + */ + metadata(): object; + /** + * Gets the tags of the file. + * + * @returns {object} + */ + tags(): object; + /** + * Saves the file to the Parse cloud. + * + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • progress: In Browser only, callback for upload progress. For example: + *
              +   * let parseFile = new Parse.File(name, file);
              +   * parseFile.save({
              +   *   progress: (progressValue, loaded, total, { type }) => {
              +   *     if (type === "upload" && progressValue !== null) {
              +   *       // Update the UI using progressValue
              +   *     }
              +   *   }
              +   * });
              +   * 
              + *
            + * @returns {Promise | undefined} Promise that is resolved when the save finishes. + */ + save(options?: FileSaveOptions): Promise | undefined; + /** + * Aborts the request if it has already been sent. + */ + cancel(): void; + /** + * Deletes the file from the Parse cloud. + * In Cloud Code and Node only with Master Key. + * + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
              +   * @returns {Promise} Promise that is resolved when the delete finishes.
              +   */
              +  destroy(options?: FullOptions): Promise;
              +  toJSON(): {
              +    __type: 'File';
              +    name?: string;
              +    url?: string;
              +  };
              +  equals(other: any): boolean;
              +  /**
              +   * Sets metadata to be saved with file object. Overwrites existing metadata
              +   *
              +   * @param {object} metadata Key value pairs to be stored with file object
              +   */
              +  setMetadata(metadata: any): void;
              +  /**
              +   * Sets metadata to be saved with file object. Adds to existing metadata.
              +   *
              +   * @param {string} key key to store the metadata
              +   * @param {*} value metadata
              +   */
              +  addMetadata(key: string, value: any): void;
              +  /**
              +   * Sets tags to be saved with file object. Overwrites existing tags
              +   *
              +   * @param {object} tags Key value pairs to be stored with file object
              +   */
              +  setTags(tags: any): void;
              +  /**
              +   * Sets tags to be saved with file object. Adds to existing tags.
              +   *
              +   * @param {string} key key to store tags
              +   * @param {*} value tag
              +   */
              +  addTag(key: string, value: string): void;
              +  static fromJSON(obj: any): ParseFile;
              +  static encodeBase64(bytes: Array | Uint8Array): string;
               }
               export default ParseFile;
              diff --git a/types/ParseGeoPoint.d.ts b/types/ParseGeoPoint.d.ts
              index 8ca122d5a..7c2c6b432 100644
              --- a/types/ParseGeoPoint.d.ts
              +++ b/types/ParseGeoPoint.d.ts
              @@ -22,83 +22,89 @@
                * @alias Parse.GeoPoint
                */
               declare class ParseGeoPoint {
              -    _latitude: number;
              -    _longitude: number;
              -    /**
              -     * @param {(number[] | object | number)} arg1 Either a list of coordinate pairs, an object with `latitude`, `longitude`, or the latitude or the point.
              -     * @param {number} arg2 The longitude of the GeoPoint
              -     */
              -    constructor(arg1: Array | {
              -        latitude: number;
              -        longitude: number;
              -    } | number, arg2?: number);
              -    /**
              -     * North-south portion of the coordinate, in range [-90, 90].
              -     * Throws an exception if set out of range in a modern browser.
              -     *
              -     * @property {number} latitude
              -     * @returns {number}
              -     */
              -    get latitude(): number;
              -    set latitude(val: number);
              -    /**
              -     * East-west portion of the coordinate, in range [-180, 180].
              -     * Throws if set out of range in a modern browser.
              -     *
              -     * @property {number} longitude
              -     * @returns {number}
              -     */
              -    get longitude(): number;
              -    set longitude(val: number);
              -    /**
              -     * Returns a JSON representation of the GeoPoint, suitable for Parse.
              -     *
              -     * @returns {object}
              -     */
              -    toJSON(): {
              -        __type: string;
              -        latitude: number;
              -        longitude: number;
              -    };
              -    equals(other: any): boolean;
              -    /**
              -     * Returns the distance from this GeoPoint to another in radians.
              -     *
              -     * @param {Parse.GeoPoint} point the other Parse.GeoPoint.
              -     * @returns {number}
              -     */
              -    radiansTo(point: ParseGeoPoint): number;
              -    /**
              -     * Returns the distance from this GeoPoint to another in kilometers.
              -     *
              -     * @param {Parse.GeoPoint} point the other Parse.GeoPoint.
              -     * @returns {number}
              -     */
              -    kilometersTo(point: ParseGeoPoint): number;
              -    /**
              -     * Returns the distance from this GeoPoint to another in miles.
              -     *
              -     * @param {Parse.GeoPoint} point the other Parse.GeoPoint.
              -     * @returns {number}
              -     */
              -    milesTo(point: ParseGeoPoint): number;
              -    static _validate(latitude: number, longitude: number): void;
              -    /**
              -     * Creates a GeoPoint with the user's current location, if available.
              -     *
              -     * @param {object} options The options.
              -     * @param {boolean} [options.enableHighAccuracy=false] A boolean value that indicates the application would like to receive the best possible results.
              -     *  If true and if the device is able to provide a more accurate position, it will do so.
              -     *  Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example).
              -     *  On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false.
              -     * @param {number} [options.timeout=Infinity] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position.
              -     *  The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available.
              -     * @param {number} [options.maximumAge=0] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return.
              -     *  If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position.
              -     *  If set to Infinity the device must return a cached position regardless of its age. Default: 0.
              -     * @static
              -     * @returns {Promise} User's current location
              -     */
              -    static current(options: any): Promise;
              +  _latitude: number;
              +  _longitude: number;
              +  /**
              +   * @param {(number[] | object | number)} arg1 Either a list of coordinate pairs, an object with `latitude`, `longitude`, or the latitude or the point.
              +   * @param {number} arg2 The longitude of the GeoPoint
              +   */
              +  constructor(
              +    arg1:
              +      | Array
              +      | {
              +          latitude: number;
              +          longitude: number;
              +        }
              +      | number,
              +    arg2?: number
              +  );
              +  /**
              +   * North-south portion of the coordinate, in range [-90, 90].
              +   * Throws an exception if set out of range in a modern browser.
              +   *
              +   * @property {number} latitude
              +   * @returns {number}
              +   */
              +  get latitude(): number;
              +  set latitude(val: number);
              +  /**
              +   * East-west portion of the coordinate, in range [-180, 180].
              +   * Throws if set out of range in a modern browser.
              +   *
              +   * @property {number} longitude
              +   * @returns {number}
              +   */
              +  get longitude(): number;
              +  set longitude(val: number);
              +  /**
              +   * Returns a JSON representation of the GeoPoint, suitable for Parse.
              +   *
              +   * @returns {object}
              +   */
              +  toJSON(): {
              +    __type: string;
              +    latitude: number;
              +    longitude: number;
              +  };
              +  equals(other: any): boolean;
              +  /**
              +   * Returns the distance from this GeoPoint to another in radians.
              +   *
              +   * @param {Parse.GeoPoint} point the other Parse.GeoPoint.
              +   * @returns {number}
              +   */
              +  radiansTo(point: ParseGeoPoint): number;
              +  /**
              +   * Returns the distance from this GeoPoint to another in kilometers.
              +   *
              +   * @param {Parse.GeoPoint} point the other Parse.GeoPoint.
              +   * @returns {number}
              +   */
              +  kilometersTo(point: ParseGeoPoint): number;
              +  /**
              +   * Returns the distance from this GeoPoint to another in miles.
              +   *
              +   * @param {Parse.GeoPoint} point the other Parse.GeoPoint.
              +   * @returns {number}
              +   */
              +  milesTo(point: ParseGeoPoint): number;
              +  static _validate(latitude: number, longitude: number): void;
              +  /**
              +   * Creates a GeoPoint with the user's current location, if available.
              +   *
              +   * @param {object} options The options.
              +   * @param {boolean} [options.enableHighAccuracy] A boolean value that indicates the application would like to receive the best possible results.
              +   *  If true and if the device is able to provide a more accurate position, it will do so.
              +   *  Note that this can result in slower response times or increased power consumption (with a GPS chip on a mobile device for example).
              +   *  On the other hand, if false, the device can take the liberty to save resources by responding more quickly and/or using less power. Default: false.
              +   * @param {number} [options.timeout] A positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position.
              +   *  The default value is Infinity, meaning that getCurrentPosition() won't return until the position is available.
              +   * @param {number} [options.maximumAge] A positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return.
              +   *  If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position.
              +   *  If set to Infinity the device must return a cached position regardless of its age. Default: 0.
              +   * @static
              +   * @returns {Promise} User's current location
              +   */
              +  static current(options: any): Promise;
               }
               export default ParseGeoPoint;
              diff --git a/types/ParseHooks.d.ts b/types/ParseHooks.d.ts
              index e854b0d76..525af90dc 100644
              --- a/types/ParseHooks.d.ts
              +++ b/types/ParseHooks.d.ts
              @@ -1,26 +1,38 @@
              -export type HookDeclaration = {
              -    functionName: string;
              -    url: string;
              -} | {
              -    className: string;
              -    triggerName: string;
              -    url: string;
              -};
              -export type HookDeleteArg = {
              -    functionName: string;
              -} | {
              -    className: string;
              -    triggerName: string;
              -};
              +export type HookDeclaration =
              +  | {
              +      functionName: string;
              +      url: string;
              +    }
              +  | {
              +      className: string;
              +      triggerName: string;
              +      url: string;
              +    };
              +export type HookDeleteArg =
              +  | {
              +      functionName: string;
              +    }
              +  | {
              +      className: string;
              +      triggerName: string;
              +    };
               export declare function getFunctions(): Promise;
               export declare function getTriggers(): Promise;
               export declare function getFunction(name: string): Promise;
               export declare function getTrigger(className: string, triggerName: string): Promise;
               export declare function createFunction(functionName: string, url: string): Promise;
              -export declare function createTrigger(className: string, triggerName: string, url: string): Promise;
              +export declare function createTrigger(
              +  className: string,
              +  triggerName: string,
              +  url: string
              +): Promise;
               export declare function create(hook: HookDeclaration): Promise;
               export declare function updateFunction(functionName: string, url: string): Promise;
              -export declare function updateTrigger(className: string, triggerName: string, url: string): Promise;
              +export declare function updateTrigger(
              +  className: string,
              +  triggerName: string,
              +  url: string
              +): Promise;
               export declare function update(hook: HookDeclaration): Promise;
               export declare function removeFunction(functionName: string): Promise;
               export declare function removeTrigger(className: string, triggerName: string): Promise;
              diff --git a/types/ParseInstallation.d.ts b/types/ParseInstallation.d.ts
              index 2f07cd594..1743dce1d 100644
              --- a/types/ParseInstallation.d.ts
              +++ b/types/ParseInstallation.d.ts
              @@ -1,12 +1,12 @@
               import ParseObject from './ParseObject';
               import type { AttributeMap } from './ObjectStateMutations';
               type DeviceInterface = {
              -    IOS: string;
              -    MACOS: string;
              -    TVOS: string;
              -    FCM: string;
              -    ANDROID: string;
              -    WEB: string;
              +  IOS: string;
              +  MACOS: string;
              +  TVOS: string;
              +  FCM: string;
              +  ANDROID: string;
              +  WEB: string;
               };
               /**
                * Parse.Installation is a local representation of installation data that can be saved and retrieved from the Parse cloud.
              @@ -20,161 +20,161 @@ type DeviceInterface = {
                * @alias Parse.Installation
                */
               declare class ParseInstallation extends ParseObject {
              -    /**
              -     * @param {object} attributes The initial set of data to store in the object.
              -     */
              -    constructor(attributes?: AttributeMap);
              -    /**
              -     * A unique identifier for this installation’s client application. In iOS, this is the Bundle Identifier.
              -     *
              -     * @property {string} appIdentifier
              -     * @static
              -     * @returns {string}
              -     */
              -    get appIdentifier(): any;
              -    /**
              -     * The version string of the client application to which this installation belongs.
              -     *
              -     * @property {string} appVersion
              -     * @static
              -     * @returns {string}
              -     */
              -    get appVersion(): any;
              -    /**
              -     * The display name of the client application to which this installation belongs.
              -     *
              -     * @property {string} appName
              -     * @static
              -     * @returns {string}
              -     */
              -    get appName(): any;
              -    /**
              -     * The current value of the icon badge for iOS apps.
              -     * Changes to this value on the server will be used
              -     * for future badge-increment push notifications.
              -     *
              -     * @property {number} badge
              -     * @static
              -     * @returns {number}
              -     */
              -    get badge(): any;
              -    /**
              -     * An array of the channels to which a device is currently subscribed.
              -     *
              -     * @property {string[]} channels
              -     * @static
              -     * @returns {string[]}
              -     */
              -    get channels(): any;
              -    /**
              -     * Token used to deliver push notifications to the device.
              -     *
              -     * @property {string} deviceToken
              -     * @static
              -     * @returns {string}
              -     */
              -    get deviceToken(): any;
              -    /**
              -     * The type of device, “ios”, “android”, “web”, etc.
              -     *
              -     * @property {string} deviceType
              -     * @static
              -     * @returns {string}
              -     */
              -    get deviceType(): any;
              -    /**
              -     * Gets the GCM sender identifier for this installation
              -     *
              -     * @property {string} GCMSenderId
              -     * @static
              -     * @returns {string}
              -     */
              -    get GCMSenderId(): any;
              -    /**
              -     * Universally Unique Identifier (UUID) for the device used by Parse. It must be unique across all of an app’s installations.
              -     *
              -     * @property {string} installationId
              -     * @static
              -     * @returns {string}
              -     */
              -    get installationId(): any;
              -    /**
              -     * Gets the local identifier for this installation
              -     *
              -     * @property {string} localeIdentifier
              -     * @static
              -     * @returns {string}
              -     */
              -    get localeIdentifier(): any;
              -    /**
              -     * Gets the parse server version for this installation
              -     *
              -     * @property {string} parseVersion
              -     * @static
              -     * @returns {string}
              -     */
              -    get parseVersion(): any;
              -    /**
              -     * This field is reserved for directing Parse to the push delivery network to be used.
              -     *
              -     * @property {string} pushType
              -     * @static
              -     * @returns {string}
              -     */
              -    get pushType(): any;
              -    /**
              -     * Gets the time zone for this installation
              -     *
              -     * @property {string} timeZone
              -     * @static
              -     * @returns {string}
              -     */
              -    get timeZone(): any;
              -    /**
              -     * Returns the device types for used for Push Notifications.
              -     *
              -     * 
              -     * Parse.Installation.DEVICE_TYPES.IOS
              -     * Parse.Installation.DEVICE_TYPES.MACOS
              -     * Parse.Installation.DEVICE_TYPES.TVOS
              -     * Parse.Installation.DEVICE_TYPES.FCM
              -     * Parse.Installation.DEVICE_TYPES.ANDROID
              -     * Parse.Installation.DEVICE_TYPES.WEB
              -     * 
              ): Promise; - /** - * Wrap the default save behavior with functionality to update the local storage. - * If the installation is deleted on the server, retry saving a new installation. - * - * @param {...any} args - * @returns {Promise} - */ - save(...args: Array): Promise; - _markAllFieldsDirty(): void; - /** - * Get the current Parse.Installation from disk. If doesn't exists, create an new installation. - * - *
              -     * const installation = await Parse.Installation.currentInstallation();
              -     * installation.set('deviceToken', '123');
              -     * await installation.save();
              -     * 
              - * - * @returns {Promise} A promise that resolves to the local installation object. - */ - static currentInstallation(): Promise; + /** + * @param {object} attributes The initial set of data to store in the object. + */ + constructor(attributes?: AttributeMap); + /** + * A unique identifier for this installation’s client application. In iOS, this is the Bundle Identifier. + * + * @property {string} appIdentifier + * @static + * @returns {string} + */ + get appIdentifier(): any; + /** + * The version string of the client application to which this installation belongs. + * + * @property {string} appVersion + * @static + * @returns {string} + */ + get appVersion(): any; + /** + * The display name of the client application to which this installation belongs. + * + * @property {string} appName + * @static + * @returns {string} + */ + get appName(): any; + /** + * The current value of the icon badge for iOS apps. + * Changes to this value on the server will be used + * for future badge-increment push notifications. + * + * @property {number} badge + * @static + * @returns {number} + */ + get badge(): any; + /** + * An array of the channels to which a device is currently subscribed. + * + * @property {string[]} channels + * @static + * @returns {string[]} + */ + get channels(): any; + /** + * Token used to deliver push notifications to the device. + * + * @property {string} deviceToken + * @static + * @returns {string} + */ + get deviceToken(): any; + /** + * The type of device, “ios”, “android”, “web”, etc. + * + * @property {string} deviceType + * @static + * @returns {string} + */ + get deviceType(): any; + /** + * Gets the GCM sender identifier for this installation + * + * @property {string} GCMSenderId + * @static + * @returns {string} + */ + get GCMSenderId(): any; + /** + * Universally Unique Identifier (UUID) for the device used by Parse. It must be unique across all of an app’s installations. + * + * @property {string} installationId + * @static + * @returns {string} + */ + get installationId(): any; + /** + * Gets the local identifier for this installation + * + * @property {string} localeIdentifier + * @static + * @returns {string} + */ + get localeIdentifier(): any; + /** + * Gets the parse server version for this installation + * + * @property {string} parseVersion + * @static + * @returns {string} + */ + get parseVersion(): any; + /** + * This field is reserved for directing Parse to the push delivery network to be used. + * + * @property {string} pushType + * @static + * @returns {string} + */ + get pushType(): any; + /** + * Gets the time zone for this installation + * + * @property {string} timeZone + * @static + * @returns {string} + */ + get timeZone(): any; + /** + * Returns the device types for used for Push Notifications. + * + *
              +   * Parse.Installation.DEVICE_TYPES.IOS
              +   * Parse.Installation.DEVICE_TYPES.MACOS
              +   * Parse.Installation.DEVICE_TYPES.TVOS
              +   * Parse.Installation.DEVICE_TYPES.FCM
              +   * Parse.Installation.DEVICE_TYPES.ANDROID
              +   * Parse.Installation.DEVICE_TYPES.WEB
              +   * 
              ): Promise; + /** + * Wrap the default save behavior with functionality to update the local storage. + * If the installation is deleted on the server, retry saving a new installation. + * + * @param {...any} args + * @returns {Promise} + */ + save(...args: Array): Promise; + _markAllFieldsDirty(): void; + /** + * Get the current Parse.Installation from disk. If doesn't exists, create an new installation. + * + *
              +   * const installation = await Parse.Installation.currentInstallation();
              +   * installation.set('deviceToken', '123');
              +   * await installation.save();
              +   * 
              + * + * @returns {Promise} A promise that resolves to the local installation object. + */ + static currentInstallation(): Promise; } export default ParseInstallation; diff --git a/types/ParseObject.d.ts b/types/ParseObject.d.ts index 38dd2822a..abe5efc25 100644 --- a/types/ParseObject.d.ts +++ b/types/ParseObject.d.ts @@ -6,26 +6,26 @@ import ParseRelation from './ParseRelation'; import type { AttributeMap, OpsMap } from './ObjectStateMutations'; import type { RequestOptions, FullOptions } from './RESTController'; export type Pointer = { - __type: string; - className: string; - objectId?: string; - _localId?: string; + __type: string; + className: string; + objectId?: string; + _localId?: string; }; type SaveParams = { - method: string; - path: string; - body: AttributeMap; + method: string; + path: string; + body: AttributeMap; }; export type SaveOptions = FullOptions & { - cascadeSave?: boolean; - context?: AttributeMap; - batchSize?: number; + cascadeSave?: boolean; + context?: AttributeMap; + batchSize?: number; }; type FetchOptions = { - useMasterKey?: boolean; - sessionToken?: string; - include?: string | string[]; - context?: AttributeMap; + useMasterKey?: boolean; + sessionToken?: string; + include?: string | string[]; + context?: AttributeMap; }; /** * Creates a new model with defined attributes. @@ -46,972 +46,1012 @@ type FetchOptions = { * @alias Parse.Object */ declare class ParseObject { - /** - * @param {string} className The class name for the object - * @param {object} attributes The initial set of data to store in the object. - * @param {object} options The options for this object instance. - * @param {boolean} [options.ignoreValidation=false] Set to `true` ignore any attribute validation errors. - */ - constructor(className?: string | { - className: string; - [attr: string]: any; - }, attributes?: { - [attr: string]: any; - }, options?: { - ignoreValidation: boolean; - }); - /** - * The ID of this object, unique within its class. - * - * @property {string} id - */ - id?: string; - _localId?: string; - _objCount: number; - className: string; - get attributes(): AttributeMap; - /** - * The first time this object was saved on the server. - * - * @property {Date} createdAt - * @returns {Date} - */ - get createdAt(): Date | undefined; - /** - * The last time this object was updated on the server. - * - * @property {Date} updatedAt - * @returns {Date} - */ - get updatedAt(): Date | undefined; - /** - * Returns a local or server Id used uniquely identify this object - * - * @returns {string} - */ - _getId(): string; - /** - * Returns a unique identifier used to pull data from the State Controller. - * - * @returns {Parse.Object|object} - */ - _getStateIdentifier(): ParseObject | { + /** + * @param {string} className The class name for the object + * @param {object} attributes The initial set of data to store in the object. + * @param {object} options The options for this object instance. + * @param {boolean} [options.ignoreValidation] Set to `true` ignore any attribute validation errors. + */ + constructor( + className?: + | string + | { + className: string; + [attr: string]: any; + }, + attributes?: { + [attr: string]: any; + }, + options?: { + ignoreValidation: boolean; + } + ); + /** + * The ID of this object, unique within its class. + * + * @property {string} id + */ + id?: string; + _localId?: string; + _objCount: number; + className: string; + get attributes(): AttributeMap; + /** + * The first time this object was saved on the server. + * + * @property {Date} createdAt + * @returns {Date} + */ + get createdAt(): Date | undefined; + /** + * The last time this object was updated on the server. + * + * @property {Date} updatedAt + * @returns {Date} + */ + get updatedAt(): Date | undefined; + /** + * Returns a local or server Id used uniquely identify this object + * + * @returns {string} + */ + _getId(): string; + /** + * Returns a unique identifier used to pull data from the State Controller. + * + * @returns {Parse.Object|object} + */ + _getStateIdentifier(): + | ParseObject + | { id: string; className: string; - }; - _getServerData(): AttributeMap; - _clearServerData(): void; - _getPendingOps(): Array; - /** - * @param {Array} [keysToClear] - if specified, only ops matching - * these fields will be cleared - */ - _clearPendingOps(keysToClear?: Array): void; - _getDirtyObjectAttributes(): AttributeMap; - _toFullJSON(seen?: Array, offline?: boolean): AttributeMap; - _getSaveJSON(): AttributeMap; - _getSaveParams(): SaveParams; - _finishFetch(serverData: AttributeMap): void; - _setExisted(existed: boolean): void; - _migrateId(serverId: string): void; - _handleSaveResponse(response: AttributeMap, status: number): void; - _handleSaveError(): void; - static _getClassMap(): {}; - initialize(): void; - /** - * Returns a JSON version of the object suitable for saving to Parse. - * - * @param seen - * @param offline - * @returns {object} - */ - toJSON(seen: Array | void, offline?: boolean): AttributeMap; - /** - * Determines whether this ParseObject is equal to another ParseObject - * - * @param {object} other - An other object ot compare - * @returns {boolean} - */ - equals(other: any): boolean; - /** - * Returns true if this object has been modified since its last - * save/refresh. If an attribute is specified, it returns true only if that - * particular attribute has been modified since the last save/refresh. - * - * @param {string} attr An attribute name (optional). - * @returns {boolean} - */ - dirty(attr?: string): boolean; - /** - * Returns an array of keys that have been modified since last save/refresh - * - * @returns {string[]} - */ - dirtyKeys(): Array; - /** - * Returns true if the object has been fetched. - * - * @returns {boolean} - */ - isDataAvailable(): boolean; - /** - * Gets a Pointer referencing this Object. - * - * @returns {Pointer} - */ - toPointer(): Pointer; - /** - * Gets a Pointer referencing this Object. - * - * @returns {Pointer} - */ - toOfflinePointer(): Pointer; - /** - * Gets the value of an attribute. - * - * @param {string} attr The string name of an attribute. - * @returns {*} - */ - get(attr: string): any; - /** - * Gets a relation on the given class for the attribute. - * - * @param {string} attr The attribute to get the relation for. - * @returns {Parse.Relation} - */ - relation(attr: string): ParseRelation; - /** - * Gets the HTML-escaped value of an attribute. - * - * @param {string} attr The string name of an attribute. - * @returns {string} - */ - escape(attr: string): string; - /** - * Returns true if the attribute contains a value that is not - * null or undefined. - * - * @param {string} attr The string name of the attribute. - * @returns {boolean} - */ - has(attr: string): boolean; - /** - * Sets a hash of model attributes on the object. - * - *

              You can call it with an object containing keys and values, with one - * key and value, or dot notation. For example:

              -     *   gameTurn.set({
              -     *     player: player1,
              -     *     diceRoll: 2
              -     *   }, {
              -     *     error: function(gameTurnAgain, error) {
              -     *       // The set failed validation.
              -     *     }
              -     *   });
              -     *
              -     *   game.set("currentPlayer", player2, {
              -     *     error: function(gameTurnAgain, error) {
              -     *       // The set failed validation.
              -     *     }
              -     *   });
              -     *
              -     *   game.set("finished", true);

              - * - * game.set("player.score", 10);

              - * - * @param {(string|object)} key The key to set. - * @param {(string|object)} value The value to give it. - * @param {object} options A set of options for the set. - * The only supported option is error. - * @returns {(ParseObject|boolean)} true if the set succeeded. - */ - set(key: any, value?: any, options?: any): ParseObject | boolean; - /** - * Remove an attribute from the model. This is a noop if the attribute doesn't - * exist. - * - * @param {string} attr The string name of an attribute. - * @param options - * @returns {(ParseObject | boolean)} - */ - unset(attr: string, options?: { - [opt: string]: any; - }): ParseObject | boolean; - /** - * Atomically increments the value of the given attribute the next time the - * object is saved. If no amount is specified, 1 is used by default. - * - * @param attr {String} The key. - * @param amount {Number} The amount to increment by (optional). - * @returns {(ParseObject|boolean)} - */ - increment(attr: string, amount?: number): ParseObject | boolean; - /** - * Atomically decrements the value of the given attribute the next time the - * object is saved. If no amount is specified, 1 is used by default. - * - * @param attr {String} The key. - * @param amount {Number} The amount to decrement by (optional). - * @returns {(ParseObject | boolean)} - */ - decrement(attr: string, amount?: number): ParseObject | boolean; - /** - * Atomically add an object to the end of the array associated with a given - * key. - * - * @param attr {String} The key. - * @param item {} The item to add. - * @returns {(ParseObject | boolean)} - */ - add(attr: string, item: any): ParseObject | boolean; - /** - * Atomically add the objects to the end of the array associated with a given - * key. - * - * @param attr {String} The key. - * @param items {Object[]} The items to add. - * @returns {(ParseObject | boolean)} - */ - addAll(attr: string, items: Array): ParseObject | boolean; - /** - * Atomically add an object to the array associated with a given key, only - * if it is not already present in the array. The position of the insert is - * not guaranteed. - * - * @param attr {String} The key. - * @param item {} The object to add. - * @returns {(ParseObject | boolean)} - */ - addUnique(attr: string, item: any): ParseObject | boolean; - /** - * Atomically add the objects to the array associated with a given key, only - * if it is not already present in the array. The position of the insert is - * not guaranteed. - * - * @param attr {String} The key. - * @param items {Object[]} The objects to add. - * @returns {(ParseObject | boolean)} - */ - addAllUnique(attr: string, items: Array): ParseObject | boolean; - /** - * Atomically remove all instances of an object from the array associated - * with a given key. - * - * @param attr {String} The key. - * @param item {} The object to remove. - * @returns {(ParseObject | boolean)} - */ - remove(attr: string, item: any): ParseObject | boolean; - /** - * Atomically remove all instances of the objects from the array associated - * with a given key. - * - * @param attr {String} The key. - * @param items {Object[]} The object to remove. - * @returns {(ParseObject | boolean)} - */ - removeAll(attr: string, items: Array): ParseObject | boolean; - /** - * Returns an instance of a subclass of Parse.Op describing what kind of - * modification has been performed on this field since the last time it was - * saved. For example, after calling object.increment("x"), calling - * object.op("x") would return an instance of Parse.Op.Increment. - * - * @param attr {String} The key. - * @returns {Parse.Op | undefined} The operation, or undefined if none. - */ - op(attr: string): Op | undefined; - /** - * Creates a new model with identical attributes to this one. - * - * @returns {Parse.Object} - */ - clone(): any; - /** - * Creates a new instance of this object. Not to be confused with clone() - * - * @returns {Parse.Object} - */ - newInstance(): any; - /** - * Returns true if this object has never been saved to Parse. - * - * @returns {boolean} - */ - isNew(): boolean; - /** - * Returns true if this object was created by the Parse server when the - * object might have already been there (e.g. in the case of a Facebook - * login) - * - * @returns {boolean} - */ - existed(): boolean; - /** - * Returns true if this object exists on the Server - * - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              - * @returns {Promise} A boolean promise that is fulfilled if object exists. - */ - exists(options?: RequestOptions): Promise; - /** - * Checks if the model is currently in a valid state. - * - * @returns {boolean} - */ - isValid(): boolean; - /** - * You should not call this function directly unless you subclass - * Parse.Object, in which case you can override this method - * to provide additional validation on set and - * save. Your implementation should return - * - * @param {object} attrs The current data to validate. - * @returns {Parse.Error|boolean} False if the data is valid. An error object otherwise. - * @see Parse.Object#set - */ - validate(attrs: AttributeMap): ParseError | boolean; - /** - * Returns the ACL for this object. - * - * @returns {Parse.ACL|null} An instance of Parse.ACL. - * @see Parse.Object#get - */ - getACL(): ParseACL | null; - /** - * Sets the ACL to be used for this object. - * - * @param {Parse.ACL} acl An instance of Parse.ACL. - * @param {object} options - * @returns {(ParseObject | boolean)} Whether the set passed validation. - * @see Parse.Object#set - */ - setACL(acl: ParseACL, options?: any): ParseObject | boolean; - /** - * Clears any (or specific) changes to this object made since the last call to save() - * - * @param {string} [keys] - specify which fields to revert - */ - revert(...keys: Array): void; - /** - * Clears all attributes on a model - * - * @returns {(ParseObject | boolean)} - */ - clear(): ParseObject | boolean; - /** - * Fetch the model from the server. If the server's representation of the - * model differs from its current attributes, they will be overriden. - * - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              • include: The name(s) of the key(s) to include. Can be a string, an array of strings, - * or an array of array of strings. - *
              • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. - *
              - * @returns {Promise} A promise that is fulfilled when the fetch - * completes. - */ - fetch(options: FetchOptions): Promise; - /** - * Fetch the model from the server. If the server's representation of the - * model differs from its current attributes, they will be overriden. - * - * Includes nested Parse.Objects for the provided key. You can use dot - * notation to specify which fields in the included object are also fetched. - * - * @param {string | Array>} keys The name(s) of the key(s) to include. - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              - * @returns {Promise} A promise that is fulfilled when the fetch - * completes. - */ - fetchWithInclude(keys: string | Array>, options: RequestOptions): Promise; - /** - * Saves this object to the server at some unspecified time in the future, - * even if Parse is currently inaccessible. - * - * Use this when you may not have a solid network connection, and don't need to know when the save completes. - * If there is some problem with the object such that it can't be saved, it will be silently discarded. - * - * Objects saved with this method will be stored locally in an on-disk cache until they can be delivered to Parse. - * They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is - * available. Objects saved this way will persist even after the app is closed, in which case they will be sent the - * next time the app is opened. - * - * @param {object} [options] - * Used to pass option parameters to method if arg1 and arg2 were both passed as strings. - * Valid options are: - *
                - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              • cascadeSave: If `false`, nested objects will not be saved (default is `true`). - *
              • context: A dictionary that is accessible in Cloud Code `beforeSave` and `afterSave` triggers. - *
              - * @returns {Promise} A promise that is fulfilled when the save - * completes. - */ - saveEventually(options: SaveOptions): Promise; - /** - * Set a hash of model attributes, and save the model to the server. - * updatedAt will be updated when the request returns. - * You can either call it as:
              -     * object.save();
              - * or
              -     * object.save(attrs);
              - * or
              -     * object.save(null, options);
              - * or
              -     * object.save(attrs, options);
              - * or
              -     * object.save(key, value);
              - * or
              -     * object.save(key, value, options);
              - * - * Example 1:
              -     * gameTurn.save({
              -     * player: "Jake Cutter",
              -     * diceRoll: 2
              -     * }).then(function(gameTurnAgain) {
              -     * // The save was successful.
              -     * }, function(error) {
              -     * // The save failed.  Error is an instance of Parse.Error.
              -     * });
              - * - * Example 2:
              -     * gameTurn.save("player", "Jake Cutter");
              - * - * @param {string | object | null} [arg1] - * Valid options are:
                - *
              • `Object` - Key/value pairs to update on the object.
              • - *
              • `String` Key - Key of attribute to update (requires arg2 to also be string)
              • - *
              • `null` - Passing null for arg1 allows you to save the object with options passed in arg2.
              • - *
              - * @param {string | object} [arg2] - *
                - *
              • `String` Value - If arg1 was passed as a key, arg2 is the value that should be set on that key.
              • - *
              • `Object` Options - Valid options are: - *
                  - *
                • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
                • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
                • cascadeSave: If `false`, nested objects will not be saved (default is `true`). - *
                • context: A dictionary that is accessible in Cloud Code `beforeSave` and `afterSave` triggers. - *
                - *
              • - *
              - * @param {object} [arg3] - * Used to pass option parameters to method if arg1 and arg2 were both passed as strings. - * Valid options are: - *
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              • cascadeSave: If `false`, nested objects will not be saved (default is `true`). - *
              • context: A dictionary that is accessible in Cloud Code `beforeSave` and `afterSave` triggers. - *
              - * @returns {Promise} A promise that is fulfilled when the save - * completes. - */ - save(arg1: undefined | string | { - [attr: string]: any; - } | null, arg2: SaveOptions | any, arg3?: SaveOptions): Promise; - /** - * Deletes this object from the server at some unspecified time in the future, - * even if Parse is currently inaccessible. - * - * Use this when you may not have a solid network connection, - * and don't need to know when the delete completes. If there is some problem with the object - * such that it can't be deleted, the request will be silently discarded. - * - * Delete instructions made with this method will be stored locally in an on-disk cache until they can be transmitted - * to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection - * is available. Delete requests will persist even after the app is closed, in which case they will be sent the - * next time the app is opened. - * - * @param {object} [options] - * Valid options are:
                - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              • context: A dictionary that is accessible in Cloud Code `beforeDelete` and `afterDelete` triggers. - *
              - * @returns {Promise} A promise that is fulfilled when the destroy - * completes. - */ - destroyEventually(options: RequestOptions): Promise; - /** - * Destroy this model on the server if it was already persisted. - * - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              • context: A dictionary that is accessible in Cloud Code `beforeDelete` and `afterDelete` triggers. - *
              - * @returns {Promise} A promise that is fulfilled when the destroy - * completes. - */ - destroy(options: RequestOptions): Promise; - /** - * Asynchronously stores the object and every object it points to in the local datastore, - * recursively, using a default pin name: _default. - * - * If those other objects have not been fetched from Parse, they will not be stored. - * However, if they have changed data, all the changes will be retained. - * - *
              -     * await object.pin();
              -     * 
              - * - * To retrieve object: - * query.fromLocalDatastore() or query.fromPin() - * - * @returns {Promise} A promise that is fulfilled when the pin completes. - */ - pin(): Promise; - /** - * Asynchronously removes the object and every object it points to in the local datastore, - * recursively, using a default pin name: _default. - * - *
              -     * await object.unPin();
              -     * 
              - * - * @returns {Promise} A promise that is fulfilled when the unPin completes. - */ - unPin(): Promise; - /** - * Asynchronously returns if the object is pinned - * - *
              -     * const isPinned = await object.isPinned();
              -     * 
              - * - * @returns {Promise} A boolean promise that is fulfilled if object is pinned. - */ - isPinned(): Promise; - /** - * Asynchronously stores the objects and every object they point to in the local datastore, recursively. - * - * If those other objects have not been fetched from Parse, they will not be stored. - * However, if they have changed data, all the changes will be retained. - * - *
              -     * await object.pinWithName(name);
              -     * 
              - * - * To retrieve object: - * query.fromLocalDatastore() or query.fromPinWithName(name) - * - * @param {string} name Name of Pin. - * @returns {Promise} A promise that is fulfilled when the pin completes. - */ - pinWithName(name: string): Promise; - /** - * Asynchronously removes the object and every object it points to in the local datastore, recursively. - * - *
              -     * await object.unPinWithName(name);
              -     * 
              - * - * @param {string} name Name of Pin. - * @returns {Promise} A promise that is fulfilled when the unPin completes. - */ - unPinWithName(name: string): Promise; - /** - * Asynchronously loads data from the local datastore into this object. - * - *
              -     * await object.fetchFromLocalDatastore();
              -     * 
              - * - * You can create an unfetched pointer with Parse.Object.createWithoutData() - * and then call fetchFromLocalDatastore() on it. - * - * @returns {Promise} A promise that is fulfilled when the fetch completes. - */ - fetchFromLocalDatastore(): Promise; - static _clearAllState(): void; - /** - * Fetches the given list of Parse.Object. - * If any error is encountered, stops and calls the error handler. - * - *
              -     *   Parse.Object.fetchAll([object1, object2, ...])
              -     *    .then((list) => {
              -     *      // All the objects were fetched.
              -     *    }, (error) => {
              -     *      // An error occurred while fetching one of the objects.
              -     *    });
              -     * 
              - * - * @param {Array} list A list of Parse.Object. - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              • include: The name(s) of the key(s) to include. Can be a string, an array of strings, - * or an array of array of strings. - *
              - * @static - * @returns {Parse.Object[]} - */ - static fetchAll(list: Array, options?: RequestOptions): Promise; - /** - * Fetches the given list of Parse.Object. - * - * Includes nested Parse.Objects for the provided key. You can use dot - * notation to specify which fields in the included object are also fetched. - * - * If any error is encountered, stops and calls the error handler. - * - *
              -     *   Parse.Object.fetchAllWithInclude([object1, object2, ...], [pointer1, pointer2, ...])
              -     *    .then((list) => {
              -     *      // All the objects were fetched.
              -     *    }, (error) => {
              -     *      // An error occurred while fetching one of the objects.
              -     *    });
              -     * 
              - * - * @param {Array} list A list of Parse.Object. - * @param {string | Array>} keys The name(s) of the key(s) to include. - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              - * @static - * @returns {Parse.Object[]} - */ - static fetchAllWithInclude(list: Array, keys: string | Array>, options: RequestOptions): Promise; - /** - * Fetches the given list of Parse.Object if needed. - * If any error is encountered, stops and calls the error handler. - * - * Includes nested Parse.Objects for the provided key. You can use dot - * notation to specify which fields in the included object are also fetched. - * - * If any error is encountered, stops and calls the error handler. - * - *
              -     *   Parse.Object.fetchAllIfNeededWithInclude([object1, object2, ...], [pointer1, pointer2, ...])
              -     *    .then((list) => {
              -     *      // All the objects were fetched.
              -     *    }, (error) => {
              -     *      // An error occurred while fetching one of the objects.
              -     *    });
              -     * 
              - * - * @param {Array} list A list of Parse.Object. - * @param {string | Array>} keys The name(s) of the key(s) to include. - * @param {object} options - * Valid options are:
                - *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
              • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
              - * @static - * @returns {Parse.Object[]} - */ - static fetchAllIfNeededWithInclude(list: Array, keys: string | Array>, options: RequestOptions): Promise; - /** - * Fetches the given list of Parse.Object if needed. - * If any error is encountered, stops and calls the error handler. - * - *
              -     *   Parse.Object.fetchAllIfNeeded([object1, ...])
              -     *    .then((list) => {
              -     *      // Objects were fetched and updated.
              -     *    }, (error) => {
              -     *      // An error occurred while fetching one of the objects.
              -     *    });
              -     * 
              - * - * @param {Array} list A list of Parse.Object. - * @param {object} options - * @static - * @returns {Parse.Object[]} - */ - static fetchAllIfNeeded(list: Array, options: FetchOptions): Promise; - static handleIncludeOptions(options: { - include?: string | string[]; - }): any[]; - /** - * Destroy the given list of models on the server if it was already persisted. - * - *

              Unlike saveAll, if an error occurs while deleting an individual model, - * this method will continue trying to delete the rest of the models if - * possible, except in the case of a fatal error like a connection error. - * - *

              In particular, the Parse.Error object returned in the case of error may - * be one of two types: - * - *

                - *
              • A Parse.Error.AGGREGATE_ERROR. This object's "errors" property is an - * array of other Parse.Error objects. Each error object in this array - * has an "object" property that references the object that could not be - * deleted (for instance, because that object could not be found).
              • - *
              • A non-aggregate Parse.Error. This indicates a serious error that - * caused the delete operation to be aborted partway through (for - * instance, a connection failure in the middle of the delete).
              • - *
              - * - *
              -     * Parse.Object.destroyAll([object1, object2, ...])
              -     * .then((list) => {
              -     * // All the objects were deleted.
              -     * }, (error) => {
              -     * // An error occurred while deleting one or more of the objects.
              -     * // If this is an aggregate error, then we can inspect each error
              -     * // object individually to determine the reason why a particular
              -     * // object was not deleted.
              -     * if (error.code === Parse.Error.AGGREGATE_ERROR) {
              -     * for (var i = 0; i < error.errors.length; i++) {
              -     * console.log("Couldn't delete " + error.errors[i].object.id +
              -     * "due to " + error.errors[i].message);
              -     * }
              -     * } else {
              -     * console.log("Delete aborted because of " + error.message);
              -     * }
              -     * });
              -     * 
              - * - * @param {Array} list A list of Parse.Object. - * @param {object} options - * @static - * @returns {Promise} A promise that is fulfilled when the destroyAll - * completes. - */ - static destroyAll(list: Array, options?: SaveOptions): Promise; - /** - * Saves the given list of Parse.Object. - * If any error is encountered, stops and calls the error handler. - * - *
              -     * Parse.Object.saveAll([object1, object2, ...])
              -     * .then((list) => {
              -     * // All the objects were saved.
              -     * }, (error) => {
              -     * // An error occurred while saving one of the objects.
              -     * });
              -     * 
              - * - * @param {Array} list A list of Parse.Object. - * @param {object} options - * @static - * @returns {Parse.Object[]} - */ - static saveAll(list: Array, options?: SaveOptions): Promise; - /** - * Creates a reference to a subclass of Parse.Object with the given id. This - * does not exist on Parse.Object, only on subclasses. - * - *

              A shortcut for:

              -     *  var Foo = Parse.Object.extend("Foo");
              -     *  var pointerToFoo = new Foo();
              -     *  pointerToFoo.id = "myObjectId";
              -     * 
              - * - * @param {string} id The ID of the object to create a reference to. - * @static - * @returns {Parse.Object} A Parse.Object reference. - */ - static createWithoutData(id: string): ParseObject; - /** - * Creates a new instance of a Parse Object from a JSON representation. - * - * @param {object} json The JSON map of the Object's data - * @param {boolean} override In single instance mode, all old server data - * is overwritten if this is set to true - * @param {boolean} dirty Whether the Parse.Object should set JSON keys to dirty - * @static - * @returns {Parse.Object} A Parse.Object reference - */ - static fromJSON(json: any, override?: boolean, dirty?: boolean): ParseObject; - /** - * Registers a subclass of Parse.Object with a specific class name. - * When objects of that class are retrieved from a query, they will be - * instantiated with this subclass. - * This is only necessary when using ES6 subclassing. - * - * @param {string} className The class name of the subclass - * @param {Function} constructor The subclass - */ - static registerSubclass(className: string, constructor: any): void; - /** - * Unegisters a subclass of Parse.Object with a specific class name. - * - * @param {string} className The class name of the subclass - */ - static unregisterSubclass(className: string): void; - /** - * Creates a new subclass of Parse.Object for the given Parse class name. - * - *

              Every extension of a Parse class will inherit from the most recent - * previous extension of that class. When a Parse.Object is automatically - * created by parsing JSON, it will use the most recent extension of that - * class.

              - * - *

              You should call either:

              -     *     var MyClass = Parse.Object.extend("MyClass", {
              -     *         Instance methods,
              -     *         initialize: function(attrs, options) {
              -     *             this.someInstanceProperty = [],
              -     *             Other instance properties
              -     *         }
              -     *     }, {
              -     *         Class properties
              -     *     });
              - * or, for Backbone compatibility:
              -     *     var MyClass = Parse.Object.extend({
              -     *         className: "MyClass",
              -     *         Instance methods,
              -     *         initialize: function(attrs, options) {
              -     *             this.someInstanceProperty = [],
              -     *             Other instance properties
              -     *         }
              -     *     }, {
              -     *         Class properties
              -     *     });

              - * - * @param {string} className The name of the Parse class backing this model. - * @param {object} protoProps Instance properties to add to instances of the - * class returned from this method. - * @param {object} classProps Class properties to add the class returned from - * this method. - * @returns {Parse.Object} A new subclass of Parse.Object. - */ - static extend(className: any, protoProps: any, classProps: any): any; - /** - * Enable single instance objects, where any local objects with the same Id - * share the same attributes, and stay synchronized with each other. - * This is disabled by default in server environments, since it can lead to - * security issues. - * - * @static - */ - static enableSingleInstance(): void; - /** - * Disable single instance objects, where any local objects with the same Id - * share the same attributes, and stay synchronized with each other. - * When disabled, you can have two instances of the same object in memory - * without them sharing attributes. - * - * @static - */ - static disableSingleInstance(): void; - /** - * Asynchronously stores the objects and every object they point to in the local datastore, - * recursively, using a default pin name: _default. - * - * If those other objects have not been fetched from Parse, they will not be stored. - * However, if they have changed data, all the changes will be retained. - * - *
              -     * await Parse.Object.pinAll([...]);
              -     * 
              - * - * To retrieve object: - * query.fromLocalDatastore() or query.fromPin() - * - * @param {Array} objects A list of Parse.Object. - * @returns {Promise} A promise that is fulfilled when the pin completes. - * @static - */ - static pinAll(objects: Array): Promise; - /** - * Asynchronously stores the objects and every object they point to in the local datastore, recursively. - * - * If those other objects have not been fetched from Parse, they will not be stored. - * However, if they have changed data, all the changes will be retained. - * - *
              -     * await Parse.Object.pinAllWithName(name, [obj1, obj2, ...]);
              -     * 
              - * - * To retrieve object: - * query.fromLocalDatastore() or query.fromPinWithName(name) - * - * @param {string} name Name of Pin. - * @param {Array} objects A list of Parse.Object. - * @returns {Promise} A promise that is fulfilled when the pin completes. - * @static - */ - static pinAllWithName(name: string, objects: Array): Promise; - /** - * Asynchronously removes the objects and every object they point to in the local datastore, - * recursively, using a default pin name: _default. - * - *
              -     * await Parse.Object.unPinAll([...]);
              -     * 
              - * - * @param {Array} objects A list of Parse.Object. - * @returns {Promise} A promise that is fulfilled when the unPin completes. - * @static - */ - static unPinAll(objects: Array): Promise; - /** - * Asynchronously removes the objects and every object they point to in the local datastore, recursively. - * - *
              -     * await Parse.Object.unPinAllWithName(name, [obj1, obj2, ...]);
              -     * 
              - * - * @param {string} name Name of Pin. - * @param {Array} objects A list of Parse.Object. - * @returns {Promise} A promise that is fulfilled when the unPin completes. - * @static - */ - static unPinAllWithName(name: string, objects: Array): Promise; - /** - * Asynchronously removes all objects in the local datastore using a default pin name: _default. - * - *
              -     * await Parse.Object.unPinAllObjects();
              -     * 
              - * - * @returns {Promise} A promise that is fulfilled when the unPin completes. - * @static - */ - static unPinAllObjects(): Promise; - /** - * Asynchronously removes all objects with the specified pin name. - * Deletes the pin name also. - * - *
              -     * await Parse.Object.unPinAllObjectsWithName(name);
              -     * 
              - * - * @param {string} name Name of Pin. - * @returns {Promise} A promise that is fulfilled when the unPin completes. - * @static - */ - static unPinAllObjectsWithName(name: string): Promise; + }; + _getServerData(): AttributeMap; + _clearServerData(): void; + _getPendingOps(): Array; + /** + * @param {Array} [keysToClear] - if specified, only ops matching + * these fields will be cleared + */ + _clearPendingOps(keysToClear?: Array): void; + _getDirtyObjectAttributes(): AttributeMap; + _toFullJSON(seen?: Array, offline?: boolean): AttributeMap; + _getSaveJSON(): AttributeMap; + _getSaveParams(): SaveParams; + _finishFetch(serverData: AttributeMap): void; + _setExisted(existed: boolean): void; + _migrateId(serverId: string): void; + _handleSaveResponse(response: AttributeMap, status: number): void; + _handleSaveError(): void; + static _getClassMap(): AttributeMap; + initialize(): void; + /** + * Returns a JSON version of the object suitable for saving to Parse. + * + * @param seen + * @param offline + * @returns {object} + */ + toJSON(seen: Array | void, offline?: boolean): AttributeMap; + /** + * Determines whether this ParseObject is equal to another ParseObject + * + * @param {object} other - An other object ot compare + * @returns {boolean} + */ + equals(other: any): boolean; + /** + * Returns true if this object has been modified since its last + * save/refresh. If an attribute is specified, it returns true only if that + * particular attribute has been modified since the last save/refresh. + * + * @param {string} attr An attribute name (optional). + * @returns {boolean} + */ + dirty(attr?: string): boolean; + /** + * Returns an array of keys that have been modified since last save/refresh + * + * @returns {string[]} + */ + dirtyKeys(): Array; + /** + * Returns true if the object has been fetched. + * + * @returns {boolean} + */ + isDataAvailable(): boolean; + /** + * Gets a Pointer referencing this Object. + * + * @returns {Pointer} + */ + toPointer(): Pointer; + /** + * Gets a Pointer referencing this Object. + * + * @returns {Pointer} + */ + toOfflinePointer(): Pointer; + /** + * Gets the value of an attribute. + * + * @param {string} attr The string name of an attribute. + * @returns {*} + */ + get(attr: string): any; + /** + * Gets a relation on the given class for the attribute. + * + * @param {string} attr The attribute to get the relation for. + * @returns {Parse.Relation} + */ + relation(attr: string): ParseRelation; + /** + * Gets the HTML-escaped value of an attribute. + * + * @param {string} attr The string name of an attribute. + * @returns {string} + */ + escape(attr: string): string; + /** + * Returns true if the attribute contains a value that is not + * null or undefined. + * + * @param {string} attr The string name of the attribute. + * @returns {boolean} + */ + has(attr: string): boolean; + /** + * Sets a hash of model attributes on the object. + * + *

              You can call it with an object containing keys and values, with one + * key and value, or dot notation. For example:

              +   *   gameTurn.set({
              +   *     player: player1,
              +   *     diceRoll: 2
              +   *   }, {
              +   *     error: function(gameTurnAgain, error) {
              +   *       // The set failed validation.
              +   *     }
              +   *   });
              +   *
              +   *   game.set("currentPlayer", player2, {
              +   *     error: function(gameTurnAgain, error) {
              +   *       // The set failed validation.
              +   *     }
              +   *   });
              +   *
              +   *   game.set("finished", true);

              + * + * game.set("player.score", 10);

            + * + * @param {(string|object)} key The key to set. + * @param {(string|object)} value The value to give it. + * @param {object} options A set of options for the set. + * The only supported option is error. + * @returns {(ParseObject|boolean)} true if the set succeeded. + */ + set(key: any, value?: any, options?: any): ParseObject | boolean; + /** + * Remove an attribute from the model. This is a noop if the attribute doesn't + * exist. + * + * @param {string} attr The string name of an attribute. + * @param options + * @returns {(ParseObject | boolean)} + */ + unset( + attr: string, + options?: { + [opt: string]: any; + } + ): ParseObject | boolean; + /** + * Atomically increments the value of the given attribute the next time the + * object is saved. If no amount is specified, 1 is used by default. + * + * @param attr {String} The key. + * @param amount {Number} The amount to increment by (optional). + * @returns {(ParseObject|boolean)} + */ + increment(attr: string, amount?: number): ParseObject | boolean; + /** + * Atomically decrements the value of the given attribute the next time the + * object is saved. If no amount is specified, 1 is used by default. + * + * @param attr {String} The key. + * @param amount {Number} The amount to decrement by (optional). + * @returns {(ParseObject | boolean)} + */ + decrement(attr: string, amount?: number): ParseObject | boolean; + /** + * Atomically add an object to the end of the array associated with a given + * key. + * + * @param attr {String} The key. + * @param item {} The item to add. + * @returns {(ParseObject | boolean)} + */ + add(attr: string, item: any): ParseObject | boolean; + /** + * Atomically add the objects to the end of the array associated with a given + * key. + * + * @param attr {String} The key. + * @param items {Object[]} The items to add. + * @returns {(ParseObject | boolean)} + */ + addAll(attr: string, items: Array): ParseObject | boolean; + /** + * Atomically add an object to the array associated with a given key, only + * if it is not already present in the array. The position of the insert is + * not guaranteed. + * + * @param attr {String} The key. + * @param item {} The object to add. + * @returns {(ParseObject | boolean)} + */ + addUnique(attr: string, item: any): ParseObject | boolean; + /** + * Atomically add the objects to the array associated with a given key, only + * if it is not already present in the array. The position of the insert is + * not guaranteed. + * + * @param attr {String} The key. + * @param items {Object[]} The objects to add. + * @returns {(ParseObject | boolean)} + */ + addAllUnique(attr: string, items: Array): ParseObject | boolean; + /** + * Atomically remove all instances of an object from the array associated + * with a given key. + * + * @param attr {String} The key. + * @param item {} The object to remove. + * @returns {(ParseObject | boolean)} + */ + remove(attr: string, item: any): ParseObject | boolean; + /** + * Atomically remove all instances of the objects from the array associated + * with a given key. + * + * @param attr {String} The key. + * @param items {Object[]} The object to remove. + * @returns {(ParseObject | boolean)} + */ + removeAll(attr: string, items: Array): ParseObject | boolean; + /** + * Returns an instance of a subclass of Parse.Op describing what kind of + * modification has been performed on this field since the last time it was + * saved. For example, after calling object.increment("x"), calling + * object.op("x") would return an instance of Parse.Op.Increment. + * + * @param attr {String} The key. + * @returns {Parse.Op | undefined} The operation, or undefined if none. + */ + op(attr: string): Op | undefined; + /** + * Creates a new model with identical attributes to this one. + * + * @returns {Parse.Object} + */ + clone(): any; + /** + * Creates a new instance of this object. Not to be confused with clone() + * + * @returns {Parse.Object} + */ + newInstance(): any; + /** + * Returns true if this object has never been saved to Parse. + * + * @returns {boolean} + */ + isNew(): boolean; + /** + * Returns true if this object was created by the Parse server when the + * object might have already been there (e.g. in the case of a Facebook + * login) + * + * @returns {boolean} + */ + existed(): boolean; + /** + * Returns true if this object exists on the Server + * + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A boolean promise that is fulfilled if object exists. + */ + exists(options?: RequestOptions): Promise; + /** + * Checks if the model is currently in a valid state. + * + * @returns {boolean} + */ + isValid(): boolean; + /** + * You should not call this function directly unless you subclass + * Parse.Object, in which case you can override this method + * to provide additional validation on set and + * save. Your implementation should return + * + * @param {object} attrs The current data to validate. + * @returns {Parse.Error|boolean} False if the data is valid. An error object otherwise. + * @see Parse.Object#set + */ + validate(attrs: AttributeMap): ParseError | boolean; + /** + * Returns the ACL for this object. + * + * @returns {Parse.ACL|null} An instance of Parse.ACL. + * @see Parse.Object#get + */ + getACL(): ParseACL | null; + /** + * Sets the ACL to be used for this object. + * + * @param {Parse.ACL} acl An instance of Parse.ACL. + * @param {object} options + * @returns {(ParseObject | boolean)} Whether the set passed validation. + * @see Parse.Object#set + */ + setACL(acl: ParseACL, options?: any): ParseObject | boolean; + /** + * Clears any (or specific) changes to this object made since the last call to save() + * + * @param {string} [keys] - specify which fields to revert + */ + revert(...keys: Array): void; + /** + * Clears all attributes on a model + * + * @returns {(ParseObject | boolean)} + */ + clear(): ParseObject | boolean; + /** + * Fetch the model from the server. If the server's representation of the + * model differs from its current attributes, they will be overriden. + * + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • include: The name(s) of the key(s) to include. Can be a string, an array of strings, + * or an array of array of strings. + *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. + *
            + * @returns {Promise} A promise that is fulfilled when the fetch + * completes. + */ + fetch(options: FetchOptions): Promise; + /** + * Fetch the model from the server. If the server's representation of the + * model differs from its current attributes, they will be overriden. + * + * Includes nested Parse.Objects for the provided key. You can use dot + * notation to specify which fields in the included object are also fetched. + * + * @param {string | Array>} keys The name(s) of the key(s) to include. + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A promise that is fulfilled when the fetch + * completes. + */ + fetchWithInclude( + keys: string | Array>, + options: RequestOptions + ): Promise; + /** + * Saves this object to the server at some unspecified time in the future, + * even if Parse is currently inaccessible. + * + * Use this when you may not have a solid network connection, and don't need to know when the save completes. + * If there is some problem with the object such that it can't be saved, it will be silently discarded. + * + * Objects saved with this method will be stored locally in an on-disk cache until they can be delivered to Parse. + * They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection is + * available. Objects saved this way will persist even after the app is closed, in which case they will be sent the + * next time the app is opened. + * + * @param {object} [options] + * Used to pass option parameters to method if arg1 and arg2 were both passed as strings. + * Valid options are: + *
              + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • cascadeSave: If `false`, nested objects will not be saved (default is `true`). + *
            • context: A dictionary that is accessible in Cloud Code `beforeSave` and `afterSave` triggers. + *
            + * @returns {Promise} A promise that is fulfilled when the save + * completes. + */ + saveEventually(options: SaveOptions): Promise; + /** + * Set a hash of model attributes, and save the model to the server. + * updatedAt will be updated when the request returns. + * You can either call it as:
            +   * object.save();
            + * or
            +   * object.save(attrs);
            + * or
            +   * object.save(null, options);
            + * or
            +   * object.save(attrs, options);
            + * or
            +   * object.save(key, value);
            + * or
            +   * object.save(key, value, options);
            + * + * Example 1:
            +   * gameTurn.save({
            +   * player: "Jake Cutter",
            +   * diceRoll: 2
            +   * }).then(function(gameTurnAgain) {
            +   * // The save was successful.
            +   * }, function(error) {
            +   * // The save failed.  Error is an instance of Parse.Error.
            +   * });
            + * + * Example 2:
            +   * gameTurn.save("player", "Jake Cutter");
            + * + * @param {string | object | null} [arg1] + * Valid options are:
              + *
            • `Object` - Key/value pairs to update on the object.
            • + *
            • `String` Key - Key of attribute to update (requires arg2 to also be string)
            • + *
            • `null` - Passing null for arg1 allows you to save the object with options passed in arg2.
            • + *
            + * @param {string | object} [arg2] + *
              + *
            • `String` Value - If arg1 was passed as a key, arg2 is the value that should be set on that key.
            • + *
            • `Object` Options - Valid options are: + *
                + *
              • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
              • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
              • cascadeSave: If `false`, nested objects will not be saved (default is `true`). + *
              • context: A dictionary that is accessible in Cloud Code `beforeSave` and `afterSave` triggers. + *
              + *
            • + *
            + * @param {object} [arg3] + * Used to pass option parameters to method if arg1 and arg2 were both passed as strings. + * Valid options are: + *
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • cascadeSave: If `false`, nested objects will not be saved (default is `true`). + *
            • context: A dictionary that is accessible in Cloud Code `beforeSave` and `afterSave` triggers. + *
            + * @returns {Promise} A promise that is fulfilled when the save + * completes. + */ + save( + arg1: + | undefined + | string + | { + [attr: string]: any; + } + | null, + arg2: SaveOptions | any, + arg3?: SaveOptions + ): Promise; + /** + * Deletes this object from the server at some unspecified time in the future, + * even if Parse is currently inaccessible. + * + * Use this when you may not have a solid network connection, + * and don't need to know when the delete completes. If there is some problem with the object + * such that it can't be deleted, the request will be silently discarded. + * + * Delete instructions made with this method will be stored locally in an on-disk cache until they can be transmitted + * to Parse. They will be sent immediately if possible. Otherwise, they will be sent the next time a network connection + * is available. Delete requests will persist even after the app is closed, in which case they will be sent the + * next time the app is opened. + * + * @param {object} [options] + * Valid options are:
              + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • context: A dictionary that is accessible in Cloud Code `beforeDelete` and `afterDelete` triggers. + *
            + * @returns {Promise} A promise that is fulfilled when the destroy + * completes. + */ + destroyEventually(options: RequestOptions): Promise; + /** + * Destroy this model on the server if it was already persisted. + * + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • context: A dictionary that is accessible in Cloud Code `beforeDelete` and `afterDelete` triggers. + *
            + * @returns {Promise} A promise that is fulfilled when the destroy + * completes. + */ + destroy(options: RequestOptions): Promise; + /** + * Asynchronously stores the object and every object it points to in the local datastore, + * recursively, using a default pin name: _default. + * + * If those other objects have not been fetched from Parse, they will not be stored. + * However, if they have changed data, all the changes will be retained. + * + *
            +   * await object.pin();
            +   * 
            + * + * To retrieve object: + * query.fromLocalDatastore() or query.fromPin() + * + * @returns {Promise} A promise that is fulfilled when the pin completes. + */ + pin(): Promise; + /** + * Asynchronously removes the object and every object it points to in the local datastore, + * recursively, using a default pin name: _default. + * + *
            +   * await object.unPin();
            +   * 
            + * + * @returns {Promise} A promise that is fulfilled when the unPin completes. + */ + unPin(): Promise; + /** + * Asynchronously returns if the object is pinned + * + *
            +   * const isPinned = await object.isPinned();
            +   * 
            + * + * @returns {Promise} A boolean promise that is fulfilled if object is pinned. + */ + isPinned(): Promise; + /** + * Asynchronously stores the objects and every object they point to in the local datastore, recursively. + * + * If those other objects have not been fetched from Parse, they will not be stored. + * However, if they have changed data, all the changes will be retained. + * + *
            +   * await object.pinWithName(name);
            +   * 
            + * + * To retrieve object: + * query.fromLocalDatastore() or query.fromPinWithName(name) + * + * @param {string} name Name of Pin. + * @returns {Promise} A promise that is fulfilled when the pin completes. + */ + pinWithName(name: string): Promise; + /** + * Asynchronously removes the object and every object it points to in the local datastore, recursively. + * + *
            +   * await object.unPinWithName(name);
            +   * 
            + * + * @param {string} name Name of Pin. + * @returns {Promise} A promise that is fulfilled when the unPin completes. + */ + unPinWithName(name: string): Promise; + /** + * Asynchronously loads data from the local datastore into this object. + * + *
            +   * await object.fetchFromLocalDatastore();
            +   * 
            + * + * You can create an unfetched pointer with Parse.Object.createWithoutData() + * and then call fetchFromLocalDatastore() on it. + * + * @returns {Promise} A promise that is fulfilled when the fetch completes. + */ + fetchFromLocalDatastore(): Promise; + static _clearAllState(): void; + /** + * Fetches the given list of Parse.Object. + * If any error is encountered, stops and calls the error handler. + * + *
            +   *   Parse.Object.fetchAll([object1, object2, ...])
            +   *    .then((list) => {
            +   *      // All the objects were fetched.
            +   *    }, (error) => {
            +   *      // An error occurred while fetching one of the objects.
            +   *    });
            +   * 
            + * + * @param {Array} list A list of Parse.Object. + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • include: The name(s) of the key(s) to include. Can be a string, an array of strings, + * or an array of array of strings. + *
            + * @static + * @returns {Parse.Object[]} + */ + static fetchAll( + list: Array, + options?: RequestOptions + ): Promise; + /** + * Fetches the given list of Parse.Object. + * + * Includes nested Parse.Objects for the provided key. You can use dot + * notation to specify which fields in the included object are also fetched. + * + * If any error is encountered, stops and calls the error handler. + * + *
            +   *   Parse.Object.fetchAllWithInclude([object1, object2, ...], [pointer1, pointer2, ...])
            +   *    .then((list) => {
            +   *      // All the objects were fetched.
            +   *    }, (error) => {
            +   *      // An error occurred while fetching one of the objects.
            +   *    });
            +   * 
            + * + * @param {Array} list A list of Parse.Object. + * @param {string | Array>} keys The name(s) of the key(s) to include. + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @static + * @returns {Parse.Object[]} + */ + static fetchAllWithInclude( + list: Array, + keys: string | Array>, + options: RequestOptions + ): Promise; + /** + * Fetches the given list of Parse.Object if needed. + * If any error is encountered, stops and calls the error handler. + * + * Includes nested Parse.Objects for the provided key. You can use dot + * notation to specify which fields in the included object are also fetched. + * + * If any error is encountered, stops and calls the error handler. + * + *
            +   *   Parse.Object.fetchAllIfNeededWithInclude([object1, object2, ...], [pointer1, pointer2, ...])
            +   *    .then((list) => {
            +   *      // All the objects were fetched.
            +   *    }, (error) => {
            +   *      // An error occurred while fetching one of the objects.
            +   *    });
            +   * 
            + * + * @param {Array} list A list of Parse.Object. + * @param {string | Array>} keys The name(s) of the key(s) to include. + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @static + * @returns {Parse.Object[]} + */ + static fetchAllIfNeededWithInclude( + list: Array, + keys: string | Array>, + options: RequestOptions + ): Promise; + /** + * Fetches the given list of Parse.Object if needed. + * If any error is encountered, stops and calls the error handler. + * + *
            +   *   Parse.Object.fetchAllIfNeeded([object1, ...])
            +   *    .then((list) => {
            +   *      // Objects were fetched and updated.
            +   *    }, (error) => {
            +   *      // An error occurred while fetching one of the objects.
            +   *    });
            +   * 
            + * + * @param {Array} list A list of Parse.Object. + * @param {object} options + * @static + * @returns {Parse.Object[]} + */ + static fetchAllIfNeeded( + list: Array, + options: FetchOptions + ): Promise; + static handleIncludeOptions(options: { include?: string | string[] }): any[]; + /** + * Destroy the given list of models on the server if it was already persisted. + * + *

            Unlike saveAll, if an error occurs while deleting an individual model, + * this method will continue trying to delete the rest of the models if + * possible, except in the case of a fatal error like a connection error. + * + *

            In particular, the Parse.Error object returned in the case of error may + * be one of two types: + * + *

              + *
            • A Parse.Error.AGGREGATE_ERROR. This object's "errors" property is an + * array of other Parse.Error objects. Each error object in this array + * has an "object" property that references the object that could not be + * deleted (for instance, because that object could not be found).
            • + *
            • A non-aggregate Parse.Error. This indicates a serious error that + * caused the delete operation to be aborted partway through (for + * instance, a connection failure in the middle of the delete).
            • + *
            + * + *
            +   * Parse.Object.destroyAll([object1, object2, ...])
            +   * .then((list) => {
            +   * // All the objects were deleted.
            +   * }, (error) => {
            +   * // An error occurred while deleting one or more of the objects.
            +   * // If this is an aggregate error, then we can inspect each error
            +   * // object individually to determine the reason why a particular
            +   * // object was not deleted.
            +   * if (error.code === Parse.Error.AGGREGATE_ERROR) {
            +   * for (var i = 0; i < error.errors.length; i++) {
            +   * console.log("Couldn't delete " + error.errors[i].object.id +
            +   * "due to " + error.errors[i].message);
            +   * }
            +   * } else {
            +   * console.log("Delete aborted because of " + error.message);
            +   * }
            +   * });
            +   * 
            + * + * @param {Array} list A list of Parse.Object. + * @param {object} options + * @static + * @returns {Promise} A promise that is fulfilled when the destroyAll + * completes. + */ + static destroyAll( + list: Array, + options?: SaveOptions + ): Promise; + /** + * Saves the given list of Parse.Object. + * If any error is encountered, stops and calls the error handler. + * + *
            +   * Parse.Object.saveAll([object1, object2, ...])
            +   * .then((list) => {
            +   * // All the objects were saved.
            +   * }, (error) => {
            +   * // An error occurred while saving one of the objects.
            +   * });
            +   * 
            + * + * @param {Array} list A list of Parse.Object. + * @param {object} options + * @static + * @returns {Parse.Object[]} + */ + static saveAll( + list: Array, + options?: SaveOptions + ): Promise; + /** + * Creates a reference to a subclass of Parse.Object with the given id. This + * does not exist on Parse.Object, only on subclasses. + * + *

            A shortcut for:

            +   *  var Foo = Parse.Object.extend("Foo");
            +   *  var pointerToFoo = new Foo();
            +   *  pointerToFoo.id = "myObjectId";
            +   * 
            + * + * @param {string} id The ID of the object to create a reference to. + * @static + * @returns {Parse.Object} A Parse.Object reference. + */ + static createWithoutData(id: string): ParseObject; + /** + * Creates a new instance of a Parse Object from a JSON representation. + * + * @param {object} json The JSON map of the Object's data + * @param {boolean} override In single instance mode, all old server data + * is overwritten if this is set to true + * @param {boolean} dirty Whether the Parse.Object should set JSON keys to dirty + * @static + * @returns {Parse.Object} A Parse.Object reference + */ + static fromJSON(json: any, override?: boolean, dirty?: boolean): ParseObject; + /** + * Registers a subclass of Parse.Object with a specific class name. + * When objects of that class are retrieved from a query, they will be + * instantiated with this subclass. + * This is only necessary when using ES6 subclassing. + * + * @param {string} className The class name of the subclass + * @param {Function} constructor The subclass + */ + static registerSubclass(className: string, constructor: any): void; + /** + * Unegisters a subclass of Parse.Object with a specific class name. + * + * @param {string} className The class name of the subclass + */ + static unregisterSubclass(className: string): void; + /** + * Creates a new subclass of Parse.Object for the given Parse class name. + * + *

            Every extension of a Parse class will inherit from the most recent + * previous extension of that class. When a Parse.Object is automatically + * created by parsing JSON, it will use the most recent extension of that + * class.

            + * + *

            You should call either:

            +   *     var MyClass = Parse.Object.extend("MyClass", {
            +   *         Instance methods,
            +   *         initialize: function(attrs, options) {
            +   *             this.someInstanceProperty = [],
            +   *             Other instance properties
            +   *         }
            +   *     }, {
            +   *         Class properties
            +   *     });
            + * or, for Backbone compatibility:
            +   *     var MyClass = Parse.Object.extend({
            +   *         className: "MyClass",
            +   *         Instance methods,
            +   *         initialize: function(attrs, options) {
            +   *             this.someInstanceProperty = [],
            +   *             Other instance properties
            +   *         }
            +   *     }, {
            +   *         Class properties
            +   *     });

            + * + * @param {string} className The name of the Parse class backing this model. + * @param {object} protoProps Instance properties to add to instances of the + * class returned from this method. + * @param {object} classProps Class properties to add the class returned from + * this method. + * @returns {Parse.Object} A new subclass of Parse.Object. + */ + static extend(className: any, protoProps: any, classProps: any): any; + /** + * Enable single instance objects, where any local objects with the same Id + * share the same attributes, and stay synchronized with each other. + * This is disabled by default in server environments, since it can lead to + * security issues. + * + * @static + */ + static enableSingleInstance(): void; + /** + * Disable single instance objects, where any local objects with the same Id + * share the same attributes, and stay synchronized with each other. + * When disabled, you can have two instances of the same object in memory + * without them sharing attributes. + * + * @static + */ + static disableSingleInstance(): void; + /** + * Asynchronously stores the objects and every object they point to in the local datastore, + * recursively, using a default pin name: _default. + * + * If those other objects have not been fetched from Parse, they will not be stored. + * However, if they have changed data, all the changes will be retained. + * + *
            +   * await Parse.Object.pinAll([...]);
            +   * 
            + * + * To retrieve object: + * query.fromLocalDatastore() or query.fromPin() + * + * @param {Array} objects A list of Parse.Object. + * @returns {Promise} A promise that is fulfilled when the pin completes. + * @static + */ + static pinAll(objects: Array): Promise; + /** + * Asynchronously stores the objects and every object they point to in the local datastore, recursively. + * + * If those other objects have not been fetched from Parse, they will not be stored. + * However, if they have changed data, all the changes will be retained. + * + *
            +   * await Parse.Object.pinAllWithName(name, [obj1, obj2, ...]);
            +   * 
            + * + * To retrieve object: + * query.fromLocalDatastore() or query.fromPinWithName(name) + * + * @param {string} name Name of Pin. + * @param {Array} objects A list of Parse.Object. + * @returns {Promise} A promise that is fulfilled when the pin completes. + * @static + */ + static pinAllWithName(name: string, objects: Array): Promise; + /** + * Asynchronously removes the objects and every object they point to in the local datastore, + * recursively, using a default pin name: _default. + * + *
            +   * await Parse.Object.unPinAll([...]);
            +   * 
            + * + * @param {Array} objects A list of Parse.Object. + * @returns {Promise} A promise that is fulfilled when the unPin completes. + * @static + */ + static unPinAll(objects: Array): Promise; + /** + * Asynchronously removes the objects and every object they point to in the local datastore, recursively. + * + *
            +   * await Parse.Object.unPinAllWithName(name, [obj1, obj2, ...]);
            +   * 
            + * + * @param {string} name Name of Pin. + * @param {Array} objects A list of Parse.Object. + * @returns {Promise} A promise that is fulfilled when the unPin completes. + * @static + */ + static unPinAllWithName(name: string, objects: Array): Promise; + /** + * Asynchronously removes all objects in the local datastore using a default pin name: _default. + * + *
            +   * await Parse.Object.unPinAllObjects();
            +   * 
            + * + * @returns {Promise} A promise that is fulfilled when the unPin completes. + * @static + */ + static unPinAllObjects(): Promise; + /** + * Asynchronously removes all objects with the specified pin name. + * Deletes the pin name also. + * + *
            +   * await Parse.Object.unPinAllObjectsWithName(name);
            +   * 
            + * + * @param {string} name Name of Pin. + * @returns {Promise} A promise that is fulfilled when the unPin completes. + * @static + */ + static unPinAllObjectsWithName(name: string): Promise; } export default ParseObject; diff --git a/types/ParseOp.d.ts b/types/ParseOp.d.ts index 5faf58b30..a7ad4a411 100644 --- a/types/ParseOp.d.ts +++ b/types/ParseOp.d.ts @@ -1,77 +1,76 @@ -// @ts-nocheck -export function opFromJSON(json: { - [key: string]: any; -}): Op | null; -export class Op { - applyTo(value: mixed): mixed; - mergeWith(previous: Op): Op | null; - toJSON(): mixed; +import type ParseObject from './ParseObject'; +import ParseRelation from './ParseRelation'; +export declare function opFromJSON(json: { [key: string]: any }): Op | null; +export declare class Op { + applyTo(value: any): any; + mergeWith(previous: Op): Op | void; + toJSON(offline?: boolean): any; } -export class SetOp extends Op { - constructor(value: mixed); - _value: mixed; - applyTo(): mixed; - mergeWith(): SetOp; - toJSON(offline?: boolean): any; +export declare class SetOp extends Op { + _value: any; + constructor(value: any); + applyTo(): any; + mergeWith(): SetOp; + toJSON(offline?: boolean): any; } -export class UnsetOp extends Op { - applyTo(): any; - mergeWith(): UnsetOp; - toJSON(): { - __op: string; - }; +export declare class UnsetOp extends Op { + applyTo(): any; + mergeWith(): UnsetOp; + toJSON(): { + __op: string; + }; } -export class IncrementOp extends Op { - constructor(amount: number); - _amount: number; - applyTo(value: mixed): number; - toJSON(): { - __op: string; - amount: number; - }; +export declare class IncrementOp extends Op { + _amount: number; + constructor(amount: number); + applyTo(value: any): number; + mergeWith(previous: Op): Op; + toJSON(): { + __op: string; + amount: number; + }; } -export class AddOp extends Op { - constructor(value: mixed | Array); - _value: Array; - applyTo(value: mixed): Array; - toJSON(): { - __op: string; - objects: mixed; - }; +export declare class AddOp extends Op { + _value: Array; + constructor(value: any | Array); + applyTo(value: any): Array; + mergeWith(previous: Op): Op; + toJSON(): { + __op: string; + objects: any; + }; } -export class AddUniqueOp extends Op { - constructor(value: mixed | Array); - _value: Array; - applyTo(value: mixed | Array): Array; - toJSON(): { - __op: string; - objects: mixed; - }; +export declare class AddUniqueOp extends Op { + _value: Array; + constructor(value: any | Array); + applyTo(value: any | Array): Array; + mergeWith(previous: Op): Op; + toJSON(): { + __op: string; + objects: any; + }; } -export class RemoveOp extends Op { - constructor(value: mixed | Array); - _value: Array; - applyTo(value: mixed | Array): Array; - toJSON(): { - __op: string; - objects: mixed; - }; +export declare class RemoveOp extends Op { + _value: Array; + constructor(value: any | Array); + applyTo(value: any | Array): Array; + mergeWith(previous: Op): Op; + toJSON(): { + __op: string; + objects: any; + }; } -export class RelationOp extends Op { - constructor(adds: Array, removes: Array); - _targetClassName: string | null; - relationsToAdd: Array; - relationsToRemove: Array; - _extractId(obj: string | ParseObject): string; - applyTo(value: mixed, object?: { - className: string; - id: string | null; - }, key?: string): ParseRelation | null; - toJSON(): { - __op?: string; - objects?: mixed; - ops?: mixed; - }; +export declare class RelationOp extends Op { + _targetClassName: string | null; + relationsToAdd: Array; + relationsToRemove: Array; + constructor(adds: Array, removes: Array); + _extractId(obj: string | ParseObject): string; + applyTo(value: any, parent?: ParseObject, key?: string): ParseRelation; + mergeWith(previous: Op): Op; + toJSON(): { + __op?: string; + objects?: any; + ops?: any; + }; } -import ParseObject from './ParseObject'; -import ParseRelation from './ParseRelation'; diff --git a/types/ParsePolygon.d.ts b/types/ParsePolygon.d.ts index d94d63f7f..3baabb14c 100644 --- a/types/ParsePolygon.d.ts +++ b/types/ParsePolygon.d.ts @@ -1,6 +1,6 @@ -// @ts-nocheck - -export default ParsePolygon; +import ParseGeoPoint from './ParseGeoPoint'; +type Coordinate = [number, number]; +type Coordinates = Coordinate[]; /** * Creates a new Polygon with any of the following forms:
            *
            @@ -21,49 +21,49 @@ export default ParsePolygon;
              * @alias Parse.Polygon
              */
             declare class ParsePolygon {
            -    /**
            -     * Validates that the list of coordinates can form a valid polygon
            -     *
            -     * @param {Array} coords the list of coordinates to validate as a polygon
            -     * @throws {TypeError}
            -     * @returns {number[][]} Array of coordinates if validated.
            -     */
            -    static _validate(coords: Array> | Array): Array>;
            -    /**
            -     * @param {(number[][] | Parse.GeoPoint[])} coordinates An Array of coordinate pairs
            -     */
            -    constructor(coordinates: Array> | Array);
            -    _coordinates: Array>;
            -    set coordinates(arg: number[][]);
            -    /**
            -     * Coordinates value for this Polygon.
            -     * Throws an exception if not valid type.
            -     *
            -     * @property {(number[][] | Parse.GeoPoint[])} coordinates list of coordinates
            -     * @returns {number[][]}
            -     */
            -    get coordinates(): number[][];
            -    /**
            -     * Returns a JSON representation of the Polygon, suitable for Parse.
            -     *
            -     * @returns {object}
            -     */
            -    toJSON(): {
            -        __type: string;
            -        coordinates: Array>;
            -    };
            -    /**
            -     * Checks if two polygons are equal
            -     *
            -     * @param {(Parse.Polygon | object)} other
            -     * @returns {boolean}
            -     */
            -    equals(other: mixed): boolean;
            -    /**
            -     *
            -     * @param {Parse.GeoPoint} point
            -     * @returns {boolean} Returns if the point is contained in the polygon
            -     */
            -    containsPoint(point: ParseGeoPoint): boolean;
            +  _coordinates: Coordinates;
            +  /**
            +   * @param {(Coordinates | Parse.GeoPoint[])} coordinates An Array of coordinate pairs
            +   */
            +  constructor(coordinates: Coordinates | Array);
            +  /**
            +   * Coordinates value for this Polygon.
            +   * Throws an exception if not valid type.
            +   *
            +   * @property {(Coordinates | Parse.GeoPoint[])} coordinates list of coordinates
            +   * @returns {Coordinates}
            +   */
            +  get coordinates(): Coordinates;
            +  set coordinates(coords: Coordinates | Array);
            +  /**
            +   * Returns a JSON representation of the Polygon, suitable for Parse.
            +   *
            +   * @returns {object}
            +   */
            +  toJSON(): {
            +    __type: string;
            +    coordinates: Coordinates;
            +  };
            +  /**
            +   * Checks if two polygons are equal
            +   *
            +   * @param {(Parse.Polygon | object)} other
            +   * @returns {boolean}
            +   */
            +  equals(other: ParsePolygon | any): boolean;
            +  /**
            +   *
            +   * @param {Parse.GeoPoint} point
            +   * @returns {boolean} Returns if the point is contained in the polygon
            +   */
            +  containsPoint(point: ParseGeoPoint): boolean;
            +  /**
            +   * Validates that the list of coordinates can form a valid polygon
            +   *
            +   * @param {Array} coords the list of coordinates to validate as a polygon
            +   * @throws {TypeError}
            +   * @returns {number[][]} Array of coordinates if validated.
            +   */
            +  static _validate(coords: Coordinates | Array): Coordinates;
             }
            -import ParseGeoPoint from './ParseGeoPoint';
            +export default ParsePolygon;
            diff --git a/types/ParseQuery.d.ts b/types/ParseQuery.d.ts
            index 35ab7d09a..b58a105e5 100644
            --- a/types/ParseQuery.d.ts
            +++ b/types/ParseQuery.d.ts
            @@ -3,47 +3,47 @@ import ParseObject from './ParseObject';
             import type LiveQuerySubscription from './LiveQuerySubscription';
             import type { FullOptions } from './RESTController';
             type BatchOptions = FullOptions & {
            -    batchSize?: number;
            -    useMasterKey?: boolean;
            -    sessionToken?: string;
            -    context?: {
            -        [key: string]: any;
            -    };
            -    json?: boolean;
            +  batchSize?: number;
            +  useMasterKey?: boolean;
            +  sessionToken?: string;
            +  context?: {
            +    [key: string]: any;
            +  };
            +  json?: boolean;
             };
             export type WhereClause = {
            -    [attr: string]: any;
            +  [attr: string]: any;
             };
             type QueryOptions = {
            -    useMasterKey?: boolean;
            -    sessionToken?: string;
            -    context?: {
            -        [key: string]: any;
            -    };
            -    json?: boolean;
            +  useMasterKey?: boolean;
            +  sessionToken?: string;
            +  context?: {
            +    [key: string]: any;
            +  };
            +  json?: boolean;
             };
             type FullTextQueryOptions = {
            -    language?: string;
            -    caseSensitive?: boolean;
            -    diacriticSensitive?: boolean;
            +  language?: string;
            +  caseSensitive?: boolean;
            +  diacriticSensitive?: boolean;
             };
             export type QueryJSON = {
            -    where: WhereClause;
            -    watch?: string;
            -    include?: string;
            -    excludeKeys?: string;
            -    keys?: string;
            -    limit?: number;
            -    skip?: number;
            -    order?: string;
            -    className?: string;
            -    count?: number;
            -    hint?: any;
            -    explain?: boolean;
            -    readPreference?: string;
            -    includeReadPreference?: string;
            -    subqueryReadPreference?: string;
            -    comment?: string;
            +  where: WhereClause;
            +  watch?: string;
            +  include?: string;
            +  excludeKeys?: string;
            +  keys?: string;
            +  limit?: number;
            +  skip?: number;
            +  order?: string;
            +  className?: string;
            +  count?: number;
            +  hint?: any;
            +  explain?: boolean;
            +  readPreference?: string;
            +  includeReadPreference?: string;
            +  subqueryReadPreference?: string;
            +  comment?: string;
             };
             /**
              * Creates a new parse Parse.Query for the given Parse.Object subclass.
            @@ -89,869 +89,906 @@ export type QueryJSON = {
              * @alias Parse.Query
              */
             declare class ParseQuery {
            -    /**
            -     * @property {string} className
            -     */
            -    className: string;
            -    _where: any;
            -    _watch: Array;
            -    _include: Array;
            -    _exclude: Array;
            -    _select: Array;
            -    _limit: number;
            -    _skip: number;
            -    _count: boolean;
            -    _order: Array;
            -    _readPreference: string | null;
            -    _includeReadPreference: string | null;
            -    _subqueryReadPreference: string | null;
            -    _queriesLocalDatastore: boolean;
            -    _localDatastorePinName: any;
            -    _extraOptions: {
            -        [key: string]: any;
            -    };
            -    _hint: any;
            -    _explain: boolean;
            -    _xhrRequest: any;
            -    _comment: string;
            -    /**
            -     * @param {(string | Parse.Object)} objectClass An instance of a subclass of Parse.Object, or a Parse className string.
            -     */
            -    constructor(objectClass: string | ParseObject);
            -    /**
            -     * Adds constraint that at least one of the passed in queries matches.
            -     *
            -     * @param {Array} queries
            -     * @returns {Parse.Query} Returns the query, so you can chain this call.
            -     */
            -    _orQuery(queries: Array): ParseQuery;
            -    /**
            -     * Adds constraint that all of the passed in queries match.
            -     *
            -     * @param {Array} queries
            -     * @returns {Parse.Query} Returns the query, so you can chain this call.
            -     */
            -    _andQuery(queries: Array): ParseQuery;
            -    /**
            -     * Adds constraint that none of the passed in queries match.
            -     *
            -     * @param {Array} queries
            -     * @returns {Parse.Query} Returns the query, so you can chain this call.
            -     */
            -    _norQuery(queries: Array): ParseQuery;
            -    /**
            -     * Helper for condition queries
            -     *
            -     * @param key
            -     * @param condition
            -     * @param value
            -     * @returns {Parse.Query}
            -     */
            -    _addCondition(key: string, condition: string, value: any): ParseQuery;
            -    /**
            -     * Converts string for regular expression at the beginning
            -     *
            -     * @param string
            -     * @returns {string}
            -     */
            -    _regexStartWith(string: string): string;
            -    _handleOfflineQuery(params: QueryJSON): Promise;
            -    /**
            -     * Returns a JSON representation of this query.
            -     *
            -     * @returns {object} The JSON representation of the query.
            -     */
            -    toJSON(): QueryJSON;
            -    /**
            -     * Return a query with conditions from json, can be useful to send query from server side to client
            -     * Not static, all query conditions was set before calling this method will be deleted.
            -     * For example on the server side we have
            -     * var query = new Parse.Query("className");
            -     * query.equalTo(key: value);
            -     * query.limit(100);
            -     * ... (others queries)
            -     * Create JSON representation of Query Object
            -     * var jsonFromServer = query.fromJSON();
            -     *
            -     * On client side getting query:
            -     * var query = new Parse.Query("className");
            -     * query.fromJSON(jsonFromServer);
            -     *
            -     * and continue to query...
            -     * query.skip(100).find().then(...);
            -     *
            -     * @param {QueryJSON} json from Parse.Query.toJSON() method
            -     * @returns {Parse.Query} Returns the query, so you can chain this call.
            -     */
            -    withJSON(json: QueryJSON): ParseQuery;
            -    /**
            -     * Static method to restore Parse.Query by json representation
            -     * Internally calling Parse.Query.withJSON
            -     *
            -     * @param {string} className
            -     * @param {QueryJSON} json from Parse.Query.toJSON() method
            -     * @returns {Parse.Query} new created query
            -     */
            -    static fromJSON(className: string, json: QueryJSON): ParseQuery;
            -    /**
            -     * Constructs a Parse.Object whose id is already known by fetching data from
            -     * the server. Unlike the first method, it never returns undefined.
            -     *
            -     * @param {string} objectId The id of the object to be fetched.
            -     * @param {object} options
            -     * Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. - *
            • json: Return raw json without converting to Parse.Object - *
            - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - get(objectId: string, options?: QueryOptions): Promise; - /** - * Retrieves a list of ParseObjects that satisfy this query. - * - * @param {object} options Valid options - * are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. - *
            • json: Return raw json without converting to Parse.Object - *
            - * @returns {Promise} A promise that is resolved with the results when - * the query completes. - */ - find(options?: QueryOptions): Promise>; - /** - * Retrieves a complete list of ParseObjects that satisfy this query. - * Using `eachBatch` under the hood to fetch all the valid objects. - * - * @param {object} options Valid options are:
              - *
            • batchSize: How many objects to yield in each batch (default: 100) - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            - * @returns {Promise} A promise that is resolved with the results when - * the query completes. - */ - findAll(options?: BatchOptions): Promise>; - /** - * Counts the number of objects that match this query. - * - * @param {object} options - * @param {boolean} [options.useMasterKey] - * @param {string} [options.sessionToken] - * Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            - * @returns {Promise} A promise that is resolved with the count when - * the query completes. - */ - count(options?: { - useMasterKey?: boolean; - sessionToken?: string; - }): Promise; - /** - * Executes a distinct query and returns unique values - * - * @param {string} key A field to find distinct values - * @param {object} options - * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. - * @returns {Promise} A promise that is resolved with the query completes. - */ - distinct(key: string, options?: { - sessionToken?: string; - }): Promise>; - /** - * Executes an aggregate query and returns aggregate results - * - * @param {(Array|object)} pipeline Array or Object of stages to process query - * @param {object} options - * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. - * @returns {Promise} A promise that is resolved with the query completes. - */ - aggregate(pipeline: any, options?: { - sessionToken?: string; - }): Promise>; - /** - * Retrieves at most one Parse.Object that satisfies this query. - * - * Returns the object if there is one, otherwise undefined. - * - * @param {object} options Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. - *
            • json: Return raw json without converting to Parse.Object - *
            - * @returns {Promise} A promise that is resolved with the object when - * the query completes. - */ - first(options?: QueryOptions): Promise; - /** - * Iterates over objects matching a query, calling a callback for each batch. - * If the callback returns a promise, the iteration will not continue until - * that promise has been fulfilled. If the callback returns a rejected - * promise, then iteration will stop with that error. The items are processed - * in an unspecified order. The query may not have any sort order, and may - * not use limit or skip. - * - * @param {Function} callback Callback that will be called with each result - * of the query. - * @param {object} options Valid options are:
              - *
            • batchSize: How many objects to yield in each batch (default: 100) - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. - *
            - * @returns {Promise} A promise that will be fulfilled once the - * iteration has completed. - */ - eachBatch(callback: (objs: Array) => void, options?: BatchOptions): Promise; - /** - * Iterates over each result of a query, calling a callback for each one. If - * the callback returns a promise, the iteration will not continue until - * that promise has been fulfilled. If the callback returns a rejected - * promise, then iteration will stop with that error. The items are - * processed in an unspecified order. The query may not have any sort order, - * and may not use limit or skip. - * - * @param {Function} callback Callback that will be called with each result - * of the query. - * @param {object} options Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            • json: Return raw json without converting to Parse.Object - *
            - * @returns {Promise} A promise that will be fulfilled once the - * iteration has completed. - */ - each(callback: (obj: ParseObject) => any, options?: BatchOptions): Promise; - /** - * Adds a hint to force index selection. (https://docs.mongodb.com/manual/reference/operator/meta/hint/) - * - * @param {(string|object)} value String or Object of index that should be used when executing query - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - hint(value: any): ParseQuery; - /** - * Investigates the query execution plan. Useful for optimizing queries. (https://docs.mongodb.com/manual/reference/operator/meta/explain/) - * - * @param {boolean} explain Used to toggle the information on the query plan. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - explain(explain?: boolean): ParseQuery; - /** - * Iterates over each result of a query, calling a callback for each one. If - * the callback returns a promise, the iteration will not continue until - * that promise has been fulfilled. If the callback returns a rejected - * promise, then iteration will stop with that error. The items are - * processed in an unspecified order. The query may not have any sort order, - * and may not use limit or skip. - * - * @param {Function} callback Callback
              - *
            • currentObject: The current Parse.Object being processed in the array.
            • - *
            • index: The index of the current Parse.Object being processed in the array.
            • - *
            • query: The query map was called upon.
            • - *
            - * @param {object} options Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            - * @returns {Promise} A promise that will be fulfilled once the - * iteration has completed. - */ - map(callback: (currentObject: ParseObject, index: number, query: ParseQuery) => any, options?: BatchOptions): Promise>; - /** - * Iterates over each result of a query, calling a callback for each one. If - * the callback returns a promise, the iteration will not continue until - * that promise has been fulfilled. If the callback returns a rejected - * promise, then iteration will stop with that error. The items are - * processed in an unspecified order. The query may not have any sort order, - * and may not use limit or skip. - * - * @param {Function} callback Callback
              - *
            • accumulator: The accumulator accumulates the callback's return values. It is the accumulated value previously returned in the last invocation of the callback.
            • - *
            • currentObject: The current Parse.Object being processed in the array.
            • - *
            • index: The index of the current Parse.Object being processed in the array.
            • - *
            - * @param {*} initialValue A value to use as the first argument to the first call of the callback. If no initialValue is supplied, the first object in the query will be used and skipped. - * @param {object} options Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            - * @returns {Promise} A promise that will be fulfilled once the - * iteration has completed. - */ - reduce(callback: (accumulator: any, currentObject: ParseObject, index: number) => any, initialValue: any, options?: BatchOptions): Promise>; - /** - * Iterates over each result of a query, calling a callback for each one. If - * the callback returns a promise, the iteration will not continue until - * that promise has been fulfilled. If the callback returns a rejected - * promise, then iteration will stop with that error. The items are - * processed in an unspecified order. The query may not have any sort order, - * and may not use limit or skip. - * - * @param {Function} callback Callback
              - *
            • currentObject: The current Parse.Object being processed in the array.
            • - *
            • index: The index of the current Parse.Object being processed in the array.
            • - *
            • query: The query filter was called upon.
            • - *
            - * @param {object} options Valid options are:
              - *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to - * be used for this request. - *
            • sessionToken: A valid session token, used for making a request on - * behalf of a specific user. - *
            - * @returns {Promise} A promise that will be fulfilled once the - * iteration has completed. - */ - filter(callback: (currentObject: ParseObject, index: number, query: ParseQuery) => boolean, options?: BatchOptions): Promise>; - /** - * Adds a constraint to the query that requires a particular key's value to - * be equal to the provided value. - * - * @param {string} key The key to check. - * @param value The value that the Parse.Object must contain. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - equalTo(key: string | { - [key: string]: any; - }, value?: any): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be not equal to the provided value. - * - * @param {string} key The key to check. - * @param value The value that must not be equalled. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - notEqualTo(key: string | { - [key: string]: any; - }, value?: any): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be less than the provided value. - * - * @param {string} key The key to check. - * @param value The value that provides an upper bound. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - lessThan(key: string, value: any): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be greater than the provided value. - * - * @param {string} key The key to check. - * @param value The value that provides an lower bound. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - greaterThan(key: string, value: any): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be less than or equal to the provided value. - * - * @param {string} key The key to check. - * @param value The value that provides an upper bound. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - lessThanOrEqualTo(key: string, value: any): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be greater than or equal to the provided value. - * - * @param {string} key The key to check. - * @param {*} value The value that provides an lower bound. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - greaterThanOrEqualTo(key: string, value: any): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be contained in the provided list of values. - * - * @param {string} key The key to check. - * @param {Array<*>} value The values that will match. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - containedIn(key: string, value: Array): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * not be contained in the provided list of values. - * - * @param {string} key The key to check. - * @param {Array<*>} value The values that will not match. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - notContainedIn(key: string, value: Array): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * be contained by the provided list of values. Get objects where all array elements match. - * - * @param {string} key The key to check. - * @param {Array} values The values that will match. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - containedBy(key: string, values: Array): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * contain each one of the provided list of values. - * - * @param {string} key The key to check. This key's value must be an array. - * @param {Array} values The values that will match. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - containsAll(key: string, values: Array): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's value to - * contain each one of the provided list of values starting with given strings. - * - * @param {string} key The key to check. This key's value must be an array. - * @param {Array} values The string values that will match as starting string. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - containsAllStartingWith(key: string, values: Array): ParseQuery; - /** - * Adds a constraint for finding objects that contain the given key. - * - * @param {string} key The key that should exist. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - exists(key: string): ParseQuery; - /** - * Adds a constraint for finding objects that do not contain a given key. - * - * @param {string} key The key that should not exist - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - doesNotExist(key: string): ParseQuery; - /** - * Adds a regular expression constraint for finding string values that match - * the provided regular expression. - * This may be slow for large datasets. - * - * @param {string} key The key that the string to match is stored in. - * @param {RegExp | string} regex The regular expression pattern to match. - * @param {string} modifiers The regular expression mode. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - matches(key: string, regex: RegExp | string, modifiers: string): ParseQuery; - /** - * Adds a constraint that requires that a key's value matches a Parse.Query - * constraint. - * - * @param {string} key The key that the contains the object to match the - * query. - * @param {Parse.Query} query The query that should match. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - matchesQuery(key: string, query: ParseQuery): ParseQuery; - /** - * Adds a constraint that requires that a key's value not matches a - * Parse.Query constraint. - * - * @param {string} key The key that the contains the object to match the - * query. - * @param {Parse.Query} query The query that should not match. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - doesNotMatchQuery(key: string, query: ParseQuery): ParseQuery; - /** - * Adds a constraint that requires that a key's value matches a value in - * an object returned by a different Parse.Query. - * - * @param {string} key The key that contains the value that is being - * matched. - * @param {string} queryKey The key in the objects returned by the query to - * match against. - * @param {Parse.Query} query The query to run. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - matchesKeyInQuery(key: string, queryKey: string, query: ParseQuery): ParseQuery; - /** - * Adds a constraint that requires that a key's value not match a value in - * an object returned by a different Parse.Query. - * - * @param {string} key The key that contains the value that is being - * excluded. - * @param {string} queryKey The key in the objects returned by the query to - * match against. - * @param {Parse.Query} query The query to run. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - doesNotMatchKeyInQuery(key: string, queryKey: string, query: ParseQuery): ParseQuery; - /** - * Adds a constraint for finding string values that contain a provided - * string. This may be slow for large datasets. - * - * @param {string} key The key that the string to match is stored in. - * @param {string} substring The substring that the value must contain. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - contains(key: string, substring: string): ParseQuery; - /** - * Adds a constraint for finding string values that contain a provided - * string. This may be slow for large datasets. Requires Parse-Server > 2.5.0 - * - * In order to sort you must use select and ascending ($score is required) - *
            -     *   query.fullText('field', 'term');
            -     *   query.ascending('$score');
            -     *   query.select('$score');
            -     *  
            - * - * To retrieve the weight / rank - *
            -     *   object->get('score');
            -     *  
            - * - * You can define optionals by providing an object as a third parameter - *
            -     *   query.fullText('field', 'term', { language: 'es', diacriticSensitive: true });
            -     *  
            - * - * @param {string} key The key that the string to match is stored in. - * @param {string} value The string to search - * @param {object} options (Optional) - * @param {string} options.language The language that determines the list of stop words for the search and the rules for the stemmer and tokenizer. - * @param {boolean} options.caseSensitive A boolean flag to enable or disable case sensitive search. - * @param {boolean} options.diacriticSensitive A boolean flag to enable or disable diacritic sensitive search. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - fullText(key: string, value: string, options?: FullTextQueryOptions): ParseQuery; - /** - * Method to sort the full text search by text score - * - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - sortByTextScore(): this; - /** - * Adds a constraint for finding string values that start with a provided - * string. This query will use the backend index, so it will be fast even - * for large datasets. - * - * @param {string} key The key that the string to match is stored in. - * @param {string} prefix The substring that the value must start with. - * @param {string} modifiers The regular expression mode. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - startsWith(key: string, prefix: string, modifiers: string): ParseQuery; - /** - * Adds a constraint for finding string values that end with a provided - * string. This will be slow for large datasets. - * - * @param {string} key The key that the string to match is stored in. - * @param {string} suffix The substring that the value must end with. - * @param {string} modifiers The regular expression mode. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - endsWith(key: string, suffix: string, modifiers: string): ParseQuery; - /** - * Adds a proximity based constraint for finding objects with key point - * values near the point given. - * - * @param {string} key The key that the Parse.GeoPoint is stored in. - * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - near(key: string, point: ParseGeoPoint): ParseQuery; - /** - * Adds a proximity based constraint for finding objects with key point - * values near the point given and within the maximum distance given. - * - * @param {string} key The key that the Parse.GeoPoint is stored in. - * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. - * @param {number} maxDistance Maximum distance (in radians) of results to return. - * @param {boolean} sorted A Bool value that is true if results should be - * sorted by distance ascending, false is no sorting is required, - * defaults to true. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - withinRadians(key: string, point: ParseGeoPoint, maxDistance: number, sorted: boolean): ParseQuery; - /** - * Adds a proximity based constraint for finding objects with key point - * values near the point given and within the maximum distance given. - * Radius of earth used is 3958.8 miles. - * - * @param {string} key The key that the Parse.GeoPoint is stored in. - * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. - * @param {number} maxDistance Maximum distance (in miles) of results to return. - * @param {boolean} sorted A Bool value that is true if results should be - * sorted by distance ascending, false is no sorting is required, - * defaults to true. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - withinMiles(key: string, point: ParseGeoPoint, maxDistance: number, sorted: boolean): ParseQuery; - /** - * Adds a proximity based constraint for finding objects with key point - * values near the point given and within the maximum distance given. - * Radius of earth used is 6371.0 kilometers. - * - * @param {string} key The key that the Parse.GeoPoint is stored in. - * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. - * @param {number} maxDistance Maximum distance (in kilometers) of results to return. - * @param {boolean} sorted A Bool value that is true if results should be - * sorted by distance ascending, false is no sorting is required, - * defaults to true. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - withinKilometers(key: string, point: ParseGeoPoint, maxDistance: number, sorted: boolean): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's - * coordinates be contained within a given rectangular geographic bounding - * box. - * - * @param {string} key The key to be constrained. - * @param {Parse.GeoPoint} southwest - * The lower-left inclusive corner of the box. - * @param {Parse.GeoPoint} northeast - * The upper-right inclusive corner of the box. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - withinGeoBox(key: string, southwest: ParseGeoPoint, northeast: ParseGeoPoint): ParseQuery; - /** - * Adds a constraint to the query that requires a particular key's - * coordinates be contained within and on the bounds of a given polygon. - * Supports closed and open (last point is connected to first) paths - * - * Polygon must have at least 3 points - * - * @param {string} key The key to be constrained. - * @param {Array} points Array of Coordinates / GeoPoints - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - withinPolygon(key: string, points: Array>): ParseQuery; - /** - * Add a constraint to the query that requires a particular key's - * coordinates that contains a ParseGeoPoint - * - * @param {string} key The key to be constrained. - * @param {Parse.GeoPoint} point - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - polygonContains(key: string, point: ParseGeoPoint): ParseQuery; - /** - * Sorts the results in ascending order by the given key. - * - * @param {(string|string[])} keys The key to order by, which is a - * string of comma separated values, or an Array of keys, or multiple keys. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - ascending(...keys: Array): ParseQuery; - /** - * Sorts the results in ascending order by the given key, - * but can also add secondary sort descriptors without overwriting _order. - * - * @param {(string|string[])} keys The key to order by, which is a - * string of comma separated values, or an Array of keys, or multiple keys. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - addAscending(...keys: Array): ParseQuery; - /** - * Sorts the results in descending order by the given key. - * - * @param {(string|string[])} keys The key to order by, which is a - * string of comma separated values, or an Array of keys, or multiple keys. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - descending(...keys: Array): ParseQuery; - /** - * Sorts the results in descending order by the given key, - * but can also add secondary sort descriptors without overwriting _order. - * - * @param {(string|string[])} keys The key to order by, which is a - * string of comma separated values, or an Array of keys, or multiple keys. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - addDescending(...keys: Array): ParseQuery; - /** - * Sets the number of results to skip before returning any results. - * This is useful for pagination. - * Default is to skip zero results. - * - * @param {number} n the number of results to skip. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - skip(n: number): ParseQuery; - /** - * Sets the limit of the number of results to return. The default limit is 100. - * - * @param {number} n the number of results to limit to. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - limit(n: number): ParseQuery; - /** - * Sets the flag to include with response the total number of objects satisfying this query, - * despite limits/skip. Might be useful for pagination. - * Note that result of this query will be wrapped as an object with - * `results`: holding {ParseObject} array and `count`: integer holding total number - * - * @param {boolean} includeCount false - disable, true - enable. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - withCount(includeCount?: boolean): ParseQuery; - /** - * Includes nested Parse.Objects for the provided key. You can use dot - * notation to specify which fields in the included object are also fetched. - * - * You can include all nested Parse.Objects by passing in '*'. - * Requires Parse Server 3.0.0+ - *
            query.include('*');
            - * - * @param {...string|Array} keys The name(s) of the key(s) to include. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - include(...keys: Array>): ParseQuery; - /** - * Includes all nested Parse.Objects one level deep. - * - * Requires Parse Server 3.0.0+ - * - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - includeAll(): ParseQuery; - /** - * Restricts the fields of the returned Parse.Objects to include only the - * provided keys. If this is called multiple times, then all of the keys - * specified in each of the calls will be included. - * - * @param {...string|Array} keys The name(s) of the key(s) to include. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - select(...keys: Array>): ParseQuery; - /** - * Restricts the fields of the returned Parse.Objects to all keys except the - * provided keys. Exclude takes precedence over select and include. - * - * Requires Parse Server 3.6.0+ - * - * @param {...string|Array} keys The name(s) of the key(s) to exclude. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - exclude(...keys: Array>): ParseQuery; - /** - * Restricts live query to trigger only for watched fields. - * - * Requires Parse Server 6.0.0+ - * - * @param {...string|Array} keys The name(s) of the key(s) to watch. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - watch(...keys: Array>): ParseQuery; - /** - * Changes the read preference that the backend will use when performing the query to the database. - * - * @param {string} readPreference The read preference for the main query. - * @param {string} includeReadPreference The read preference for the queries to include pointers. - * @param {string} subqueryReadPreference The read preference for the sub queries. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - readPreference(readPreference: string, includeReadPreference?: string, subqueryReadPreference?: string): ParseQuery; - /** - * Subscribe this query to get liveQuery updates - * - * @param {string} sessionToken (optional) Defaults to the currentUser - * @returns {Promise} Returns the liveQuerySubscription, it's an event emitter - * which can be used to get liveQuery updates. - */ - subscribe(sessionToken?: string): Promise; - /** - * Constructs a Parse.Query that is the OR of the passed in queries. For - * example: - *
            var compoundQuery = Parse.Query.or(query1, query2, query3);
            - * - * will create a compoundQuery that is an or of the query1, query2, and - * query3. - * - * @param {...Parse.Query} queries The list of queries to OR. - * @static - * @returns {Parse.Query} The query that is the OR of the passed in queries. - */ - static or(...queries: Array): ParseQuery; - /** - * Constructs a Parse.Query that is the AND of the passed in queries. For - * example: - *
            var compoundQuery = Parse.Query.and(query1, query2, query3);
            - * - * will create a compoundQuery that is an and of the query1, query2, and - * query3. - * - * @param {...Parse.Query} queries The list of queries to AND. - * @static - * @returns {Parse.Query} The query that is the AND of the passed in queries. - */ - static and(...queries: Array): ParseQuery; - /** - * Constructs a Parse.Query that is the NOR of the passed in queries. For - * example: - *
            const compoundQuery = Parse.Query.nor(query1, query2, query3);
            - * - * will create a compoundQuery that is a nor of the query1, query2, and - * query3. - * - * @param {...Parse.Query} queries The list of queries to NOR. - * @static - * @returns {Parse.Query} The query that is the NOR of the passed in queries. - */ - static nor(...queries: Array): ParseQuery; - /** - * Change the source of this query to the server. - * - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - fromNetwork(): ParseQuery; - /** - * Changes the source of this query to all pinned objects. - * - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - fromLocalDatastore(): ParseQuery; - /** - * Changes the source of this query to the default group of pinned objects. - * - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - fromPin(): ParseQuery; - /** - * Changes the source of this query to a specific group of pinned objects. - * - * @param {string} name The name of query source. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - fromPinWithName(name?: string | null): ParseQuery; - /** - * Cancels the current network request (if any is running). - * - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - cancel(): ParseQuery; - _setRequestTask(options: any): void; - /** - * Sets a comment to the query so that the query - * can be identified when using a the profiler for MongoDB. - * - * @param {string} value a comment can make your profile data easier to interpret and trace. - * @returns {Parse.Query} Returns the query, so you can chain this call. - */ - comment(value: string): ParseQuery; + /** + * @property {string} className + */ + className: string; + _where: any; + _watch: Array; + _include: Array; + _exclude: Array; + _select: Array; + _limit: number; + _skip: number; + _count: boolean; + _order: Array; + _readPreference: string | null; + _includeReadPreference: string | null; + _subqueryReadPreference: string | null; + _queriesLocalDatastore: boolean; + _localDatastorePinName: any; + _extraOptions: { + [key: string]: any; + }; + _hint: any; + _explain: boolean; + _xhrRequest: any; + _comment: string; + /** + * @param {(string | Parse.Object)} objectClass An instance of a subclass of Parse.Object, or a Parse className string. + */ + constructor(objectClass: string | ParseObject); + /** + * Adds constraint that at least one of the passed in queries matches. + * + * @param {Array} queries + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + _orQuery(queries: Array): ParseQuery; + /** + * Adds constraint that all of the passed in queries match. + * + * @param {Array} queries + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + _andQuery(queries: Array): ParseQuery; + /** + * Adds constraint that none of the passed in queries match. + * + * @param {Array} queries + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + _norQuery(queries: Array): ParseQuery; + /** + * Helper for condition queries + * + * @param key + * @param condition + * @param value + * @returns {Parse.Query} + */ + _addCondition(key: string, condition: string, value: any): ParseQuery; + /** + * Converts string for regular expression at the beginning + * + * @param string + * @returns {string} + */ + _regexStartWith(string: string): string; + _handleOfflineQuery(params: QueryJSON): Promise; + /** + * Returns a JSON representation of this query. + * + * @returns {object} The JSON representation of the query. + */ + toJSON(): QueryJSON; + /** + * Return a query with conditions from json, can be useful to send query from server side to client + * Not static, all query conditions was set before calling this method will be deleted. + * For example on the server side we have + * var query = new Parse.Query("className"); + * query.equalTo(key: value); + * query.limit(100); + * ... (others queries) + * Create JSON representation of Query Object + * var jsonFromServer = query.fromJSON(); + * + * On client side getting query: + * var query = new Parse.Query("className"); + * query.fromJSON(jsonFromServer); + * + * and continue to query... + * query.skip(100).find().then(...); + * + * @param {QueryJSON} json from Parse.Query.toJSON() method + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withJSON(json: QueryJSON): ParseQuery; + /** + * Static method to restore Parse.Query by json representation + * Internally calling Parse.Query.withJSON + * + * @param {string} className + * @param {QueryJSON} json from Parse.Query.toJSON() method + * @returns {Parse.Query} new created query + */ + static fromJSON(className: string, json: QueryJSON): ParseQuery; + /** + * Constructs a Parse.Object whose id is already known by fetching data from + * the server. Unlike the first method, it never returns undefined. + * + * @param {string} objectId The id of the object to be fetched. + * @param {object} options + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. + *
            • json: Return raw json without converting to Parse.Object + *
            + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + get(objectId: string, options?: QueryOptions): Promise; + /** + * Retrieves a list of ParseObjects that satisfy this query. + * + * @param {object} options Valid options + * are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. + *
            • json: Return raw json without converting to Parse.Object + *
            + * @returns {Promise} A promise that is resolved with the results when + * the query completes. + */ + find(options?: QueryOptions): Promise>; + /** + * Retrieves a complete list of ParseObjects that satisfy this query. + * Using `eachBatch` under the hood to fetch all the valid objects. + * + * @param {object} options Valid options are:
              + *
            • batchSize: How many objects to yield in each batch (default: 100) + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A promise that is resolved with the results when + * the query completes. + */ + findAll(options?: BatchOptions): Promise>; + /** + * Counts the number of objects that match this query. + * + * @param {object} options + * @param {boolean} [options.useMasterKey] + * @param {string} [options.sessionToken] + * Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A promise that is resolved with the count when + * the query completes. + */ + count(options?: { useMasterKey?: boolean; sessionToken?: string }): Promise; + /** + * Executes a distinct query and returns unique values + * + * @param {string} key A field to find distinct values + * @param {object} options + * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. + * @returns {Promise} A promise that is resolved with the query completes. + */ + distinct( + key: string, + options?: { + sessionToken?: string; + } + ): Promise>; + /** + * Executes an aggregate query and returns aggregate results + * + * @param {(Array|object)} pipeline Array or Object of stages to process query + * @param {object} options + * @param {string} [options.sessionToken] A valid session token, used for making a request on behalf of a specific user. + * @returns {Promise} A promise that is resolved with the query completes. + */ + aggregate( + pipeline: any, + options?: { + sessionToken?: string; + } + ): Promise>; + /** + * Retrieves at most one Parse.Object that satisfies this query. + * + * Returns the object if there is one, otherwise undefined. + * + * @param {object} options Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. + *
            • json: Return raw json without converting to Parse.Object + *
            + * @returns {Promise} A promise that is resolved with the object when + * the query completes. + */ + first(options?: QueryOptions): Promise; + /** + * Iterates over objects matching a query, calling a callback for each batch. + * If the callback returns a promise, the iteration will not continue until + * that promise has been fulfilled. If the callback returns a rejected + * promise, then iteration will stop with that error. The items are processed + * in an unspecified order. The query may not have any sort order, and may + * not use limit or skip. + * + * @param {Function} callback Callback that will be called with each result + * of the query. + * @param {object} options Valid options are:
              + *
            • batchSize: How many objects to yield in each batch (default: 100) + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • context: A dictionary that is accessible in Cloud Code `beforeFind` trigger. + *
            + * @returns {Promise} A promise that will be fulfilled once the + * iteration has completed. + */ + eachBatch(callback: (objs: Array) => void, options?: BatchOptions): Promise; + /** + * Iterates over each result of a query, calling a callback for each one. If + * the callback returns a promise, the iteration will not continue until + * that promise has been fulfilled. If the callback returns a rejected + * promise, then iteration will stop with that error. The items are + * processed in an unspecified order. The query may not have any sort order, + * and may not use limit or skip. + * + * @param {Function} callback Callback that will be called with each result + * of the query. + * @param {object} options Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            • json: Return raw json without converting to Parse.Object + *
            + * @returns {Promise} A promise that will be fulfilled once the + * iteration has completed. + */ + each(callback: (obj: ParseObject) => any, options?: BatchOptions): Promise; + /** + * Adds a hint to force index selection. (https://docs.mongodb.com/manual/reference/operator/meta/hint/) + * + * @param {(string|object)} value String or Object of index that should be used when executing query + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + hint(value: any): ParseQuery; + /** + * Investigates the query execution plan. Useful for optimizing queries. (https://docs.mongodb.com/manual/reference/operator/meta/explain/) + * + * @param {boolean} explain Used to toggle the information on the query plan. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + explain(explain?: boolean): ParseQuery; + /** + * Iterates over each result of a query, calling a callback for each one. If + * the callback returns a promise, the iteration will not continue until + * that promise has been fulfilled. If the callback returns a rejected + * promise, then iteration will stop with that error. The items are + * processed in an unspecified order. The query may not have any sort order, + * and may not use limit or skip. + * + * @param {Function} callback Callback
              + *
            • currentObject: The current Parse.Object being processed in the array.
            • + *
            • index: The index of the current Parse.Object being processed in the array.
            • + *
            • query: The query map was called upon.
            • + *
            + * @param {object} options Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A promise that will be fulfilled once the + * iteration has completed. + */ + map( + callback: (currentObject: ParseObject, index: number, query: ParseQuery) => any, + options?: BatchOptions + ): Promise>; + /** + * Iterates over each result of a query, calling a callback for each one. If + * the callback returns a promise, the iteration will not continue until + * that promise has been fulfilled. If the callback returns a rejected + * promise, then iteration will stop with that error. The items are + * processed in an unspecified order. The query may not have any sort order, + * and may not use limit or skip. + * + * @param {Function} callback Callback
              + *
            • accumulator: The accumulator accumulates the callback's return values. It is the accumulated value previously returned in the last invocation of the callback.
            • + *
            • currentObject: The current Parse.Object being processed in the array.
            • + *
            • index: The index of the current Parse.Object being processed in the array.
            • + *
            + * @param {*} initialValue A value to use as the first argument to the first call of the callback. If no initialValue is supplied, the first object in the query will be used and skipped. + * @param {object} options Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A promise that will be fulfilled once the + * iteration has completed. + */ + reduce( + callback: (accumulator: any, currentObject: ParseObject, index: number) => any, + initialValue: any, + options?: BatchOptions + ): Promise>; + /** + * Iterates over each result of a query, calling a callback for each one. If + * the callback returns a promise, the iteration will not continue until + * that promise has been fulfilled. If the callback returns a rejected + * promise, then iteration will stop with that error. The items are + * processed in an unspecified order. The query may not have any sort order, + * and may not use limit or skip. + * + * @param {Function} callback Callback
              + *
            • currentObject: The current Parse.Object being processed in the array.
            • + *
            • index: The index of the current Parse.Object being processed in the array.
            • + *
            • query: The query filter was called upon.
            • + *
            + * @param {object} options Valid options are:
              + *
            • useMasterKey: In Cloud Code and Node only, causes the Master Key to + * be used for this request. + *
            • sessionToken: A valid session token, used for making a request on + * behalf of a specific user. + *
            + * @returns {Promise} A promise that will be fulfilled once the + * iteration has completed. + */ + filter( + callback: (currentObject: ParseObject, index: number, query: ParseQuery) => boolean, + options?: BatchOptions + ): Promise>; + /** + * Adds a constraint to the query that requires a particular key's value to + * be equal to the provided value. + * + * @param {string} key The key to check. + * @param value The value that the Parse.Object must contain. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + equalTo( + key: + | string + | { + [key: string]: any; + }, + value?: any + ): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be not equal to the provided value. + * + * @param {string} key The key to check. + * @param value The value that must not be equalled. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + notEqualTo( + key: + | string + | { + [key: string]: any; + }, + value?: any + ): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be less than the provided value. + * + * @param {string} key The key to check. + * @param value The value that provides an upper bound. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + lessThan(key: string, value: any): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be greater than the provided value. + * + * @param {string} key The key to check. + * @param value The value that provides an lower bound. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + greaterThan(key: string, value: any): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be less than or equal to the provided value. + * + * @param {string} key The key to check. + * @param value The value that provides an upper bound. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + lessThanOrEqualTo(key: string, value: any): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be greater than or equal to the provided value. + * + * @param {string} key The key to check. + * @param {*} value The value that provides an lower bound. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + greaterThanOrEqualTo(key: string, value: any): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be contained in the provided list of values. + * + * @param {string} key The key to check. + * @param {Array<*>} value The values that will match. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + containedIn(key: string, value: Array): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * not be contained in the provided list of values. + * + * @param {string} key The key to check. + * @param {Array<*>} value The values that will not match. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + notContainedIn(key: string, value: Array): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * be contained by the provided list of values. Get objects where all array elements match. + * + * @param {string} key The key to check. + * @param {Array} values The values that will match. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + containedBy(key: string, values: Array): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * contain each one of the provided list of values. + * + * @param {string} key The key to check. This key's value must be an array. + * @param {Array} values The values that will match. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + containsAll(key: string, values: Array): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's value to + * contain each one of the provided list of values starting with given strings. + * + * @param {string} key The key to check. This key's value must be an array. + * @param {Array} values The string values that will match as starting string. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + containsAllStartingWith(key: string, values: Array): ParseQuery; + /** + * Adds a constraint for finding objects that contain the given key. + * + * @param {string} key The key that should exist. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + exists(key: string): ParseQuery; + /** + * Adds a constraint for finding objects that do not contain a given key. + * + * @param {string} key The key that should not exist + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + doesNotExist(key: string): ParseQuery; + /** + * Adds a regular expression constraint for finding string values that match + * the provided regular expression. + * This may be slow for large datasets. + * + * @param {string} key The key that the string to match is stored in. + * @param {RegExp | string} regex The regular expression pattern to match. + * @param {string} modifiers The regular expression mode. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + matches(key: string, regex: RegExp | string, modifiers: string): ParseQuery; + /** + * Adds a constraint that requires that a key's value matches a Parse.Query + * constraint. + * + * @param {string} key The key that the contains the object to match the + * query. + * @param {Parse.Query} query The query that should match. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + matchesQuery(key: string, query: ParseQuery): ParseQuery; + /** + * Adds a constraint that requires that a key's value not matches a + * Parse.Query constraint. + * + * @param {string} key The key that the contains the object to match the + * query. + * @param {Parse.Query} query The query that should not match. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + doesNotMatchQuery(key: string, query: ParseQuery): ParseQuery; + /** + * Adds a constraint that requires that a key's value matches a value in + * an object returned by a different Parse.Query. + * + * @param {string} key The key that contains the value that is being + * matched. + * @param {string} queryKey The key in the objects returned by the query to + * match against. + * @param {Parse.Query} query The query to run. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + matchesKeyInQuery(key: string, queryKey: string, query: ParseQuery): ParseQuery; + /** + * Adds a constraint that requires that a key's value not match a value in + * an object returned by a different Parse.Query. + * + * @param {string} key The key that contains the value that is being + * excluded. + * @param {string} queryKey The key in the objects returned by the query to + * match against. + * @param {Parse.Query} query The query to run. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + doesNotMatchKeyInQuery(key: string, queryKey: string, query: ParseQuery): ParseQuery; + /** + * Adds a constraint for finding string values that contain a provided + * string. This may be slow for large datasets. + * + * @param {string} key The key that the string to match is stored in. + * @param {string} substring The substring that the value must contain. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + contains(key: string, substring: string): ParseQuery; + /** + * Adds a constraint for finding string values that contain a provided + * string. This may be slow for large datasets. Requires Parse-Server > 2.5.0 + * + * In order to sort you must use select and ascending ($score is required) + *
            +   *   query.fullText('field', 'term');
            +   *   query.ascending('$score');
            +   *   query.select('$score');
            +   *  
            + * + * To retrieve the weight / rank + *
            +   *   object->get('score');
            +   *  
            + * + * You can define optionals by providing an object as a third parameter + *
            +   *   query.fullText('field', 'term', { language: 'es', diacriticSensitive: true });
            +   *  
            + * + * @param {string} key The key that the string to match is stored in. + * @param {string} value The string to search + * @param {object} options (Optional) + * @param {string} options.language The language that determines the list of stop words for the search and the rules for the stemmer and tokenizer. + * @param {boolean} options.caseSensitive A boolean flag to enable or disable case sensitive search. + * @param {boolean} options.diacriticSensitive A boolean flag to enable or disable diacritic sensitive search. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + fullText(key: string, value: string, options?: FullTextQueryOptions): ParseQuery; + /** + * Method to sort the full text search by text score + * + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + sortByTextScore(): this; + /** + * Adds a constraint for finding string values that start with a provided + * string. This query will use the backend index, so it will be fast even + * for large datasets. + * + * @param {string} key The key that the string to match is stored in. + * @param {string} prefix The substring that the value must start with. + * @param {string} modifiers The regular expression mode. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + startsWith(key: string, prefix: string, modifiers: string): ParseQuery; + /** + * Adds a constraint for finding string values that end with a provided + * string. This will be slow for large datasets. + * + * @param {string} key The key that the string to match is stored in. + * @param {string} suffix The substring that the value must end with. + * @param {string} modifiers The regular expression mode. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + endsWith(key: string, suffix: string, modifiers: string): ParseQuery; + /** + * Adds a proximity based constraint for finding objects with key point + * values near the point given. + * + * @param {string} key The key that the Parse.GeoPoint is stored in. + * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + near(key: string, point: ParseGeoPoint): ParseQuery; + /** + * Adds a proximity based constraint for finding objects with key point + * values near the point given and within the maximum distance given. + * + * @param {string} key The key that the Parse.GeoPoint is stored in. + * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. + * @param {number} maxDistance Maximum distance (in radians) of results to return. + * @param {boolean} sorted A Bool value that is true if results should be + * sorted by distance ascending, false is no sorting is required, + * defaults to true. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withinRadians( + key: string, + point: ParseGeoPoint, + maxDistance: number, + sorted: boolean + ): ParseQuery; + /** + * Adds a proximity based constraint for finding objects with key point + * values near the point given and within the maximum distance given. + * Radius of earth used is 3958.8 miles. + * + * @param {string} key The key that the Parse.GeoPoint is stored in. + * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. + * @param {number} maxDistance Maximum distance (in miles) of results to return. + * @param {boolean} sorted A Bool value that is true if results should be + * sorted by distance ascending, false is no sorting is required, + * defaults to true. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withinMiles(key: string, point: ParseGeoPoint, maxDistance: number, sorted: boolean): ParseQuery; + /** + * Adds a proximity based constraint for finding objects with key point + * values near the point given and within the maximum distance given. + * Radius of earth used is 6371.0 kilometers. + * + * @param {string} key The key that the Parse.GeoPoint is stored in. + * @param {Parse.GeoPoint} point The reference Parse.GeoPoint that is used. + * @param {number} maxDistance Maximum distance (in kilometers) of results to return. + * @param {boolean} sorted A Bool value that is true if results should be + * sorted by distance ascending, false is no sorting is required, + * defaults to true. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withinKilometers( + key: string, + point: ParseGeoPoint, + maxDistance: number, + sorted: boolean + ): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's + * coordinates be contained within a given rectangular geographic bounding + * box. + * + * @param {string} key The key to be constrained. + * @param {Parse.GeoPoint} southwest + * The lower-left inclusive corner of the box. + * @param {Parse.GeoPoint} northeast + * The upper-right inclusive corner of the box. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withinGeoBox(key: string, southwest: ParseGeoPoint, northeast: ParseGeoPoint): ParseQuery; + /** + * Adds a constraint to the query that requires a particular key's + * coordinates be contained within and on the bounds of a given polygon. + * Supports closed and open (last point is connected to first) paths + * + * Polygon must have at least 3 points + * + * @param {string} key The key to be constrained. + * @param {Array} points Array of Coordinates / GeoPoints + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withinPolygon(key: string, points: Array>): ParseQuery; + /** + * Add a constraint to the query that requires a particular key's + * coordinates that contains a ParseGeoPoint + * + * @param {string} key The key to be constrained. + * @param {Parse.GeoPoint} point + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + polygonContains(key: string, point: ParseGeoPoint): ParseQuery; + /** + * Sorts the results in ascending order by the given key. + * + * @param {(string|string[])} keys The key to order by, which is a + * string of comma separated values, or an Array of keys, or multiple keys. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + ascending(...keys: Array): ParseQuery; + /** + * Sorts the results in ascending order by the given key, + * but can also add secondary sort descriptors without overwriting _order. + * + * @param {(string|string[])} keys The key to order by, which is a + * string of comma separated values, or an Array of keys, or multiple keys. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + addAscending(...keys: Array): ParseQuery; + /** + * Sorts the results in descending order by the given key. + * + * @param {(string|string[])} keys The key to order by, which is a + * string of comma separated values, or an Array of keys, or multiple keys. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + descending(...keys: Array): ParseQuery; + /** + * Sorts the results in descending order by the given key, + * but can also add secondary sort descriptors without overwriting _order. + * + * @param {(string|string[])} keys The key to order by, which is a + * string of comma separated values, or an Array of keys, or multiple keys. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + addDescending(...keys: Array): ParseQuery; + /** + * Sets the number of results to skip before returning any results. + * This is useful for pagination. + * Default is to skip zero results. + * + * @param {number} n the number of results to skip. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + skip(n: number): ParseQuery; + /** + * Sets the limit of the number of results to return. The default limit is 100. + * + * @param {number} n the number of results to limit to. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + limit(n: number): ParseQuery; + /** + * Sets the flag to include with response the total number of objects satisfying this query, + * despite limits/skip. Might be useful for pagination. + * Note that result of this query will be wrapped as an object with + * `results`: holding {ParseObject} array and `count`: integer holding total number + * + * @param {boolean} includeCount false - disable, true - enable. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + withCount(includeCount?: boolean): ParseQuery; + /** + * Includes nested Parse.Objects for the provided key. You can use dot + * notation to specify which fields in the included object are also fetched. + * + * You can include all nested Parse.Objects by passing in '*'. + * Requires Parse Server 3.0.0+ + *
            query.include('*');
            + * + * @param {...string|Array} keys The name(s) of the key(s) to include. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + include(...keys: Array>): ParseQuery; + /** + * Includes all nested Parse.Objects one level deep. + * + * Requires Parse Server 3.0.0+ + * + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + includeAll(): ParseQuery; + /** + * Restricts the fields of the returned Parse.Objects to include only the + * provided keys. If this is called multiple times, then all of the keys + * specified in each of the calls will be included. + * + * @param {...string|Array} keys The name(s) of the key(s) to include. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + select(...keys: Array>): ParseQuery; + /** + * Restricts the fields of the returned Parse.Objects to all keys except the + * provided keys. Exclude takes precedence over select and include. + * + * Requires Parse Server 3.6.0+ + * + * @param {...string|Array} keys The name(s) of the key(s) to exclude. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + exclude(...keys: Array>): ParseQuery; + /** + * Restricts live query to trigger only for watched fields. + * + * Requires Parse Server 6.0.0+ + * + * @param {...string|Array} keys The name(s) of the key(s) to watch. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + watch(...keys: Array>): ParseQuery; + /** + * Changes the read preference that the backend will use when performing the query to the database. + * + * @param {string} readPreference The read preference for the main query. + * @param {string} includeReadPreference The read preference for the queries to include pointers. + * @param {string} subqueryReadPreference The read preference for the sub queries. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + readPreference( + readPreference: string, + includeReadPreference?: string, + subqueryReadPreference?: string + ): ParseQuery; + /** + * Subscribe this query to get liveQuery updates + * + * @param {string} sessionToken (optional) Defaults to the currentUser + * @returns {Promise} Returns the liveQuerySubscription, it's an event emitter + * which can be used to get liveQuery updates. + */ + subscribe(sessionToken?: string): Promise; + /** + * Constructs a Parse.Query that is the OR of the passed in queries. For + * example: + *
            var compoundQuery = Parse.Query.or(query1, query2, query3);
            + * + * will create a compoundQuery that is an or of the query1, query2, and + * query3. + * + * @param {...Parse.Query} queries The list of queries to OR. + * @static + * @returns {Parse.Query} The query that is the OR of the passed in queries. + */ + static or(...queries: Array): ParseQuery; + /** + * Constructs a Parse.Query that is the AND of the passed in queries. For + * example: + *
            var compoundQuery = Parse.Query.and(query1, query2, query3);
            + * + * will create a compoundQuery that is an and of the query1, query2, and + * query3. + * + * @param {...Parse.Query} queries The list of queries to AND. + * @static + * @returns {Parse.Query} The query that is the AND of the passed in queries. + */ + static and(...queries: Array): ParseQuery; + /** + * Constructs a Parse.Query that is the NOR of the passed in queries. For + * example: + *
            const compoundQuery = Parse.Query.nor(query1, query2, query3);
            + * + * will create a compoundQuery that is a nor of the query1, query2, and + * query3. + * + * @param {...Parse.Query} queries The list of queries to NOR. + * @static + * @returns {Parse.Query} The query that is the NOR of the passed in queries. + */ + static nor(...queries: Array): ParseQuery; + /** + * Change the source of this query to the server. + * + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + fromNetwork(): ParseQuery; + /** + * Changes the source of this query to all pinned objects. + * + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + fromLocalDatastore(): ParseQuery; + /** + * Changes the source of this query to the default group of pinned objects. + * + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + fromPin(): ParseQuery; + /** + * Changes the source of this query to a specific group of pinned objects. + * + * @param {string} name The name of query source. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + fromPinWithName(name?: string | null): ParseQuery; + /** + * Cancels the current network request (if any is running). + * + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + cancel(): ParseQuery; + _setRequestTask(options: any): void; + /** + * Sets a comment to the query so that the query + * can be identified when using a the profiler for MongoDB. + * + * @param {string} value a comment can make your profile data easier to interpret and trace. + * @returns {Parse.Query} Returns the query, so you can chain this call. + */ + comment(value: string): ParseQuery; } export default ParseQuery; diff --git a/types/ParseRelation.d.ts b/types/ParseRelation.d.ts index 2815a6e87..6ef474475 100644 --- a/types/ParseRelation.d.ts +++ b/types/ParseRelation.d.ts @@ -13,44 +13,44 @@ export default ParseRelation; * @alias Parse.Relation */ declare class ParseRelation { - /** - * @param {Parse.Object} parent The parent of this relation. - * @param {string} key The key for this relation on the parent. - */ - constructor(parent: ParseObject | null, key: string | null); - parent: ParseObject | null; - key: string | null; - targetClassName: string | null; - _ensureParentAndKey(parent: ParseObject, key: string): void; - /** - * Adds a Parse.Object or an array of Parse.Objects to the relation. - * - * @param {(Parse.Object|Array)} objects The item or items to add. - * @returns {Parse.Object} The parent of the relation. - */ - add(objects: ParseObject | Array): ParseObject; - /** - * Removes a Parse.Object or an array of Parse.Objects from this relation. - * - * @param {(Parse.Object|Array)} objects The item or items to remove. - */ - remove(objects: ParseObject | Array): void; - /** - * Returns a JSON version of the object suitable for saving to disk. - * - * @returns {object} JSON representation of Relation - */ - toJSON(): { - __type: 'Relation'; - className: string | null; - }; - /** - * Returns a Parse.Query that is limited to objects in this - * relation. - * - * @returns {Parse.Query} Relation Query - */ - query(): ParseQuery; + /** + * @param {Parse.Object} parent The parent of this relation. + * @param {string} key The key for this relation on the parent. + */ + constructor(parent: ParseObject | null, key: string | null); + parent: ParseObject | null; + key: string | null; + targetClassName: string | null; + _ensureParentAndKey(parent: ParseObject, key: string): void; + /** + * Adds a Parse.Object or an array of Parse.Objects to the relation. + * + * @param {(Parse.Object|Array)} objects The item or items to add. + * @returns {Parse.Object} The parent of the relation. + */ + add(objects: ParseObject | Array): ParseObject; + /** + * Removes a Parse.Object or an array of Parse.Objects from this relation. + * + * @param {(Parse.Object|Array)} objects The item or items to remove. + */ + remove(objects: ParseObject | Array): void; + /** + * Returns a JSON version of the object suitable for saving to disk. + * + * @returns {object} JSON representation of Relation + */ + toJSON(): { + __type: 'Relation'; + className: string | null; + }; + /** + * Returns a Parse.Query that is limited to objects in this + * relation. + * + * @returns {Parse.Query} Relation Query + */ + query(): ParseQuery; } import ParseObject from './ParseObject'; import ParseQuery from './ParseQuery'; diff --git a/types/ParseRole.d.ts b/types/ParseRole.d.ts index 32da55c56..55b255279 100644 --- a/types/ParseRole.d.ts +++ b/types/ParseRole.d.ts @@ -17,62 +17,62 @@ import type ParseRelation from './ParseRelation'; * @augments Parse.Object */ declare class ParseRole extends ParseObject { - /** - * @param {string} name The name of the Role to create. - * @param {Parse.ACL} acl The ACL for this role. Roles must have an ACL. - * A Parse.Role is a local representation of a role persisted to the Parse - * cloud. - */ - constructor(name: string, acl: ParseACL); - /** - * Gets the name of the role. You can alternatively call role.get("name") - * - * @returns {string} the name of the role. - */ - getName(): string | null; - /** - * Sets the name for a role. This value must be set before the role has - * been saved to the server, and cannot be set once the role has been - * saved. - * - *

            - * A role's name can only contain alphanumeric characters, _, -, and - * spaces. - *

            - * - *

            This is equivalent to calling role.set("name", name)

            - * - * @param {string} name The name of the role. - * @param {object} options Standard options object with success and error - * callbacks. - * @returns {(ParseObject|boolean)} true if the set succeeded. - */ - setName(name: string, options?: any): ParseObject | boolean; - /** - * Gets the Parse.Relation for the Parse.Users that are direct - * children of this role. These users are granted any privileges that this - * role has been granted (e.g. read or write access through ACLs). You can - * add or remove users from the role through this relation. - * - *

            This is equivalent to calling role.relation("users")

            - * - * @returns {Parse.Relation} the relation for the users belonging to this - * role. - */ - getUsers(): ParseRelation; - /** - * Gets the Parse.Relation for the Parse.Roles that are direct - * children of this role. These roles' users are granted any privileges that - * this role has been granted (e.g. read or write access through ACLs). You - * can add or remove child roles from this role through this relation. - * - *

            This is equivalent to calling role.relation("roles")

            - * - * @returns {Parse.Relation} the relation for the roles belonging to this - * role. - */ - getRoles(): ParseRelation; - _validateName(newName: any): void; - validate(attrs: AttributeMap, options?: any): ParseError | boolean; + /** + * @param {string} name The name of the Role to create. + * @param {Parse.ACL} acl The ACL for this role. Roles must have an ACL. + * A Parse.Role is a local representation of a role persisted to the Parse + * cloud. + */ + constructor(name: string, acl: ParseACL); + /** + * Gets the name of the role. You can alternatively call role.get("name") + * + * @returns {string} the name of the role. + */ + getName(): string | null; + /** + * Sets the name for a role. This value must be set before the role has + * been saved to the server, and cannot be set once the role has been + * saved. + * + *

            + * A role's name can only contain alphanumeric characters, _, -, and + * spaces. + *

            + * + *

            This is equivalent to calling role.set("name", name)

            + * + * @param {string} name The name of the role. + * @param {object} options Standard options object with success and error + * callbacks. + * @returns {(ParseObject|boolean)} true if the set succeeded. + */ + setName(name: string, options?: any): ParseObject | boolean; + /** + * Gets the Parse.Relation for the Parse.Users that are direct + * children of this role. These users are granted any privileges that this + * role has been granted (e.g. read or write access through ACLs). You can + * add or remove users from the role through this relation. + * + *

            This is equivalent to calling role.relation("users")

            + * + * @returns {Parse.Relation} the relation for the users belonging to this + * role. + */ + getUsers(): ParseRelation; + /** + * Gets the Parse.Relation for the Parse.Roles that are direct + * children of this role. These roles' users are granted any privileges that + * this role has been granted (e.g. read or write access through ACLs). You + * can add or remove child roles from this role through this relation. + * + *

            This is equivalent to calling role.relation("roles")

            + * + * @returns {Parse.Relation} the relation for the roles belonging to this + * role. + */ + getRoles(): ParseRelation; + _validateName(newName: any): void; + validate(attrs: AttributeMap, options?: any): ParseError | boolean; } export default ParseRole; diff --git a/types/ParseSchema.d.ts b/types/ParseSchema.d.ts index 708070fc9..8285acf4c 100644 --- a/types/ParseSchema.d.ts +++ b/types/ParseSchema.d.ts @@ -1,5 +1,10 @@ -// @ts-nocheck -export default ParseSchema; +import ParseCLP from './ParseCLP'; +import type { PermissionsMap } from './ParseCLP'; +type FieldOptions = { + required?: boolean; + defaultValue?: any; + targetClass?: string; +}; /** * A Parse.Schema object is for handling schema data from Parse. *

            All the schemas methods require MasterKey. @@ -18,211 +23,216 @@ export default ParseSchema; * @alias Parse.Schema */ declare class ParseSchema { - /** - * Static method to get all schemas - * - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - static all(): Promise; - /** - * @param {string} className Parse Class string. - */ - constructor(className: string); - className: string; - _fields: { - [key: string]: mixed; - }; - _indexes: { - [key: string]: mixed; - }; - _clp: { - [key: string]: mixed; - }; - /** - * Get the Schema from Parse - * - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - get(): Promise; - /** - * Create a new Schema on Parse - * - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - save(): Promise; - /** - * Update a Schema on Parse - * - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - update(): Promise; - /** - * Removing a Schema from Parse - * Can only be used on Schema without objects - * - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - delete(): Promise; - /** - * Removes all objects from a Schema (class) in Parse. - * EXERCISE CAUTION, running this will delete all objects for this schema and cannot be reversed - * - * @returns {Promise} A promise that is resolved with the result when - * the query completes. - */ - purge(): Promise; - /** - * Assert if ClassName has been filled - * - * @private - */ - private assertClassName; - /** - * Sets Class Level Permissions when creating / updating a Schema. - * EXERCISE CAUTION, running this may override CLP for this schema and cannot be reversed - * - * @param {object | Parse.CLP} clp Class Level Permissions - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - setCLP(clp: PermissionsMap | ParseCLP): Parse.Schema; - /** - * Adding a Field to Create / Update a Schema - * - * @param {string} name Name of the field that will be created on Parse - * @param {string} type Can be a (String|Number|Boolean|Date|Parse.File|Parse.GeoPoint|Array|Object|Pointer|Parse.Relation) - * @param {object} options - * Valid options are:

              - *
            • required: If field is not set, save operation fails (Requires Parse Server 3.7.0+) - *
            • defaultValue: If field is not set, a default value is selected (Requires Parse Server 3.7.0+) - *
            • targetClass: Required if type is Pointer or Parse.Relation - *
            - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addField(name: string, type: string, options?: FieldOptions): Parse.Schema; - /** - * Adding an Index to Create / Update a Schema - * - * @param {string} name Name of the index - * @param {object} index { field: value } - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - * - *
            -     * schema.addIndex('index_name', { 'field': 1 });
            -     * 
            - */ - addIndex(name: string, index: any): Parse.Schema; - /** - * Adding String Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addString(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Number Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addNumber(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Boolean Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addBoolean(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Date Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addDate(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding File Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addFile(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding GeoPoint Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addGeoPoint(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Polygon Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addPolygon(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Array Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addArray(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Object Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addObject(name: string, options: FieldOptions): Parse.Schema; - /** - * Adding Pointer Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {string} targetClass Name of the target Pointer Class - * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addPointer(name: string, targetClass: string, options?: FieldOptions): Parse.Schema; - /** - * Adding Relation Field - * - * @param {string} name Name of the field that will be created on Parse - * @param {string} targetClass Name of the target Pointer Class - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - addRelation(name: string, targetClass: string): Parse.Schema; - /** - * Deleting a Field to Update on a Schema - * - * @param {string} name Name of the field - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - deleteField(name: string): Parse.Schema; - /** - * Deleting an Index to Update on a Schema - * - * @param {string} name Name of the field - * @returns {Parse.Schema} Returns the schema, so you can chain this call. - */ - deleteIndex(name: string): Parse.Schema; + className: string; + _fields: { + [key: string]: any; + }; + _indexes: { + [key: string]: any; + }; + _clp: { + [key: string]: any; + }; + /** + * @param {string} className Parse Class string. + */ + constructor(className: string); + /** + * Static method to get all schemas + * + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + static all(): Promise; + /** + * Get the Schema from Parse + * + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + get(): Promise<{ + results: ParseSchema[]; + }>; + /** + * Create a new Schema on Parse + * + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + save(): Promise; + /** + * Update a Schema on Parse + * + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + update(): Promise; + /** + * Removing a Schema from Parse + * Can only be used on Schema without objects + * + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + delete(): Promise; + /** + * Removes all objects from a Schema (class) in Parse. + * EXERCISE CAUTION, running this will delete all objects for this schema and cannot be reversed + * + * @returns {Promise} A promise that is resolved with the result when + * the query completes. + */ + purge(): Promise; + /** + * Assert if ClassName has been filled + * + * @private + */ + assertClassName(): void; + /** + * Sets Class Level Permissions when creating / updating a Schema. + * EXERCISE CAUTION, running this may override CLP for this schema and cannot be reversed + * + * @param {object | Parse.CLP} clp Class Level Permissions + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + setCLP(clp: PermissionsMap | ParseCLP): this; + /** + * Adding a Field to Create / Update a Schema + * + * @param {string} name Name of the field that will be created on Parse + * @param {string} type Can be a (String|Number|Boolean|Date|Parse.File|Parse.GeoPoint|Array|Object|Pointer|Parse.Relation) + * @param {object} options + * Valid options are:
              + *
            • required: If field is not set, save operation fails (Requires Parse Server 3.7.0+) + *
            • defaultValue: If field is not set, a default value is selected (Requires Parse Server 3.7.0+) + *
            • targetClass: Required if type is Pointer or Parse.Relation + *
            + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addField(name: string, type: string, options?: FieldOptions): this; + /** + * Adding an Index to Create / Update a Schema + * + * @param {string} name Name of the index + * @param {object} index { field: value } + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + * + *
            +   * schema.addIndex('index_name', { 'field': 1 });
            +   * 
            + */ + addIndex(name: string, index: any): this; + /** + * Adding String Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addString(name: string, options: FieldOptions): this; + /** + * Adding Number Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addNumber(name: string, options: FieldOptions): this; + /** + * Adding Boolean Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addBoolean(name: string, options: FieldOptions): this; + /** + * Adding Bytes Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addBytes(name: string, options: FieldOptions): this; + /** + * Adding Date Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addDate(name: string, options: FieldOptions): this; + /** + * Adding File Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addFile(name: string, options: FieldOptions): this; + /** + * Adding GeoPoint Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addGeoPoint(name: string, options: FieldOptions): this; + /** + * Adding Polygon Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addPolygon(name: string, options: FieldOptions): this; + /** + * Adding Array Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addArray(name: string, options: FieldOptions): this; + /** + * Adding Object Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addObject(name: string, options: FieldOptions): this; + /** + * Adding Pointer Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {string} targetClass Name of the target Pointer Class + * @param {object} options See {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.Schema.html#addField addField} + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addPointer(name: string, targetClass: string, options?: FieldOptions): this; + /** + * Adding Relation Field + * + * @param {string} name Name of the field that will be created on Parse + * @param {string} targetClass Name of the target Pointer Class + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + addRelation(name: string, targetClass: string): this; + /** + * Deleting a Field to Update on a Schema + * + * @param {string} name Name of the field + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + deleteField(name: string): this; + /** + * Deleting an Index to Update on a Schema + * + * @param {string} name Name of the field + * @returns {Parse.Schema} Returns the schema, so you can chain this call. + */ + deleteIndex(name: string): this; } -import { PermissionsMap } from './ParseCLP'; -import ParseCLP from './ParseCLP'; -type FieldOptions = { - required: boolean; - defaultValue: mixed; -}; +export default ParseSchema; diff --git a/types/ParseSession.d.ts b/types/ParseSession.d.ts index aeb0d8c43..307bac6cb 100644 --- a/types/ParseSession.d.ts +++ b/types/ParseSession.d.ts @@ -9,37 +9,37 @@ import type { FullOptions } from './RESTController'; * @augments Parse.Object */ declare class ParseSession extends ParseObject { - /** - * @param {object} attributes The initial set of data to store in the user. - */ - constructor(attributes?: any); - /** - * Returns the session token string. - * - * @returns {string} - */ - getSessionToken(): string; - static readOnlyAttributes(): string[]; - /** - * Retrieves the Session object for the currently logged in session. - * - * @param {object} options useMasterKey - * @static - * @returns {Promise} A promise that is resolved with the Parse.Session - * object after it has been fetched. If there is no current user, the - * promise will be rejected. - */ - static current(options: FullOptions): Promise; - /** - * Determines whether the current session token is revocable. - * This method is useful for migrating Express.js or Node.js web apps to - * use revocable sessions. If you are migrating an app that uses the Parse - * SDK in the browser only, please use Parse.User.enableRevocableSession() - * instead, so that sessions can be automatically upgraded. - * - * @static - * @returns {boolean} - */ - static isCurrentSessionRevocable(): boolean; + /** + * @param {object} attributes The initial set of data to store in the user. + */ + constructor(attributes?: any); + /** + * Returns the session token string. + * + * @returns {string} + */ + getSessionToken(): string; + static readOnlyAttributes(): string[]; + /** + * Retrieves the Session object for the currently logged in session. + * + * @param {object} options useMasterKey + * @static + * @returns {Promise} A promise that is resolved with the Parse.Session + * object after it has been fetched. If there is no current user, the + * promise will be rejected. + */ + static current(options: FullOptions): Promise; + /** + * Determines whether the current session token is revocable. + * This method is useful for migrating Express.js or Node.js web apps to + * use revocable sessions. If you are migrating an app that uses the Parse + * SDK in the browser only, please use Parse.User.enableRevocableSession() + * instead, so that sessions can be automatically upgraded. + * + * @static + * @returns {boolean} + */ + static isCurrentSessionRevocable(): boolean; } export default ParseSession; diff --git a/types/ParseUser.d.ts b/types/ParseUser.d.ts index cf70506f0..7f2dc5312 100644 --- a/types/ParseUser.d.ts +++ b/types/ParseUser.d.ts @@ -2,16 +2,16 @@ import ParseObject from './ParseObject'; import type { AttributeMap } from './ObjectStateMutations'; import type { RequestOptions, FullOptions } from './RESTController'; export type AuthData = { - [key: string]: any; + [key: string]: any; }; export type AuthProviderType = { - authenticate?(options: { - error?: (provider: AuthProviderType, error: string | any) => void; - success?: (provider: AuthProviderType, result: AuthData) => void; - }): void; - restoreAuthentication(authData: any): boolean; - getAuthType(): string; - deauthenticate?(): void; + authenticate?(options: { + error?: (provider: AuthProviderType, error: string | any) => void; + success?: (provider: AuthProviderType, result: AuthData) => void; + }): void; + restoreAuthentication(authData: any): boolean; + getAuthType(): string; + deauthenticate?(): void; }; /** *

            A Parse.User object is a local representation of a user persisted to the @@ -24,468 +24,506 @@ export type AuthProviderType = { * @augments Parse.Object */ declare class ParseUser extends ParseObject { - /** - * @param {object} attributes The initial set of data to store in the user. - */ - constructor(attributes?: AttributeMap); - /** - * Request a revocable session token to replace the older style of token. - * - * @param {object} options - * @returns {Promise} A promise that is resolved when the replacement - * token has been fetched. - */ - _upgradeToRevocableSession(options: RequestOptions): Promise; - /** - * Parse allows you to link your users with {@link https://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication 3rd party authentication}, enabling - * your users to sign up or log into your application using their existing identities. - * Since 2.9.0 - * - * @see {@link https://docs.parseplatform.org/js/guide/#linking-users Linking Users} - * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} - * @param {object} options - * @param {object} [options.authData] AuthData to link with - *

              - *
            • If provider is string, options is {@link http://docs.parseplatform.org/parse-server/guide/#supported-3rd-party-authentications authData} - *
            • If provider is AuthProvider, options is saveOpts - *
            - * @param {object} saveOpts useMasterKey / sessionToken - * @returns {Promise} A promise that is fulfilled with the user is linked - */ - linkWith(provider: AuthProviderType, options: { - authData?: AuthData; - }, saveOpts?: FullOptions): Promise; - /** - * @param provider - * @param options - * @param {object} [options.authData] - * @param saveOpts - * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} - * @returns {Promise} - */ - _linkWith(provider: any, options: { - authData?: AuthData; - }, saveOpts?: FullOptions): Promise; - /** - * Synchronizes auth data for a provider (e.g. puts the access token in the - * right place to be used by the Facebook SDK). - * - * @param provider - */ - _synchronizeAuthData(provider: string | AuthProviderType): void; - /** - * Synchronizes authData for all providers. - */ - _synchronizeAllAuthData(): void; - /** - * Removes null values from authData (which exist temporarily for unlinking) - */ - _cleanupAuthData(): void; - /** - * Unlinks a user from a service. - * - * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} - * @param {object} options MasterKey / SessionToken - * @returns {Promise} A promise that is fulfilled when the unlinking - * finishes. - */ - _unlinkFrom(provider: any, options?: FullOptions): Promise; - /** - * Checks whether a user is linked to a service. - * - * @param {object} provider service to link to - * @returns {boolean} true if link was successful - */ - _isLinked(provider: any): boolean; - /** - * Deauthenticates all providers. - */ - _logOutWithAll(): void; - /** - * Deauthenticates a single provider (e.g. removing access tokens from the - * Facebook SDK). - * - * @param {object} provider service to logout of - */ - _logOutWith(provider: any): void; - /** - * Class instance method used to maintain specific keys when a fetch occurs. - * Used to ensure that the session token is not lost. - * - * @returns {object} sessionToken - */ - _preserveFieldsOnFetch(): AttributeMap; - /** - * Returns true if current would return this user. - * - * @returns {boolean} true if user is cached on disk - */ - isCurrent(): boolean; - /** - * Returns true if current would return this user. - * - * @returns {Promise} true if user is cached on disk - */ - isCurrentAsync(): Promise; - stripAnonymity(): void; - restoreAnonimity(anonymousData: any): void; - /** - * Returns get("username"). - * - * @returns {string} - */ - getUsername(): string | null; - /** - * Calls set("username", username, options) and returns the result. - * - * @param {string} username - */ - setUsername(username: string): void; - /** - * Calls set("password", password, options) and returns the result. - * - * @param {string} password User's Password - */ - setPassword(password: string): void; - /** - * Returns get("email"). - * - * @returns {string} User's Email - */ - getEmail(): string | null; - /** - * Calls set("email", email) and returns the result. - * - * @param {string} email - * @returns {boolean} - */ - setEmail(email: string): boolean | ParseObject; - /** - * Returns the session token for this user, if the user has been logged in, - * or if it is the result of a query with the master key. Otherwise, returns - * undefined. - * - * @returns {string} the session token, or undefined - */ - getSessionToken(): string | null; - /** - * Checks whether this user is the current user and has been authenticated. - * - * @returns {boolean} whether this user is the current user and is logged in. - */ - authenticated(): boolean; - /** - * Signs up a new user. You should call this instead of save for - * new Parse.Users. This will create a new Parse.User on the server, and - * also persist the session on disk so that you can access the user using - * current. - * - *

            A username and password must be set before calling signUp.

            - * - * @param {object} attrs Extra fields to set on the new user, or null. - * @param {object} options - * @returns {Promise} A promise that is fulfilled when the signup - * finishes. - */ - signUp(attrs: AttributeMap, options?: FullOptions & { - context?: AttributeMap; - }): Promise; - /** - * Logs in a Parse.User. On success, this saves the session to disk, - * so you can retrieve the currently logged in user using - * current. - * - *

            A username and password must be set before calling logIn.

            - * - * @param {object} options - * @returns {Promise} A promise that is fulfilled with the user when - * the login is complete. - */ - logIn(options?: FullOptions & { - context?: AttributeMap; - }): Promise; - /** - * Wrap the default save behavior with functionality to save to local - * storage if this is current user. - * - * @param {...any} args - * @returns {Promise} - */ - save(...args: Array): Promise; - /** - * Wrap the default destroy behavior with functionality that logs out - * the current user when it is destroyed - * - * @param {...any} args - * @returns {Parse.User} - */ - destroy(...args: Array): Promise; - /** - * Wrap the default fetch behavior with functionality to save to local - * storage if this is current user. - * - * @param {...any} args - * @returns {Parse.User} - */ - fetch(...args: Array): Promise; - /** - * Wrap the default fetchWithInclude behavior with functionality to save to local - * storage if this is current user. - * - * @param {...any} args - * @returns {Parse.User} - */ - fetchWithInclude(...args: Array): Promise; - /** - * Verify whether a given password is the password of the current user. - * - * @param {string} password The password to be verified. - * @param {object} options The options. - * @param {boolean} [options.ignoreEmailVerification=false] Set to `true` to bypass email verification and verify - * the password regardless of whether the email has been verified. This requires the master key. - * @returns {Promise} A promise that is fulfilled with a user when the password is correct. - */ - verifyPassword(password: string, options?: RequestOptions): Promise; - static readOnlyAttributes(): string[]; - /** - * Adds functionality to the existing Parse.User class. - * - * @param {object} protoProps A set of properties to add to the prototype - * @param {object} classProps A set of static properties to add to the class - * @static - * @returns {Parse.User} The newly extended Parse.User class - */ - static extend(protoProps: { - [prop: string]: any; - }, classProps: { - [prop: string]: any; - }): typeof ParseUser; - /** - * Retrieves the currently logged in ParseUser with a valid session, - * either from memory or localStorage, if necessary. - * - * @static - * @returns {Parse.Object} The currently logged in Parse.User. - */ - static current(): ParseUser | null; - /** - * Retrieves the currently logged in ParseUser from asynchronous Storage. - * - * @static - * @returns {Promise} A Promise that is resolved with the currently - * logged in Parse User - */ - static currentAsync(): Promise; - /** - * Signs up a new user with a username (or email) and password. - * This will create a new Parse.User on the server, and also persist the - * session in localStorage so that you can access the user using - * {@link #current}. - * - * @param {string} username The username (or email) to sign up with. - * @param {string} password The password to sign up with. - * @param {object} attrs Extra fields to set on the new user. - * @param {object} options - * @static - * @returns {Promise} A promise that is fulfilled with the user when - * the signup completes. - */ - static signUp(username: string, password: string, attrs: AttributeMap, options?: FullOptions): Promise; - /** - * Logs in a user with a username (or email) and password. On success, this - * saves the session to disk, so you can retrieve the currently logged in - * user using current. - * - * @param {string} username The username (or email) to log in with. - * @param {string} password The password to log in with. - * @param {object} options - * @static - * @returns {Promise} A promise that is fulfilled with the user when - * the login completes. - */ - static logIn(username: string, password: string, options?: FullOptions): Promise; - /** - * Logs in a user with a username (or email) and password, and authData. On success, this - * saves the session to disk, so you can retrieve the currently logged in - * user using current. - * - * @param {string} username The username (or email) to log in with. - * @param {string} password The password to log in with. - * @param {object} authData The authData to log in with. - * @param {object} options - * @static - * @returns {Promise} A promise that is fulfilled with the user when - * the login completes. - */ - static logInWithAdditionalAuth(username: string, password: string, authData: AuthData, options?: FullOptions): Promise; - /** - * Logs in a user with an objectId. On success, this saves the session - * to disk, so you can retrieve the currently logged in user using - * current. - * - * @param {string} userId The objectId for the user. - * @static - * @returns {Promise} A promise that is fulfilled with the user when - * the login completes. - */ - static loginAs(userId: string): Promise; - /** - * Logs in a user with a session token. On success, this saves the session - * to disk, so you can retrieve the currently logged in user using - * current. - * - * @param {string} sessionToken The sessionToken to log in with. - * @param {object} options - * @static - * @returns {Promise} A promise that is fulfilled with the user when - * the login completes. - */ - static become(sessionToken: string, options?: RequestOptions): Promise; - /** - * Retrieves a user with a session token. - * - * @param {string} sessionToken The sessionToken to get user with. - * @param {object} options - * @static - * @returns {Promise} A promise that is fulfilled with the user is fetched. - */ - static me(sessionToken: string, options?: RequestOptions): Promise; - /** - * Logs in a user with a session token. On success, this saves the session - * to disk, so you can retrieve the currently logged in user using - * current. If there is no session token the user will not logged in. - * - * @param {object} userJSON The JSON map of the User's data - * @static - * @returns {Promise} A promise that is fulfilled with the user when - * the login completes. - */ - static hydrate(userJSON: AttributeMap): Promise; - /** - * Static version of {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} - * - * @param provider - * @param options - * @param {object} [options.authData] - * @param saveOpts - * @static - * @returns {Promise} - */ - static logInWith(provider: any, options: { - authData?: AuthData; - }, saveOpts?: FullOptions): Promise; - /** - * Logs out the currently logged in user session. This will remove the - * session from disk, log out of linked services, and future calls to - * current will return null. - * - * @param {object} options - * @static - * @returns {Promise} A promise that is resolved when the session is - * destroyed on the server. - */ - static logOut(options?: RequestOptions): Promise; - /** - * Requests a password reset email to be sent to the specified email address - * associated with the user account. This email allows the user to securely - * reset their password on the Parse site. - * - * @param {string} email The email address associated with the user that - * forgot their password. - * @param {object} options - * @static - * @returns {Promise} - */ - static requestPasswordReset(email: string, options?: RequestOptions): Promise; - /** - * Request an email verification. - * - * @param {string} email The email address associated with the user that - * needs to verify their email. - * @param {object} options - * @static - * @returns {Promise} - */ - static requestEmailVerification(email: string, options?: RequestOptions): Promise; - /** - * Verify whether a given password is the password of the current user. - * @static - * - * @param {string} username The username of the user whose password should be verified. - * @param {string} password The password to be verified. - * @param {object} options The options. - * @param {boolean} [options.ignoreEmailVerification=false] Set to `true` to bypass email verification and verify - * the password regardless of whether the email has been verified. This requires the master key. - * @returns {Promise} A promise that is fulfilled with a user when the password is correct. - */ - static verifyPassword(username: string, password: string, options?: RequestOptions): Promise; - /** - * Allow someone to define a custom User class without className - * being rewritten to _User. The default behavior is to rewrite - * User to _User for legacy reasons. This allows developers to - * override that behavior. - * - * @param {boolean} isAllowed Whether or not to allow custom User class - * @static - */ - static allowCustomUserClass(isAllowed: boolean): void; - /** - * Allows a legacy application to start using revocable sessions. If the - * current session token is not revocable, a request will be made for a new, - * revocable session. - * It is not necessary to call this method from cloud code unless you are - * handling user signup or login from the server side. In a cloud code call, - * this function will not attempt to upgrade the current token. - * - * @param {object} options - * @static - * @returns {Promise} A promise that is resolved when the process has - * completed. If a replacement session token is requested, the promise - * will be resolved after a new token has been fetched. - */ - static enableRevocableSession(options?: RequestOptions): Promise; - /** - * Enables the use of become or the current user in a server - * environment. These features are disabled by default, since they depend on - * global objects that are not memory-safe for most servers. - * - * @static - */ - static enableUnsafeCurrentUser(): void; - /** - * Disables the use of become or the current user in any environment. - * These features are disabled on servers by default, since they depend on - * global objects that are not memory-safe for most servers. - * - * @static - */ - static disableUnsafeCurrentUser(): void; - /** - * When registering users with {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} a basic auth provider - * is automatically created for you. - * - * For advanced authentication, you can register an Auth provider to - * implement custom authentication, deauthentication. - * - * @param provider - * @see {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} - * @see {@link https://docs.parseplatform.org/js/guide/#custom-authentication-module Custom Authentication Module} - * @static - */ - static _registerAuthenticationProvider(provider: any): void; - /** - * @param provider - * @param options - * @param {object} [options.authData] - * @param saveOpts - * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#logInWith logInWith} - * @static - * @returns {Promise} - */ - static _logInWith(provider: any, options: { - authData?: AuthData; - }, saveOpts?: FullOptions): Promise; - static _clearCache(): void; - static _setCurrentUserCache(user: ParseUser): void; + /** + * @param {object} attributes The initial set of data to store in the user. + */ + constructor(attributes?: AttributeMap); + /** + * Request a revocable session token to replace the older style of token. + * + * @param {object} options + * @returns {Promise} A promise that is resolved when the replacement + * token has been fetched. + */ + _upgradeToRevocableSession(options: RequestOptions): Promise; + /** + * Parse allows you to link your users with {@link https://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication 3rd party authentication}, enabling + * your users to sign up or log into your application using their existing identities. + * Since 2.9.0 + * + * @see {@link https://docs.parseplatform.org/js/guide/#linking-users Linking Users} + * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} + * @param {object} options + * @param {object} [options.authData] AuthData to link with + *
              + *
            • If provider is string, options is {@link http://docs.parseplatform.org/parse-server/guide/#supported-3rd-party-authentications authData} + *
            • If provider is AuthProvider, options is saveOpts + *
            + * @param {object} saveOpts useMasterKey / sessionToken + * @returns {Promise} A promise that is fulfilled with the user is linked + */ + linkWith( + provider: AuthProviderType, + options: { + authData?: AuthData; + }, + saveOpts?: FullOptions + ): Promise; + /** + * @param provider + * @param options + * @param {object} [options.authData] + * @param saveOpts + * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} + * @returns {Promise} + */ + _linkWith( + provider: any, + options: { + authData?: AuthData; + }, + saveOpts?: FullOptions + ): Promise; + /** + * Synchronizes auth data for a provider (e.g. puts the access token in the + * right place to be used by the Facebook SDK). + * + * @param provider + */ + _synchronizeAuthData(provider: string | AuthProviderType): void; + /** + * Synchronizes authData for all providers. + */ + _synchronizeAllAuthData(): void; + /** + * Removes null values from authData (which exist temporarily for unlinking) + */ + _cleanupAuthData(): void; + /** + * Unlinks a user from a service. + * + * @param {string | AuthProvider} provider Name of auth provider or {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} + * @param {object} options MasterKey / SessionToken + * @returns {Promise} A promise that is fulfilled when the unlinking + * finishes. + */ + _unlinkFrom(provider: any, options?: FullOptions): Promise; + /** + * Checks whether a user is linked to a service. + * + * @param {object} provider service to link to + * @returns {boolean} true if link was successful + */ + _isLinked(provider: any): boolean; + /** + * Deauthenticates all providers. + */ + _logOutWithAll(): void; + /** + * Deauthenticates a single provider (e.g. removing access tokens from the + * Facebook SDK). + * + * @param {object} provider service to logout of + */ + _logOutWith(provider: any): void; + /** + * Class instance method used to maintain specific keys when a fetch occurs. + * Used to ensure that the session token is not lost. + * + * @returns {object} sessionToken + */ + _preserveFieldsOnFetch(): AttributeMap; + /** + * Returns true if current would return this user. + * + * @returns {boolean} true if user is cached on disk + */ + isCurrent(): boolean; + /** + * Returns true if current would return this user. + * + * @returns {Promise} true if user is cached on disk + */ + isCurrentAsync(): Promise; + stripAnonymity(): void; + restoreAnonimity(anonymousData: any): void; + /** + * Returns get("username"). + * + * @returns {string} + */ + getUsername(): string | null; + /** + * Calls set("username", username, options) and returns the result. + * + * @param {string} username + */ + setUsername(username: string): void; + /** + * Calls set("password", password, options) and returns the result. + * + * @param {string} password User's Password + */ + setPassword(password: string): void; + /** + * Returns get("email"). + * + * @returns {string} User's Email + */ + getEmail(): string | null; + /** + * Calls set("email", email) and returns the result. + * + * @param {string} email + * @returns {boolean} + */ + setEmail(email: string): boolean | ParseObject; + /** + * Returns the session token for this user, if the user has been logged in, + * or if it is the result of a query with the master key. Otherwise, returns + * undefined. + * + * @returns {string} the session token, or undefined + */ + getSessionToken(): string | null; + /** + * Checks whether this user is the current user and has been authenticated. + * + * @returns {boolean} whether this user is the current user and is logged in. + */ + authenticated(): boolean; + /** + * Signs up a new user. You should call this instead of save for + * new Parse.Users. This will create a new Parse.User on the server, and + * also persist the session on disk so that you can access the user using + * current. + * + *

            A username and password must be set before calling signUp.

            + * + * @param {object} attrs Extra fields to set on the new user, or null. + * @param {object} options + * @returns {Promise} A promise that is fulfilled when the signup + * finishes. + */ + signUp( + attrs: AttributeMap, + options?: FullOptions & { + context?: AttributeMap; + } + ): Promise; + /** + * Logs in a Parse.User. On success, this saves the session to disk, + * so you can retrieve the currently logged in user using + * current. + * + *

            A username and password must be set before calling logIn.

            + * + * @param {object} options + * @returns {Promise} A promise that is fulfilled with the user when + * the login is complete. + */ + logIn( + options?: FullOptions & { + context?: AttributeMap; + } + ): Promise; + /** + * Wrap the default save behavior with functionality to save to local + * storage if this is current user. + * + * @param {...any} args + * @returns {Promise} + */ + save(...args: Array): Promise; + /** + * Wrap the default destroy behavior with functionality that logs out + * the current user when it is destroyed + * + * @param {...any} args + * @returns {Parse.User} + */ + destroy(...args: Array): Promise; + /** + * Wrap the default fetch behavior with functionality to save to local + * storage if this is current user. + * + * @param {...any} args + * @returns {Parse.User} + */ + fetch(...args: Array): Promise; + /** + * Wrap the default fetchWithInclude behavior with functionality to save to local + * storage if this is current user. + * + * @param {...any} args + * @returns {Parse.User} + */ + fetchWithInclude(...args: Array): Promise; + /** + * Verify whether a given password is the password of the current user. + * + * @param {string} password The password to be verified. + * @param {object} options The options. + * @param {boolean} [options.ignoreEmailVerification] Set to `true` to bypass email verification and verify + * the password regardless of whether the email has been verified. This requires the master key. + * @returns {Promise} A promise that is fulfilled with a user when the password is correct. + */ + verifyPassword(password: string, options?: RequestOptions): Promise; + static readOnlyAttributes(): string[]; + /** + * Adds functionality to the existing Parse.User class. + * + * @param {object} protoProps A set of properties to add to the prototype + * @param {object} classProps A set of static properties to add to the class + * @static + * @returns {Parse.User} The newly extended Parse.User class + */ + static extend( + protoProps: { + [prop: string]: any; + }, + classProps: { + [prop: string]: any; + } + ): typeof ParseUser; + /** + * Retrieves the currently logged in ParseUser with a valid session, + * either from memory or localStorage, if necessary. + * + * @static + * @returns {Parse.Object} The currently logged in Parse.User. + */ + static current(): ParseUser | null; + /** + * Retrieves the currently logged in ParseUser from asynchronous Storage. + * + * @static + * @returns {Promise} A Promise that is resolved with the currently + * logged in Parse User + */ + static currentAsync(): Promise; + /** + * Signs up a new user with a username (or email) and password. + * This will create a new Parse.User on the server, and also persist the + * session in localStorage so that you can access the user using + * {@link #current}. + * + * @param {string} username The username (or email) to sign up with. + * @param {string} password The password to sign up with. + * @param {object} attrs Extra fields to set on the new user. + * @param {object} options + * @static + * @returns {Promise} A promise that is fulfilled with the user when + * the signup completes. + */ + static signUp( + username: string, + password: string, + attrs: AttributeMap, + options?: FullOptions + ): Promise; + /** + * Logs in a user with a username (or email) and password. On success, this + * saves the session to disk, so you can retrieve the currently logged in + * user using current. + * + * @param {string} username The username (or email) to log in with. + * @param {string} password The password to log in with. + * @param {object} options + * @static + * @returns {Promise} A promise that is fulfilled with the user when + * the login completes. + */ + static logIn(username: string, password: string, options?: FullOptions): Promise; + /** + * Logs in a user with a username (or email) and password, and authData. On success, this + * saves the session to disk, so you can retrieve the currently logged in + * user using current. + * + * @param {string} username The username (or email) to log in with. + * @param {string} password The password to log in with. + * @param {object} authData The authData to log in with. + * @param {object} options + * @static + * @returns {Promise} A promise that is fulfilled with the user when + * the login completes. + */ + static logInWithAdditionalAuth( + username: string, + password: string, + authData: AuthData, + options?: FullOptions + ): Promise; + /** + * Logs in a user with an objectId. On success, this saves the session + * to disk, so you can retrieve the currently logged in user using + * current. + * + * @param {string} userId The objectId for the user. + * @static + * @returns {Promise} A promise that is fulfilled with the user when + * the login completes. + */ + static loginAs(userId: string): Promise; + /** + * Logs in a user with a session token. On success, this saves the session + * to disk, so you can retrieve the currently logged in user using + * current. + * + * @param {string} sessionToken The sessionToken to log in with. + * @param {object} options + * @static + * @returns {Promise} A promise that is fulfilled with the user when + * the login completes. + */ + static become(sessionToken: string, options?: RequestOptions): Promise; + /** + * Retrieves a user with a session token. + * + * @param {string} sessionToken The sessionToken to get user with. + * @param {object} options + * @static + * @returns {Promise} A promise that is fulfilled with the user is fetched. + */ + static me(sessionToken: string, options?: RequestOptions): Promise; + /** + * Logs in a user with a session token. On success, this saves the session + * to disk, so you can retrieve the currently logged in user using + * current. If there is no session token the user will not logged in. + * + * @param {object} userJSON The JSON map of the User's data + * @static + * @returns {Promise} A promise that is fulfilled with the user when + * the login completes. + */ + static hydrate(userJSON: AttributeMap): Promise; + /** + * Static version of {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} + * + * @param provider + * @param options + * @param {object} [options.authData] + * @param saveOpts + * @static + * @returns {Promise} + */ + static logInWith( + provider: any, + options: { + authData?: AuthData; + }, + saveOpts?: FullOptions + ): Promise; + /** + * Logs out the currently logged in user session. This will remove the + * session from disk, log out of linked services, and future calls to + * current will return null. + * + * @param {object} options + * @static + * @returns {Promise} A promise that is resolved when the session is + * destroyed on the server. + */ + static logOut(options?: RequestOptions): Promise; + /** + * Requests a password reset email to be sent to the specified email address + * associated with the user account. This email allows the user to securely + * reset their password on the Parse site. + * + * @param {string} email The email address associated with the user that + * forgot their password. + * @param {object} options + * @static + * @returns {Promise} + */ + static requestPasswordReset(email: string, options?: RequestOptions): Promise; + /** + * Request an email verification. + * + * @param {string} email The email address associated with the user that + * needs to verify their email. + * @param {object} options + * @static + * @returns {Promise} + */ + static requestEmailVerification(email: string, options?: RequestOptions): Promise; + /** + * Verify whether a given password is the password of the current user. + * @static + * + * @param {string} username The username of the user whose password should be verified. + * @param {string} password The password to be verified. + * @param {object} options The options. + * @param {boolean} [options.ignoreEmailVerification] Set to `true` to bypass email verification and verify + * the password regardless of whether the email has been verified. This requires the master key. + * @returns {Promise} A promise that is fulfilled with a user when the password is correct. + */ + static verifyPassword( + username: string, + password: string, + options?: RequestOptions + ): Promise; + /** + * Allow someone to define a custom User class without className + * being rewritten to _User. The default behavior is to rewrite + * User to _User for legacy reasons. This allows developers to + * override that behavior. + * + * @param {boolean} isAllowed Whether or not to allow custom User class + * @static + */ + static allowCustomUserClass(isAllowed: boolean): void; + /** + * Allows a legacy application to start using revocable sessions. If the + * current session token is not revocable, a request will be made for a new, + * revocable session. + * It is not necessary to call this method from cloud code unless you are + * handling user signup or login from the server side. In a cloud code call, + * this function will not attempt to upgrade the current token. + * + * @param {object} options + * @static + * @returns {Promise} A promise that is resolved when the process has + * completed. If a replacement session token is requested, the promise + * will be resolved after a new token has been fetched. + */ + static enableRevocableSession(options?: RequestOptions): Promise; + /** + * Enables the use of become or the current user in a server + * environment. These features are disabled by default, since they depend on + * global objects that are not memory-safe for most servers. + * + * @static + */ + static enableUnsafeCurrentUser(): void; + /** + * Disables the use of become or the current user in any environment. + * These features are disabled on servers by default, since they depend on + * global objects that are not memory-safe for most servers. + * + * @static + */ + static disableUnsafeCurrentUser(): void; + /** + * When registering users with {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#linkWith linkWith} a basic auth provider + * is automatically created for you. + * + * For advanced authentication, you can register an Auth provider to + * implement custom authentication, deauthentication. + * + * @param provider + * @see {@link https://parseplatform.org/Parse-SDK-JS/api/master/AuthProvider.html AuthProvider} + * @see {@link https://docs.parseplatform.org/js/guide/#custom-authentication-module Custom Authentication Module} + * @static + */ + static _registerAuthenticationProvider(provider: any): void; + /** + * @param provider + * @param options + * @param {object} [options.authData] + * @param saveOpts + * @deprecated since 2.9.0 see {@link https://parseplatform.org/Parse-SDK-JS/api/master/Parse.User.html#logInWith logInWith} + * @static + * @returns {Promise} + */ + static _logInWith( + provider: any, + options: { + authData?: AuthData; + }, + saveOpts?: FullOptions + ): Promise; + static _clearCache(): void; + static _setCurrentUserCache(user: ParseUser): void; } export default ParseUser; diff --git a/types/Push.d.ts b/types/Push.d.ts index 367171126..24bf5214c 100644 --- a/types/Push.d.ts +++ b/types/Push.d.ts @@ -3,10 +3,10 @@ import type ParseObject from './ParseObject'; import type { WhereClause } from './ParseQuery'; import type { FullOptions } from './RESTController'; export type PushData = { - where?: WhereClause | ParseQuery; - push_time?: Date | string; - expiration_time?: Date | string; - expiration_interval?: number; + where?: WhereClause | ParseQuery; + push_time?: Date | string; + expiration_time?: Date | string; + expiration_interval?: number; }; /** * Contains functions to deal with Push in Parse. @@ -57,4 +57,7 @@ export declare function send(data: PushData, options?: FullOptions): Promise * @returns {Parse.Object} Status of Push. */ -export declare function getPushStatus(pushStatusId: string, options?: FullOptions): Promise; +export declare function getPushStatus( + pushStatusId: string, + options?: FullOptions +): Promise; diff --git a/types/RESTController.d.ts b/types/RESTController.d.ts index 540be2e6f..1d27d9c04 100644 --- a/types/RESTController.d.ts +++ b/types/RESTController.d.ts @@ -1,21 +1,21 @@ type RequestOptions = { - useMasterKey?: boolean; - sessionToken?: string; - installationId?: string; - returnStatus?: boolean; - batchSize?: number; - include?: any; - progress?: any; - context?: any; - usePost?: boolean; + useMasterKey?: boolean; + sessionToken?: string; + installationId?: string; + returnStatus?: boolean; + batchSize?: number; + include?: any; + progress?: any; + context?: any; + usePost?: boolean; }; type FullOptions = { - success?: any; - error?: any; - useMasterKey?: boolean; - sessionToken?: string; - installationId?: string; - progress?: any; - usePost?: boolean; + success?: any; + error?: any; + useMasterKey?: boolean; + sessionToken?: string; + installationId?: string; + progress?: any; + usePost?: boolean; }; export { RequestOptions, FullOptions }; diff --git a/types/SingleInstanceStateController.d.ts b/types/SingleInstanceStateController.d.ts index e84481bed..55bf5a304 100644 --- a/types/SingleInstanceStateController.d.ts +++ b/types/SingleInstanceStateController.d.ts @@ -14,14 +14,17 @@ export function estimateAttributes(obj: ObjectIdentifier): AttributeMap; export function commitServerChanges(obj: ObjectIdentifier, changes: AttributeMap): void; export function enqueueTask(obj: ObjectIdentifier, task: () => Promise): Promise; export function clearAllState(): void; -export function duplicateState(source: { +export function duplicateState( + source: { id: string; -}, dest: { + }, + dest: { id: string; -}): void; + } +): void; type ObjectIdentifier = { - className: string; - id: string; + className: string; + id: string; }; import { State } from './ObjectStateMutations'; import { AttributeMap } from './ObjectStateMutations'; diff --git a/types/Socket.weapp.d.ts b/types/Socket.weapp.d.ts index d5194b543..d52d46d6e 100644 --- a/types/Socket.weapp.d.ts +++ b/types/Socket.weapp.d.ts @@ -1,10 +1,10 @@ export = SocketWeapp; declare class SocketWeapp { - constructor(serverURL: any); - onopen: () => void; - onmessage: () => void; - onclose: () => void; - onerror: () => void; - send(data: any): void; - close(): void; + constructor(serverURL: any); + onopen: () => void; + onmessage: () => void; + onclose: () => void; + onerror: () => void; + send(data: any): void; + close(): void; } diff --git a/types/Storage.d.ts b/types/Storage.d.ts index 5b82a620a..6d18df390 100644 --- a/types/Storage.d.ts +++ b/types/Storage.d.ts @@ -1,14 +1,14 @@ export default Storage; declare namespace Storage { - function async(): boolean; - function getItem(path: string): string; - function getItemAsync(path: string): Promise; - function setItem(path: string, value: string): void; - function setItemAsync(path: string, value: string): Promise; - function removeItem(path: string): void; - function removeItemAsync(path: string): Promise; - function getAllKeys(): string[]; - function getAllKeysAsync(): Promise; - function generatePath(path: string): string; - function _clear(): void; + function async(): boolean; + function getItem(path: string): string; + function getItemAsync(path: string): Promise; + function setItem(path: string, value: string): void; + function setItemAsync(path: string, value: string): Promise; + function removeItem(path: string): void; + function removeItemAsync(path: string): Promise; + function getAllKeys(): string[]; + function getAllKeysAsync(): Promise; + function generatePath(path: string): string; + function _clear(): void; } diff --git a/types/TaskQueue.d.ts b/types/TaskQueue.d.ts index ae7e55fe9..ff3eed61f 100644 --- a/types/TaskQueue.d.ts +++ b/types/TaskQueue.d.ts @@ -1,11 +1,11 @@ type Task = { - task: () => Promise; - _completion: any; + task: () => Promise; + _completion: any; }; declare class TaskQueue { - queue: Array; - constructor(); - enqueue(task: () => Promise): Promise; - _dequeue(): void; + queue: Array; + constructor(); + enqueue(task: () => Promise): Promise; + _dequeue(): void; } export default TaskQueue; diff --git a/types/Xhr.weapp.d.ts b/types/Xhr.weapp.d.ts index 84263fafa..b1e58ae81 100644 --- a/types/Xhr.weapp.d.ts +++ b/types/Xhr.weapp.d.ts @@ -1,28 +1,28 @@ export = XhrWeapp; declare class XhrWeapp { - UNSENT: number; - OPENED: number; - HEADERS_RECEIVED: number; - LOADING: number; - DONE: number; - header: {}; - readyState: number; - status: number; - response: string; - responseType: string; - responseText: string; - responseHeader: {}; - method: string; - url: string; - onabort: () => void; - onprogress: () => void; - onerror: () => void; - onreadystatechange: () => void; - requestTask: any; - getAllResponseHeaders(): string; - getResponseHeader(key: any): any; - setRequestHeader(key: any, value: any): void; - open(method: any, url: any): void; - abort(): void; - send(data: any): void; + UNSENT: number; + OPENED: number; + HEADERS_RECEIVED: number; + LOADING: number; + DONE: number; + header: {}; + readyState: number; + status: number; + response: string; + responseType: string; + responseText: string; + responseHeader: {}; + method: string; + url: string; + onabort: () => void; + onprogress: () => void; + onerror: () => void; + onreadystatechange: () => void; + requestTask: any; + getAllResponseHeaders(): string; + getResponseHeader(key: any): any; + setRequestHeader(key: any, value: any): void; + open(method: any, url: any): void; + abort(): void; + send(data: any): void; } diff --git a/types/encode.d.ts b/types/encode.d.ts index d63c1e75a..943bcb39d 100644 --- a/types/encode.d.ts +++ b/types/encode.d.ts @@ -1 +1,7 @@ -export default function (value: any, disallowObjects?: boolean, forcePointers?: boolean, seen?: Array, offline?: boolean): any; +export default function ( + value: any, + disallowObjects?: boolean, + forcePointers?: boolean, + seen?: Array, + offline?: boolean +): any; diff --git a/types/index.d.ts b/types/index.d.ts index 8dd1ccd66..c53fea3f7 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -3,5 +3,5 @@ /// /// -import parse from "./Parse"; +import parse from './Parse'; export default parse; diff --git a/types/node.d.ts b/types/node.d.ts index d4bbf2ccf..f8a7890db 100644 --- a/types/node.d.ts +++ b/types/node.d.ts @@ -1,3 +1,3 @@ -import * as parse from "./index"; +import * as parse from './index'; export = parse; diff --git a/types/promiseUtils.d.ts b/types/promiseUtils.d.ts index e652712a0..a0f44e7c1 100644 --- a/types/promiseUtils.d.ts +++ b/types/promiseUtils.d.ts @@ -1,9 +1,11 @@ export declare function resolvingPromise(): Promise & { - resolve: (res: T) => void; - reject: (err: any) => void; + resolve: (res: T) => void; + reject: (err: any) => void; }; -export declare function when(promises: any): Promise | (Promise & { - resolve: (res: any) => void; - reject: (err: any) => void; -}); +export declare function when(promises: any): + | Promise + | (Promise & { + resolve: (res: any) => void; + reject: (err: any) => void; + }); export declare function continueWhile(test: () => any, emitter: () => Promise): any; diff --git a/types/react-native.d.ts b/types/react-native.d.ts index d4bbf2ccf..f8a7890db 100644 --- a/types/react-native.d.ts +++ b/types/react-native.d.ts @@ -1,3 +1,3 @@ -import * as parse from "./index"; +import * as parse from './index'; export = parse; diff --git a/types/tests.ts b/types/tests.ts index a275584e9..efcee7a0e 100644 --- a/types/tests.ts +++ b/types/tests.ts @@ -1,4 +1,4 @@ -import Parse from './Parse'; +import Parse from 'parse'; // Parse is a global type, but it can also be imported // class GameScore extends Parse.Object { @@ -2053,21 +2053,17 @@ import Parse from './Parse'; // } // } -function testSession() { - function testConstructor() { - // $ExpectType ParseSession - new Parse.Session(); +// $ExpectType ParseSession +new Parse.Session(); - // $ExpectType ParseSession - new Parse.Session({ example: 100 }); +// $ExpectType ParseSession +new Parse.Session({ example: 100 }); - // @ts-expect-error - new Parse.Session<{ example: number }>(); +// @ts-expect-error: invalid type +new Parse.Session<{ example: number }>(); - // @ts-expect-error - new Parse.Session<{ example: number }>({ example: 'hello' }); - } -} +// @ts-expect-error: invalid type +new Parse.Session<{ example: number }>({ example: 'hello' }); // function testUser() { // function testConstructor() { diff --git a/types/unsavedChildren.d.ts b/types/unsavedChildren.d.ts index 57881ba36..1e55e3aa4 100644 --- a/types/unsavedChildren.d.ts +++ b/types/unsavedChildren.d.ts @@ -8,4 +8,7 @@ import type ParseObject from './ParseObject'; * @param {boolean} allowDeepUnsaved * @returns {Array} */ -export default function unsavedChildren(obj: ParseObject, allowDeepUnsaved?: boolean): Array; +export default function unsavedChildren( + obj: ParseObject, + allowDeepUnsaved?: boolean +): Array; From f717a2bc848fd95aa030fae97268ff3938b7a899 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Sun, 19 May 2024 08:12:41 -0500 Subject: [PATCH 11/53] refactor: Replace require with import statement (#2143) --- .eslintrc.json | 1 + src/{Analytics.js => Analytics.ts} | 10 +- src/{AnonymousUtils.js => AnonymousUtils.ts} | 6 +- src/{CloudCode.js => CloudCode.ts} | 0 ...ryptoController.js => CryptoController.ts} | 9 +- src/{EventEmitter.js => EventEmitter.ts} | 3 +- src/LiveQueryClient.ts | 5 +- src/LocalDatastore.ts | 8 +- src/LocalDatastoreController.js | 5 - src/LocalDatastoreController.react-native.ts | 10 +- src/LocalDatastoreController.ts | 10 + src/{OfflineQuery.js => OfflineQuery.ts} | 13 +- src/Parse.ts | 3 +- src/ParseFile.ts | 7 +- src/ParseUser.ts | 4 +- src/Push.ts | 8 +- src/{RESTController.js => RESTController.ts} | 37 ++- src/{Socket.weapp.js => Socket.weapp.ts} | 21 +- src/{Storage.js => Storage.ts} | 14 +- ...rowser.js => StorageController.browser.ts} | 11 +- ...efault.js => StorageController.default.ts} | 8 +- src/StorageController.js | 9 - ...e.js => StorageController.react-native.ts} | 39 +-- src/StorageController.ts | 16 + ...er.weapp.js => StorageController.weapp.ts} | 13 +- ...etController.js => WebSocketController.ts} | 7 +- src/{Xhr.weapp.js => Xhr.weapp.ts} | 29 +- types/Analytics.d.ts | 4 +- types/AnonymousUtils.d.ts | 50 ++- types/CloudCode.d.ts | 307 ++++++++++++++++++ types/CryptoController.d.ts | 7 +- types/EventEmitter.d.ts | 7 +- types/LiveQueryClient.d.ts | 5 +- types/LocalDatastoreController.d.ts | 3 +- types/LocalDatastoreController.default.d.ts | 4 +- types/OfflineQuery.d.ts | 35 +- types/ParseFile.d.ts | 6 +- types/ParseObject.d.ts | 2 +- types/RESTController.d.ts | 25 +- types/Socket.weapp.d.ts | 4 +- types/Storage.d.ts | 26 +- types/StorageController.browser.d.ts | 15 +- types/StorageController.d.ts | 2 + types/StorageController.default.d.ts | 15 +- types/StorageController.react-native.d.ts | 12 +- types/StorageController.weapp.d.ts | 15 +- types/WebSocketController.d.ts | 2 + types/Xhr.weapp.d.ts | 11 +- 48 files changed, 654 insertions(+), 209 deletions(-) rename src/{Analytics.js => Analytics.ts} (92%) rename src/{AnonymousUtils.js => AnonymousUtils.ts} (98%) rename src/{CloudCode.js => CloudCode.ts} (100%) rename src/{CryptoController.js => CryptoController.ts} (75%) rename src/{EventEmitter.js => EventEmitter.ts} (91%) delete mode 100644 src/LocalDatastoreController.js create mode 100644 src/LocalDatastoreController.ts rename src/{OfflineQuery.js => OfflineQuery.ts} (98%) rename src/{RESTController.js => RESTController.ts} (94%) rename src/{Socket.weapp.js => Socket.weapp.ts} (60%) rename src/{Storage.js => Storage.ts} (92%) rename src/{StorageController.browser.js => StorageController.browser.ts} (79%) rename src/{StorageController.default.js => StorageController.default.ts} (88%) delete mode 100644 src/StorageController.js rename src/{StorageController.react-native.js => StorageController.react-native.ts} (51%) create mode 100644 src/StorageController.ts rename src/{StorageController.weapp.js => StorageController.weapp.ts} (73%) rename src/{WebSocketController.js => WebSocketController.ts} (75%) rename src/{Xhr.weapp.js => Xhr.weapp.ts} (78%) create mode 100644 types/CloudCode.d.ts create mode 100644 types/StorageController.d.ts create mode 100644 types/WebSocketController.d.ts diff --git a/.eslintrc.json b/.eslintrc.json index 25d55dca6..757b9a816 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -40,6 +40,7 @@ "require-atomic-updates": "off", "prefer-spread": "off", "prefer-rest-params": "off", + "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/triple-slash-reference": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off", diff --git a/src/Analytics.js b/src/Analytics.ts similarity index 92% rename from src/Analytics.js rename to src/Analytics.ts index 32f4cf82f..9a38f5912 100644 --- a/src/Analytics.js +++ b/src/Analytics.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; /** @@ -44,7 +40,7 @@ import CoreManager from './CoreManager'; * @returns {Promise} A promise that is resolved when the round-trip * to the server completes. */ -export function track(name: string, dimensions: { [key: string]: string }): Promise { +export function track(name: string, dimensions: { [key: string]: string }): Promise { name = name || ''; name = name.replace(/^\s*/, ''); name = name.replace(/\s*$/, ''); @@ -62,10 +58,10 @@ export function track(name: string, dimensions: { [key: string]: string }): Prom } const DefaultController = { - track(name, dimensions) { + track(name: string, dimensions: { [key: string]: string }) { const path = 'events/' + name; const RESTController = CoreManager.getRESTController(); - return RESTController.request('POST', path, { dimensions: dimensions }); + return RESTController.request('POST', path, { dimensions }); }, }; diff --git a/src/AnonymousUtils.js b/src/AnonymousUtils.ts similarity index 98% rename from src/AnonymousUtils.js rename to src/AnonymousUtils.ts index 2472f8b7d..99584c43f 100644 --- a/src/AnonymousUtils.js +++ b/src/AnonymousUtils.ts @@ -1,10 +1,6 @@ -/** - * @flow-weak - */ - import ParseUser from './ParseUser'; import type { RequestOptions } from './RESTController'; -const uuidv4 = require('./uuid'); +import uuidv4 from './uuid'; let registered = false; diff --git a/src/CloudCode.js b/src/CloudCode.ts similarity index 100% rename from src/CloudCode.js rename to src/CloudCode.ts diff --git a/src/CryptoController.js b/src/CryptoController.ts similarity index 75% rename from src/CryptoController.js rename to src/CryptoController.ts index 49b7fc725..211c5d283 100644 --- a/src/CryptoController.js +++ b/src/CryptoController.ts @@ -1,5 +1,5 @@ -let AES; -let ENC; +let AES: any; +let ENC: any; if (process.env.PARSE_BUILD === 'react-native') { const CryptoJS = require('react-native-crypto-js'); @@ -11,15 +11,16 @@ if (process.env.PARSE_BUILD === 'react-native') { } const CryptoController = { - encrypt(obj: any, secretKey: string): ?string { + encrypt(obj: any, secretKey: string): string { const encrypted = AES.encrypt(JSON.stringify(obj), secretKey); return encrypted.toString(); }, - decrypt(encryptedText: string, secretKey: string): ?string { + decrypt(encryptedText: string, secretKey: string): string { const decryptedStr = AES.decrypt(encryptedText, secretKey).toString(ENC); return decryptedStr; }, }; module.exports = CryptoController; +export default CryptoController; diff --git a/src/EventEmitter.js b/src/EventEmitter.ts similarity index 91% rename from src/EventEmitter.js rename to src/EventEmitter.ts index 1f1bcbd00..4f965641f 100644 --- a/src/EventEmitter.js +++ b/src/EventEmitter.ts @@ -2,7 +2,7 @@ * This is a simple wrapper to unify EventEmitter implementations across platforms. */ -let EventEmitter; +let EventEmitter: any; try { if (process.env.PARSE_BUILD === 'react-native') { @@ -18,3 +18,4 @@ try { // EventEmitter unavailable } module.exports = EventEmitter; +export default EventEmitter; diff --git a/src/LiveQueryClient.ts b/src/LiveQueryClient.ts index 469453ad3..b497fb4e9 100644 --- a/src/LiveQueryClient.ts +++ b/src/LiveQueryClient.ts @@ -72,9 +72,8 @@ const generateInterval = k => { * We expose three events to help you monitor the status of the LiveQueryClient. * *
            - * let Parse = require('parse/node');
            - * let LiveQueryClient = Parse.LiveQueryClient;
            - * let client = new LiveQueryClient({
            + * const LiveQueryClient = Parse.LiveQueryClient;
            + * const client = new LiveQueryClient({
              *   applicationId: '',
              *   serverURL: '',
              *   javascriptKey: '',
            diff --git a/src/LocalDatastore.ts b/src/LocalDatastore.ts
            index 72556df64..4720d7f02 100644
            --- a/src/LocalDatastore.ts
            +++ b/src/LocalDatastore.ts
            @@ -1,5 +1,5 @@
             import CoreManager from './CoreManager';
            -
            +import LocalDatastoreController from './LocalDatastoreController';
             import type ParseObject from './ParseObject';
             import ParseQuery from './ParseQuery';
             import { DEFAULT_PIN, PIN_PREFIX, OBJECT_PREFIX } from './LocalDatastoreUtils';
            @@ -390,9 +390,5 @@ const LocalDatastore = {
             module.exports = LocalDatastore;
             export default LocalDatastore;
             
            -if (process.env.PARSE_BUILD === 'react-native') {
            -  CoreManager.setLocalDatastoreController(require('./LocalDatastoreController.react-native'));
            -} else {
            -  CoreManager.setLocalDatastoreController(require('./LocalDatastoreController'));
            -}
            +CoreManager.setLocalDatastoreController(LocalDatastoreController);
             CoreManager.setLocalDatastore(LocalDatastore);
            diff --git a/src/LocalDatastoreController.js b/src/LocalDatastoreController.js
            deleted file mode 100644
            index df2e666d9..000000000
            --- a/src/LocalDatastoreController.js
            +++ /dev/null
            @@ -1,5 +0,0 @@
            -if (process.env.PARSE_BUILD === 'react-native') {
            -  module.exports = require('./LocalDatastoreController.react-native');
            -} else {
            -  module.exports = require('./LocalDatastoreController.default');
            -}
            diff --git a/src/LocalDatastoreController.react-native.ts b/src/LocalDatastoreController.react-native.ts
            index 66324465f..706323fa4 100644
            --- a/src/LocalDatastoreController.react-native.ts
            +++ b/src/LocalDatastoreController.react-native.ts
            @@ -1,5 +1,5 @@
             import { isLocalDatastoreKey } from './LocalDatastoreUtils';
            -const RNStorage = require('./StorageController.react-native');
            +import RNStorage from './StorageController.react-native';
             
             const LocalDatastoreController = {
               async fromPinWithName(name: string): Promise> {
            @@ -35,7 +35,7 @@ const LocalDatastoreController = {
                   }
                 }
                 const LDS = {};
            -    let results: any[] = [];
            +    let results: any = [];
                 try {
                   results = await RNStorage.multiGet(batch);
                 } catch (error) {
            @@ -57,8 +57,8 @@ const LocalDatastoreController = {
               async getRawStorage(): Promise {
                 const keys = await RNStorage.getAllKeysAsync();
                 const storage = {};
            -    const results = await RNStorage.multiGet(keys);
            -    results.map(pair => {
            +    const results = await RNStorage.multiGet(keys as string[]);
            +    results!.map(pair => {
                   const [key, value] = pair;
                   storage[key] = value;
                 });
            @@ -74,7 +74,7 @@ const LocalDatastoreController = {
                     batch.push(key);
                   }
                 }
            -    return RNStorage.multiRemove(batch).catch(error =>
            +    await RNStorage.multiRemove(batch).catch(error =>
                   console.error('Error clearing local datastore: ', error)
                 );
               },
            diff --git a/src/LocalDatastoreController.ts b/src/LocalDatastoreController.ts
            new file mode 100644
            index 000000000..f0acfea5b
            --- /dev/null
            +++ b/src/LocalDatastoreController.ts
            @@ -0,0 +1,10 @@
            +import RNLocalDatastoreController from './LocalDatastoreController.react-native';
            +import DefaultLocalDatastoreController from './LocalDatastoreController.default';
            +
            +let LocalDatastoreController: any = DefaultLocalDatastoreController;
            +
            +if (process.env.PARSE_BUILD === 'react-native') {
            +  LocalDatastoreController = RNLocalDatastoreController;
            +}
            +module.exports = LocalDatastoreController;
            +export default LocalDatastoreController;
            diff --git a/src/OfflineQuery.js b/src/OfflineQuery.ts
            similarity index 98%
            rename from src/OfflineQuery.js
            rename to src/OfflineQuery.ts
            index c38e04227..603226212 100644
            --- a/src/OfflineQuery.js
            +++ b/src/OfflineQuery.ts
            @@ -1,8 +1,8 @@
            -const equalObjects = require('./equals').default;
            -const decode = require('./decode').default;
            -const ParseError = require('./ParseError').default;
            -const ParsePolygon = require('./ParsePolygon').default;
            -const ParseGeoPoint = require('./ParseGeoPoint').default;
            +import equalObjects from './equals';
            +import decode from './decode';
            +import ParseError from './ParseError';
            +import ParsePolygon from './ParsePolygon';
            +import ParseGeoPoint from './ParseGeoPoint';
             /**
              * contains -- Determines if an object is contained in a list with special handling for Parse pointers.
              *
            @@ -333,7 +333,9 @@ function matchesKeyConstraints(className, object, objects, key, constraints) {
                 if (
                   toString.call(compareTo) === '[object Date]' ||
                   (typeof compareTo === 'string' &&
            +        // @ts-ignore
                     new Date(compareTo) !== 'Invalid Date' &&
            +        // @ts-ignore
                     !isNaN(new Date(compareTo)))
                 ) {
                   object[key] = new Date(object[key].iso ? object[key].iso : object[key]);
            @@ -594,3 +596,4 @@ const OfflineQuery = {
             };
             
             module.exports = OfflineQuery;
            +export default OfflineQuery;
            diff --git a/src/Parse.ts b/src/Parse.ts
            index a93779b65..142c3fe04 100644
            --- a/src/Parse.ts
            +++ b/src/Parse.ts
            @@ -17,6 +17,7 @@ import Config from './ParseConfig';
             import ParseError from './ParseError';
             import FacebookUtils from './FacebookUtils';
             import File from './ParseFile';
            +import * as Hooks from './ParseHooks';
             import GeoPoint from './ParseGeoPoint';
             import Polygon from './ParsePolygon';
             import Installation from './ParseInstallation';
            @@ -474,7 +475,7 @@ if (process.env.PARSE_BUILD === 'node') {
               Parse.Cloud.useMasterKey = function () {
                 CoreManager.set('USE_MASTER_KEY', true);
               };
            -  Parse.Hooks = require('./ParseHooks');
            +  Parse.Hooks = Hooks;
             }
             
             // For legacy requires, of the form `var Parse = require('parse').Parse`
            diff --git a/src/ParseFile.ts b/src/ParseFile.ts
            index b012dd398..3f656b84e 100644
            --- a/src/ParseFile.ts
            +++ b/src/ParseFile.ts
            @@ -2,13 +2,14 @@
             import CoreManager from './CoreManager';
             import type { FullOptions } from './RESTController';
             import ParseError from './ParseError';
            +import XhrWeapp from './Xhr.weapp';
             
            -let XHR = null;
            +let XHR: any = null;
             if (typeof XMLHttpRequest !== 'undefined') {
               XHR = XMLHttpRequest;
             }
             if (process.env.PARSE_BUILD === 'weapp') {
            -  XHR = require('./Xhr.weapp');
            +  XHR = XhrWeapp;
             }
             
             type Base64 = { base64: string };
            @@ -240,7 +241,7 @@ class ParseFile {
                * 
          * @returns {Promise | undefined} Promise that is resolved when the save finishes. */ - save(options?: FileSaveOptions): Promise | undefined { + save(options?: FileSaveOptions & { requestTask?: any }): Promise | undefined { options = options || {}; options.requestTask = task => (this._requestTask = task); options.metadata = this._metadata; diff --git a/src/ParseUser.ts b/src/ParseUser.ts index f26566813..8c7ed5bd0 100644 --- a/src/ParseUser.ts +++ b/src/ParseUser.ts @@ -1059,7 +1059,7 @@ const DefaultController = { ); } const path = Storage.generatePath(CURRENT_USER_KEY); - let userData = Storage.getItem(path); + let userData: any = Storage.getItem(path); currentUserCacheMatchesDisk = true; if (!userData) { currentUserCache = null; @@ -1097,7 +1097,7 @@ const DefaultController = { return Promise.resolve(null); } const path = Storage.generatePath(CURRENT_USER_KEY); - return Storage.getItemAsync(path).then(userData => { + return Storage.getItemAsync(path).then((userData: any) => { currentUserCacheMatchesDisk = true; if (!userData) { currentUserCache = null; diff --git a/src/Push.ts b/src/Push.ts index 38b995fbb..0c02f065f 100644 --- a/src/Push.ts +++ b/src/Push.ts @@ -65,7 +65,7 @@ export function send(data: PushData, options: FullOptions = {}): Promise throw new Error('expiration_time and expiration_interval cannot both be set.'); } - const pushOptions = { useMasterKey: true }; + const pushOptions: FullOptions = { useMasterKey: true }; if (options.hasOwnProperty('useMasterKey')) { pushOptions.useMasterKey = options.useMasterKey; } @@ -90,7 +90,7 @@ export function getPushStatus( pushStatusId: string, options: FullOptions = {} ): Promise { - const pushOptions = { useMasterKey: true }; + const pushOptions: FullOptions = { useMasterKey: true }; if (options.hasOwnProperty('useMasterKey')) { pushOptions.useMasterKey = options.useMasterKey; } @@ -99,8 +99,8 @@ export function getPushStatus( } const DefaultController = { - async send(data: PushData, options?: FullOptions) { - options.returnStatus = true; + async send(data: PushData, options?: FullOptions & { returnStatus?: boolean }) { + options!.returnStatus = true; const response = await CoreManager.getRESTController().request('POST', 'push', data, options); return response._headers?.['X-Parse-Push-Status-Id']; }, diff --git a/src/RESTController.js b/src/RESTController.ts similarity index 94% rename from src/RESTController.js rename to src/RESTController.ts index 95ad69bd0..1c70b156e 100644 --- a/src/RESTController.js +++ b/src/RESTController.ts @@ -1,12 +1,9 @@ -/** - * @flow - */ /* global XMLHttpRequest, XDomainRequest */ -const uuidv4 = require('./uuid'); - +import uuidv4 from './uuid'; import CoreManager from './CoreManager'; import ParseError from './ParseError'; import { resolvingPromise } from './promiseUtils'; +import XhrWeapp from './Xhr.weapp'; export type RequestOptions = { useMasterKey?: boolean; @@ -31,7 +28,19 @@ export type FullOptions = { usePost?: boolean; }; -let XHR = null; +type PayloadType = { + _context?: any; + _method?: string; + _ApplicationId: string; + _JavaScriptKey?: string; + _ClientVersion: string; + _MasterKey?: string; + _RevocableSession?: string; + _InstallationId?: string; + _SessionToken?: string; +}; + +let XHR: any = null; if (typeof XMLHttpRequest !== 'undefined') { XHR = XMLHttpRequest; } @@ -39,16 +48,18 @@ if (process.env.PARSE_BUILD === 'node') { XHR = require('xmlhttprequest').XMLHttpRequest; } if (process.env.PARSE_BUILD === 'weapp') { - XHR = require('./Xhr.weapp'); + XHR = XhrWeapp; } let useXDomainRequest = false; +// @ts-ignore if (typeof XDomainRequest !== 'undefined' && !('withCredentials' in new XMLHttpRequest())) { useXDomainRequest = true; } function ajaxIE9(method: string, url: string, data: any, headers?: any, options?: FullOptions) { return new Promise((resolve, reject) => { + // @ts-ignore const xdr = new XDomainRequest(); xdr.onload = function () { let response; @@ -78,7 +89,9 @@ function ajaxIE9(method: string, url: string, data: any, headers?: any, options? }; xdr.open(method, url); xdr.send(data); + // @ts-ignore if (options && typeof options.requestTask === 'function') { + // @ts-ignore options.requestTask(xdr); } }); @@ -203,8 +216,9 @@ const RESTController = { }); }; xhr.send(data); - + // @ts-ignore if (options && typeof options.requestTask === 'function') { + // @ts-ignore options.requestTask(xhr); } }; @@ -221,7 +235,7 @@ const RESTController = { } url += path; - const payload = {}; + const payload: Partial = {}; if (data && typeof data === 'object') { for (const k in data) { payload[k] = data[k]; @@ -264,7 +278,7 @@ const RESTController = { } const installationId = options.installationId; - let installationIdPromise; + let installationIdPromise: Promise; if (installationId && typeof installationId === 'string') { installationIdPromise = Promise.resolve(installationId); } else { @@ -307,7 +321,7 @@ const RESTController = { .catch(RESTController.handleError); }, - handleError(response) { + handleError(response: any) { // Transform the error into an instance of ParseError by trying to parse // the error string as JSON let error; @@ -342,3 +356,4 @@ const RESTController = { }; module.exports = RESTController; +export default RESTController; diff --git a/src/Socket.weapp.js b/src/Socket.weapp.ts similarity index 60% rename from src/Socket.weapp.js rename to src/Socket.weapp.ts index 7cebe889e..768a48060 100644 --- a/src/Socket.weapp.js +++ b/src/Socket.weapp.ts @@ -1,36 +1,53 @@ -module.exports = class SocketWeapp { +class SocketWeapp { + onopen: () => void; + onmessage: () => void; + onclose: () => void; + onerror: () => void; + constructor(serverURL) { this.onopen = () => {}; this.onmessage = () => {}; this.onclose = () => {}; this.onerror = () => {}; + // @ts-ignore wx.onSocketOpen(() => { this.onopen(); }); + // @ts-ignore wx.onSocketMessage(msg => { + // @ts-ignore this.onmessage(msg); }); + // @ts-ignore wx.onSocketClose(event => { + // @ts-ignore this.onclose(event); }); + // @ts-ignore wx.onSocketError(error => { + // @ts-ignore this.onerror(error); }); + // @ts-ignore wx.connectSocket({ url: serverURL, }); } send(data) { + // @ts-ignore wx.sendSocketMessage({ data }); } close() { + // @ts-ignore wx.closeSocket(); } -}; +} +module.exports = SocketWeapp; +export default SocketWeapp; diff --git a/src/Storage.js b/src/Storage.ts similarity index 92% rename from src/Storage.js rename to src/Storage.ts index 8f7599ea5..33261d52a 100644 --- a/src/Storage.js +++ b/src/Storage.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; const Storage = { @@ -10,7 +6,7 @@ const Storage = { return !!controller.async; }, - getItem(path: string): ?string { + getItem(path: string): string | null { const controller = CoreManager.getStorageController(); if (controller.async === 1) { throw new Error('Synchronous storage is not supported by the current storage controller'); @@ -18,7 +14,7 @@ const Storage = { return controller.getItem(path); }, - getItemAsync(path: string): Promise { + getItemAsync(path: string): Promise { const controller = CoreManager.getStorageController(); if (controller.async === 1) { return controller.getItemAsync(path); @@ -63,15 +59,15 @@ const Storage = { if (controller.async === 1) { throw new Error('Synchronous storage is not supported by the current storage controller'); } - return controller.getAllKeys(); + return controller.getAllKeys!(); }, getAllKeysAsync(): Promise> { const controller = CoreManager.getStorageController(); if (controller.async === 1) { - return controller.getAllKeysAsync(); + return controller.getAllKeysAsync!(); } - return Promise.resolve(controller.getAllKeys()); + return Promise.resolve(controller.getAllKeys!()); }, generatePath(path: string): string { diff --git a/src/StorageController.browser.js b/src/StorageController.browser.ts similarity index 79% rename from src/StorageController.browser.js rename to src/StorageController.browser.ts index 0fdcd37b7..924b5a167 100644 --- a/src/StorageController.browser.js +++ b/src/StorageController.browser.ts @@ -1,13 +1,9 @@ -/** - * @flow - * @private - */ /* global localStorage */ const StorageController = { async: 0, - getItem(path: string): ?string { + getItem(path: string): string | null { return localStorage.getItem(path); }, @@ -25,9 +21,9 @@ const StorageController = { }, getAllKeys() { - const keys = []; + const keys: string[] = []; for (let i = 0; i < localStorage.length; i += 1) { - keys.push(localStorage.key(i)); + keys.push(localStorage.key(i) as string); } return keys; }, @@ -38,3 +34,4 @@ const StorageController = { }; module.exports = StorageController; +export default StorageController; diff --git a/src/StorageController.default.js b/src/StorageController.default.ts similarity index 88% rename from src/StorageController.default.js rename to src/StorageController.default.ts index cb21dd54f..f9a6e65f0 100644 --- a/src/StorageController.default.js +++ b/src/StorageController.default.ts @@ -1,14 +1,9 @@ -/** - * @flow - * @private - */ - // When there is no native storage interface, we default to an in-memory map const memMap = {}; const StorageController = { async: 0, - getItem(path: string): ?string { + getItem(path: string): string | null { if (memMap.hasOwnProperty(path)) { return memMap[path]; } @@ -37,3 +32,4 @@ const StorageController = { }; module.exports = StorageController; +export default StorageController; diff --git a/src/StorageController.js b/src/StorageController.js deleted file mode 100644 index 33508d75b..000000000 --- a/src/StorageController.js +++ /dev/null @@ -1,9 +0,0 @@ -if (process.env.PARSE_BUILD === 'react-native') { - module.exports = require('./StorageController.react-native'); -} else if (process.env.PARSE_BUILD === 'browser') { - module.exports = require('./StorageController.browser'); -} else if (process.env.PARSE_BUILD === 'weapp') { - module.exports = require('./StorageController.weapp'); -} else { - module.exports = require('./StorageController.default'); -} diff --git a/src/StorageController.react-native.js b/src/StorageController.react-native.ts similarity index 51% rename from src/StorageController.react-native.js rename to src/StorageController.react-native.ts index e3ee63dce..23658a11c 100644 --- a/src/StorageController.react-native.js +++ b/src/StorageController.react-native.ts @@ -1,39 +1,35 @@ -/** - * @flow - * @private - */ import CoreManager from './CoreManager'; const StorageController = { async: 1, - getItemAsync(path: string): Promise { + getItemAsync(path: string): Promise { return new Promise((resolve, reject) => { - CoreManager.getAsyncStorage().getItem(path, (err, value) => { + CoreManager.getAsyncStorage()!.getItem(path, (err, value) => { if (err) { reject(err); } else { - resolve(value); + resolve(value || null); } }); }); }, - setItemAsync(path: string, value: string): Promise { + setItemAsync(path: string, value: string): Promise { return new Promise((resolve, reject) => { - CoreManager.getAsyncStorage().setItem(path, value, (err, value) => { + CoreManager.getAsyncStorage()!.setItem(path, value, err => { if (err) { reject(err); } else { - resolve(value); + resolve(); } }); }); }, - removeItemAsync(path: string): Promise { + removeItemAsync(path: string): Promise { return new Promise((resolve, reject) => { - CoreManager.getAsyncStorage().removeItem(path, err => { + CoreManager.getAsyncStorage()!.removeItem(path, err => { if (err) { reject(err); } else { @@ -43,33 +39,33 @@ const StorageController = { }); }, - getAllKeysAsync(): Promise { + getAllKeysAsync(): Promise { return new Promise((resolve, reject) => { - CoreManager.getAsyncStorage().getAllKeys((err, keys) => { + CoreManager.getAsyncStorage()!.getAllKeys((err, keys) => { if (err) { reject(err); } else { - resolve(keys); + resolve(keys || []); } }); }); }, - multiGet(keys: Array): Promise>> { + multiGet(keys: Array): Promise { return new Promise((resolve, reject) => { - CoreManager.getAsyncStorage().multiGet(keys, (err, result) => { + CoreManager.getAsyncStorage()!.multiGet(keys, (err, result) => { if (err) { reject(err); } else { - resolve(result); + resolve(result || null); } }); }); }, - multiRemove(keys: Array): Promise { + multiRemove(keys: Array): Promise> { return new Promise((resolve, reject) => { - CoreManager.getAsyncStorage().multiRemove(keys, err => { + CoreManager.getAsyncStorage()!.multiRemove(keys, err => { if (err) { reject(err); } else { @@ -80,8 +76,9 @@ const StorageController = { }, clear() { - return CoreManager.getAsyncStorage().clear(); + return CoreManager.getAsyncStorage()!.clear(); }, }; module.exports = StorageController; +export default StorageController; diff --git a/src/StorageController.ts b/src/StorageController.ts new file mode 100644 index 000000000..1c26076a0 --- /dev/null +++ b/src/StorageController.ts @@ -0,0 +1,16 @@ +import RNStorageController from './StorageController.react-native'; +import BrowserStorageController from './StorageController.browser'; +import WeappStorageController from './StorageController.weapp'; +import DefaultStorageController from './StorageController.default'; + +let StorageController: any = DefaultStorageController; + +if (process.env.PARSE_BUILD === 'react-native') { + StorageController = RNStorageController; +} else if (process.env.PARSE_BUILD === 'browser') { + StorageController = BrowserStorageController; +} else if (process.env.PARSE_BUILD === 'weapp') { + StorageController = WeappStorageController; +} +module.exports = StorageController; +export default StorageController; diff --git a/src/StorageController.weapp.js b/src/StorageController.weapp.ts similarity index 73% rename from src/StorageController.weapp.js rename to src/StorageController.weapp.ts index 321172c4e..6de4ddd00 100644 --- a/src/StorageController.weapp.js +++ b/src/StorageController.weapp.ts @@ -1,17 +1,14 @@ -/** - * @flow - * @private - */ - const StorageController = { async: 0, - getItem(path: string): ?string { + getItem(path: string): string | null { + // @ts-ignore return wx.getStorageSync(path); }, setItem(path: string, value: string) { try { + // @ts-ignore wx.setStorageSync(path, value); } catch (e) { // Quota exceeded @@ -19,17 +16,21 @@ const StorageController = { }, removeItem(path: string) { + // @ts-ignore wx.removeStorageSync(path); }, getAllKeys() { + // @ts-ignore const res = wx.getStorageInfoSync(); return res.keys; }, clear() { + // @ts-ignore wx.clearStorageSync(); }, }; module.exports = StorageController; +export default StorageController; diff --git a/src/WebSocketController.js b/src/WebSocketController.ts similarity index 75% rename from src/WebSocketController.js rename to src/WebSocketController.ts index 5a95582c5..e5daa477a 100644 --- a/src/WebSocketController.js +++ b/src/WebSocketController.ts @@ -1,4 +1,6 @@ /* global WebSocket */ +import ws from 'ws'; +import SocketWeapp from './Socket.weapp'; let WebSocketController; @@ -7,9 +9,9 @@ try { WebSocketController = typeof WebSocket === 'function' || typeof WebSocket === 'object' ? WebSocket : null; } else if (process.env.PARSE_BUILD === 'node') { - WebSocketController = require('ws'); + WebSocketController = ws; } else if (process.env.PARSE_BUILD === 'weapp') { - WebSocketController = require('./Socket.weapp'); + WebSocketController = SocketWeapp; } else if (process.env.PARSE_BUILD === 'react-native') { WebSocketController = WebSocket; } @@ -17,3 +19,4 @@ try { // WebSocket unavailable } module.exports = WebSocketController; +export default WebSocketController; diff --git a/src/Xhr.weapp.js b/src/Xhr.weapp.ts similarity index 78% rename from src/Xhr.weapp.js rename to src/Xhr.weapp.ts index cb9f90121..b001c9e9b 100644 --- a/src/Xhr.weapp.js +++ b/src/Xhr.weapp.ts @@ -1,4 +1,24 @@ -module.exports = class XhrWeapp { +class XhrWeapp { + UNSENT: number; + OPENED: number; + HEADERS_RECEIVED: number; + LOADING: number; + DONE: number; + header: any; + readyState: any; + status: number; + response: string | undefined; + responseType: string; + responseText: string; + responseHeader: any; + method: string; + url: string; + onabort: () => void; + onprogress: () => void; + onerror: () => void; + onreadystatechange: () => void; + requestTask: any; + constructor() { this.UNSENT = 0; this.OPENED = 1; @@ -55,6 +75,7 @@ module.exports = class XhrWeapp { } send(data) { + // @ts-ignore this.requestTask = wx.request({ url: this.url, method: this.method, @@ -71,6 +92,7 @@ module.exports = class XhrWeapp { }, fail: err => { this.requestTask = null; + // @ts-ignore this.onerror(err); }, }); @@ -80,7 +102,10 @@ module.exports = class XhrWeapp { loaded: res.totalBytesWritten, total: res.totalBytesExpectedToWrite, }; + // @ts-ignore this.onprogress(event); }); } -}; +} +module.exports = XhrWeapp; +export default XhrWeapp; diff --git a/types/Analytics.d.ts b/types/Analytics.d.ts index 5d260ca6c..ae2ff3ac9 100644 --- a/types/Analytics.d.ts +++ b/types/Analytics.d.ts @@ -37,9 +37,9 @@ * @returns {Promise} A promise that is resolved when the round-trip * to the server completes. */ -export function track( +export declare function track( name: string, dimensions: { [key: string]: string; } -): Promise; +): Promise; diff --git a/types/AnonymousUtils.d.ts b/types/AnonymousUtils.d.ts index ddb0bd644..d7517bf94 100644 --- a/types/AnonymousUtils.d.ts +++ b/types/AnonymousUtils.d.ts @@ -1,5 +1,34 @@ -export default AnonymousUtils; -declare namespace AnonymousUtils { +import ParseUser from './ParseUser'; +import type { RequestOptions } from './RESTController'; +/** + * Provides utility functions for working with Anonymously logged-in users.
          + * Anonymous users have some unique characteristics: + *
            + *
          • Anonymous users don't need a user name or password.
          • + *
              + *
            • Once logged out, an anonymous user cannot be recovered.
            • + *
            + *
          • signUp converts an anonymous user to a standard user with the given username and password.
          • + *
              + *
            • Data associated with the anonymous user is retained.
            • + *
            + *
          • logIn switches users without converting the anonymous user.
          • + *
              + *
            • Data associated with the anonymous user will be lost.
            • + *
            + *
          • Service logIn (e.g. Facebook, Twitter) will attempt to convert + * the anonymous user into a standard user by linking it to the service.
          • + *
              + *
            • If a user already exists that is linked to the service, it will instead switch to the existing user.
            • + *
            + *
          • Service linking (e.g. Facebook, Twitter) will convert the anonymous user + * into a standard user by linking it to the service.
          • + *
          + * + * @class Parse.AnonymousUtils + * @static + */ +declare const AnonymousUtils: { /** * Gets whether the user has their account linked to anonymous user. * @@ -11,7 +40,7 @@ declare namespace AnonymousUtils { * linked to an anonymous user. * @static */ - function isLinked(user: ParseUser): boolean; + isLinked(user: ParseUser): boolean; /** * Logs in a user Anonymously. * @@ -21,7 +50,7 @@ declare namespace AnonymousUtils { * @returns {Promise} Logged in user * @static */ - function logIn(options?: RequestOptions): Promise; + logIn(options?: RequestOptions): Promise; /** * Links Anonymous User to an existing PFUser. * @@ -32,7 +61,7 @@ declare namespace AnonymousUtils { * @returns {Promise} Linked with User * @static */ - function link(user: ParseUser, options?: RequestOptions): Promise; + link(user: ParseUser, options?: RequestOptions): Promise; /** * Returns true if Authentication Provider has been registered for use. * @@ -41,16 +70,15 @@ declare namespace AnonymousUtils { * @returns {boolean} * @static */ - function isRegistered(): boolean; - function _getAuthProvider(): { + isRegistered(): boolean; + _getAuthProvider(): { restoreAuthentication(): boolean; getAuthType(): string; getAuthData(): { authData: { - id: any; + id: string; }; }; }; -} -import ParseUser from './ParseUser'; -import { RequestOptions } from './RESTController'; +}; +export default AnonymousUtils; diff --git a/types/CloudCode.d.ts b/types/CloudCode.d.ts new file mode 100644 index 000000000..5307f7c29 --- /dev/null +++ b/types/CloudCode.d.ts @@ -0,0 +1,307 @@ +/** + * Defines a Cloud Function. + * + * **Available in Cloud Code only.** + * + * @function define + * @name Parse.Cloud.define + * @param {string} name The name of the Cloud Function + * @param {Function} data The Cloud Function to register. This function should take one parameter {@link Parse.Cloud.FunctionRequest} + */ +/** + * Registers an after delete function. + * + * **Available in Cloud Code only.** + * + * If you want to use afterDelete for a predefined class in the Parse JavaScript SDK (e.g. {@link Parse.User}), you should pass the class itself and not the String for arg1. + * ``` + * Parse.Cloud.afterDelete('MyCustomClass', (request) => { + * // code here + * }) + * + * Parse.Cloud.afterDelete(Parse.User, (request) => { + * // code here + * }) + *``` + * + * @function afterDelete + * @name Parse.Cloud.afterDelete + * @param {(string | Parse.Object)} arg1 The Parse.Object subclass to register the after delete function for. This can instead be a String that is the className of the subclass. + * @param {Function} func The function to run after a delete. This function should take just one parameter, {@link Parse.Cloud.TriggerRequest}. + */ +/** + * + * Registers an after save function. + * + * **Available in Cloud Code only.** + * + * If you want to use afterSave for a predefined class in the Parse JavaScript SDK (e.g. {@link Parse.User}), you should pass the class itself and not the String for arg1. + * + * ``` + * Parse.Cloud.afterSave('MyCustomClass', function(request) { + * // code here + * }) + * + * Parse.Cloud.afterSave(Parse.User, function(request) { + * // code here + * }) + * ``` + * + * @function afterSave + * @name Parse.Cloud.afterSave + * @param {(string | Parse.Object)} arg1 The Parse.Object subclass to register the after save function for. This can instead be a String that is the className of the subclass. + * @param {Function} func The function to run after a save. This function should take just one parameter, {@link Parse.Cloud.TriggerRequest}. + */ +/** + * Registers an before delete function. + * + * **Available in Cloud Code only.** + * + * If you want to use beforeDelete for a predefined class in the Parse JavaScript SDK (e.g. {@link Parse.User}), you should pass the class itself and not the String for arg1. + * ``` + * Parse.Cloud.beforeDelete('MyCustomClass', (request) => { + * // code here + * }) + * + * Parse.Cloud.beforeDelete(Parse.User, (request) => { + * // code here + * }) + *``` + * + * @function beforeDelete + * @name Parse.Cloud.beforeDelete + * @param {(string | Parse.Object)} arg1 The Parse.Object subclass to register the before delete function for. This can instead be a String that is the className of the subclass. + * @param {Function} func The function to run before a delete. This function should take just one parameter, {@link Parse.Cloud.TriggerRequest}. + */ +/** + * + * Registers an before save function. + * + * **Available in Cloud Code only.** + * + * If you want to use beforeSave for a predefined class in the Parse JavaScript SDK (e.g. {@link Parse.User}), you should pass the class itself and not the String for arg1. + * + * ``` + * Parse.Cloud.beforeSave('MyCustomClass', (request) => { + * // code here + * }) + * + * Parse.Cloud.beforeSave(Parse.User, (request) => { + * // code here + * }) + * ``` + * + * @function beforeSave + * @name Parse.Cloud.beforeSave + * @param {(string | Parse.Object)} arg1 The Parse.Object subclass to register the after save function for. This can instead be a String that is the className of the subclass. + * @param {Function} func The function to run before a save. This function should take just one parameter, {@link Parse.Cloud.TriggerRequest}. + */ +/** + * + * Registers an before save file function. A new Parse.File can be returned to override the file that gets saved. + * If you want to replace the rquesting Parse.File with a Parse.File that is already saved, simply return the already saved Parse.File. + * You can also add metadata to the file that will be stored via whatever file storage solution you're using. + * + * **Available in Cloud Code only.** + * + * Example: Adding metadata and tags + * ``` + * Parse.Cloud.beforeSaveFile(({ file, user }) => { + * file.addMetadata('foo', 'bar'); + * file.addTag('createdBy', user.id); + * }); + * + * ``` + * + * Example: replacing file with an already saved file + * + * ``` + * Parse.Cloud.beforeSaveFile(({ file, user }) => { + * return user.get('avatar'); + * }); + * + * ``` + * + * Example: replacing file with a different file + * + * ``` + * Parse.Cloud.beforeSaveFile(({ file, user }) => { + * const metadata = { foo: 'bar' }; + * const tags = { createdBy: user.id }; + * const newFile = new Parse.File(file.name(), , 'text/plain', metadata, tags); + * return newFile; + * }); + * + * ``` + * + * @function beforeSaveFile + * @name Parse.Cloud.beforeSaveFile + * @param {Function} func The function to run before a file saves. This function should take one parameter, a {@link Parse.Cloud.FileTriggerRequest}. + */ +/** + * + * Registers an after save file function. + * + * **Available in Cloud Code only.** + * + * Example: creating a new object that references this file in a separate collection + * ``` + * Parse.Cloud.afterSaveFile(async ({ file, user }) => { + * const fileObject = new Parse.Object('FileObject'); + * fileObject.set('metadata', file.metadata()); + * fileObject.set('tags', file.tags()); + * fileObject.set('name', file.name()); + * fileObject.set('createdBy', user); + * await fileObject.save({ sessionToken: user.getSessionToken() }); + * }); + * + * @method afterSaveFile + * @name Parse.Cloud.afterSaveFile + * @param {Function} func The function to run after a file saves. This function should take one parameter, a {@link Parse.Cloud.FileTriggerRequest}. + */ +/** + * @function beforeConnect + * @name Parse.Cloud.beforeConnect + * @param {Function} func The function to before connection is made. This function can be async and should take just one parameter, {@link Parse.Cloud.ConnectTriggerRequest}. + */ +/** + * + * Registers a before connect function. + * + * **Available in Cloud Code only.** + * + * Example: restrict LiveQueries to logged in users. + * ``` + * Parse.Cloud.beforeConnect((request) => { + * if (!request.user) { + * throw "Please login before you attempt to connect." + * } + * }); + * ``` + */ +/** + * @function beforeSubscribe + * @name Parse.Cloud.beforeSubscribe + * @param {(string | Parse.Object)} arg1 The Parse.Object subclass to register the before subscription function for. This can instead be a String that is the className of the subclass. + * @param {Function} func The function to run before a subscription. This function can be async and should take one parameter, a {@link Parse.Cloud.TriggerRequest}. + */ +/** + * + * Registers a before subscribe function. + * + * **Available in Cloud Code only.** + * Example: restrict subscriptions to MyObject to Admin accounts only. + * ``` + * Parse.Cloud.beforeSubscribe('MyObject', (request) => { + * if (!request.user.get('Admin')) { + * throw new Parse.Error(101, 'You are not authorized to subscribe to MyObject.'); + * } + * let query = request.query; // the Parse.Query + * query.select("name","year") + * }); + * ``` + */ +/** + * Makes an HTTP Request. + * + * **Available in Cloud Code only.** + * + * By default, Parse.Cloud.httpRequest does not follow redirects caused by HTTP 3xx response codes. You can use the followRedirects option in the {@link Parse.Cloud.HTTPOptions} object to change this behavior. + * + * Sample request: + * ``` + * Parse.Cloud.httpRequest({ + * url: 'http://www.example.com/' + * }).then(function(httpResponse) { + * // success + * console.log(httpResponse.text); + * },function(httpResponse) { + * // error + * console.error('Request failed with response code ' + httpResponse.status); + * }); + * ``` + * + * @function httpRequest + * @name Parse.Cloud.httpRequest + * @param {Parse.Cloud.HTTPOptions} options The Parse.Cloud.HTTPOptions object that makes the request. + * @returns {Promise} A promise that will be resolved with a {@link Parse.Cloud.HTTPResponse} object when the request completes. + */ +/** + * Defines a Background Job. + * + * **Available in Cloud Code only.** + * + * @function job + * @name Parse.Cloud.job + * @param {string} name The name of the Background Job + * @param {Function} func The Background Job to register. This function should take two parameters a {@link Parse.Cloud.JobRequest} and a {@link Parse.Cloud.JobStatus} + */ +/** + * @typedef Parse.Cloud.TriggerRequest + * @property {string} installationId If set, the installationId triggering the request. + * @property {boolean} master If true, means the master key was used. + * @property {Parse.User} user If set, the user that made the request. + * @property {Parse.Object} object The object triggering the hook. + * @property {string} ip The IP address of the client making the request. + * @property {object} headers The original HTTP headers for the request. + * @property {string} triggerName The name of the trigger (`beforeSave`, `afterSave`, ...) + * @property {object} log The current logger inside Parse Server. + * @property {Parse.Object} original If set, the object, as currently stored. + */ +/** + * @typedef Parse.Cloud.FileTriggerRequest + * @property {string} installationId If set, the installationId triggering the request. + * @property {boolean} master If true, means the master key was used. + * @property {Parse.User} user If set, the user that made the request. + * @property {Parse.File} file The file triggering the hook. + * @property {string} ip The IP address of the client making the request. + * @property {object} headers The original HTTP headers for the request. + * @property {string} triggerName The name of the trigger (`beforeSaveFile`, `afterSaveFile`, ...) + * @property {object} log The current logger inside Parse Server. + */ +/** + * @typedef Parse.Cloud.ConnectTriggerRequest + * @property {string} installationId If set, the installationId triggering the request. + * @property {boolean} useMasterKey If true, means the master key was used. + * @property {Parse.User} user If set, the user that made the request. + * @property {number} clients The number of clients connected. + * @property {number} subscriptions The number of subscriptions connected. + * @property {string} sessionToken If set, the session of the user that made the request. + */ +/** + * @typedef Parse.Cloud.FunctionRequest + * @property {string} installationId If set, the installationId triggering the request. + * @property {boolean} master If true, means the master key was used. + * @property {Parse.User} user If set, the user that made the request. + * @property {object} params The params passed to the cloud function. + */ +/** + * @typedef Parse.Cloud.JobRequest + * @property {object} params The params passed to the background job. + */ +/** + * @typedef Parse.Cloud.JobStatus + * @property {Function} error If error is called, will end the job unsuccessfully with an optional completion message to be stored in the job status. + * @property {Function} message If message is called with a string argument, will update the current message to be stored in the job status. + * @property {Function} success If success is called, will end the job successfullly with the optional completion message to be stored in the job status. + */ +/** + * @typedef Parse.Cloud.HTTPOptions + * @property {string | object} body The body of the request. If it is a JSON object, then the Content-Type set in the headers must be application/x-www-form-urlencoded or application/json. You can also set this to a {@link Buffer} object to send raw bytes. If you use a Buffer, you should also set the Content-Type header explicitly to describe what these bytes represent. + * @property {Function} error The function that is called when the request fails. It will be passed a Parse.Cloud.HTTPResponse object. + * @property {boolean} followRedirects Whether to follow redirects caused by HTTP 3xx responses. Defaults to false. + * @property {object} headers The headers for the request. + * @property {string} method The method of the request. GET, POST, PUT, DELETE, HEAD, and OPTIONS are supported. Will default to GET if not specified. + * @property {string | object} params The query portion of the url. You can pass a JSON object of key value pairs like params: {q : 'Sean Plott'} or a raw string like params:q=Sean Plott. + * @property {Function} success The function that is called when the request successfully completes. It will be passed a Parse.Cloud.HTTPResponse object. + * @property {string} url The url to send the request to. + */ +/** + * @typedef Parse.Cloud.HTTPResponse + * @property {Buffer} buffer The raw byte representation of the response body. Use this to receive binary data. See Buffer for more details. + * @property {object} cookies The cookies sent by the server. The keys in this object are the names of the cookies. The values are Parse.Cloud.Cookie objects. + * @property {object} data The parsed response body as a JavaScript object. This is only available when the response Content-Type is application/x-www-form-urlencoded or application/json. + * @property {object} headers The headers sent by the server. The keys in this object are the names of the headers. We do not support multiple response headers with the same name. In the common case of Set-Cookie headers, please use the cookies field instead. + * @property {number} status The status code. + * @property {string} text The raw text representation of the response body. + */ diff --git a/types/CryptoController.d.ts b/types/CryptoController.d.ts index 0cebcbf5f..362d3eca7 100644 --- a/types/CryptoController.d.ts +++ b/types/CryptoController.d.ts @@ -1,2 +1,5 @@ -export function encrypt(obj: any, secretKey: string): string; -export function decrypt(encryptedText: string, secretKey: string): string; +declare const CryptoController: { + encrypt(obj: any, secretKey: string): string; + decrypt(encryptedText: string, secretKey: string): string; +}; +export default CryptoController; diff --git a/types/EventEmitter.d.ts b/types/EventEmitter.d.ts index 14840f3fb..b995646ce 100644 --- a/types/EventEmitter.d.ts +++ b/types/EventEmitter.d.ts @@ -1,2 +1,5 @@ -export = EventEmitter; -export = EventEmitter; +/** + * This is a simple wrapper to unify EventEmitter implementations across platforms. + */ +declare let EventEmitter: any; +export default EventEmitter; diff --git a/types/LiveQueryClient.d.ts b/types/LiveQueryClient.d.ts index 301650880..49fbe38c5 100644 --- a/types/LiveQueryClient.d.ts +++ b/types/LiveQueryClient.d.ts @@ -14,9 +14,8 @@ import type ParseQuery from './ParseQuery'; * We expose three events to help you monitor the status of the LiveQueryClient. * *
          - * let Parse = require('parse/node');
          - * let LiveQueryClient = Parse.LiveQueryClient;
          - * let client = new LiveQueryClient({
          + * const LiveQueryClient = Parse.LiveQueryClient;
          + * const client = new LiveQueryClient({
            *   applicationId: '',
            *   serverURL: '',
            *   javascriptKey: '',
          diff --git a/types/LocalDatastoreController.d.ts b/types/LocalDatastoreController.d.ts
          index cb0ff5c3b..bbfa60388 100644
          --- a/types/LocalDatastoreController.d.ts
          +++ b/types/LocalDatastoreController.d.ts
          @@ -1 +1,2 @@
          -export {};
          +declare let LocalDatastoreController: any;
          +export default LocalDatastoreController;
          diff --git a/types/LocalDatastoreController.default.d.ts b/types/LocalDatastoreController.default.d.ts
          index 5f36329c3..3737f59a7 100644
          --- a/types/LocalDatastoreController.default.d.ts
          +++ b/types/LocalDatastoreController.default.d.ts
          @@ -1,7 +1,7 @@
           declare const LocalDatastoreController: {
             fromPinWithName(name: string): Promise>;
          -  pinWithName(name: string, value: any): any;
          -  unPinWithName(name: string): any;
          +  pinWithName(name: string, value: any): Promise;
          +  unPinWithName(name: string): Promise;
             getAllContents(): Promise;
             getRawStorage(): Promise;
             clear(): Promise;
          diff --git a/types/OfflineQuery.d.ts b/types/OfflineQuery.d.ts
          index a1044dcf4..1361e7efc 100644
          --- a/types/OfflineQuery.d.ts
          +++ b/types/OfflineQuery.d.ts
          @@ -1,17 +1,20 @@
          -export type RelativeTimeToDateResult = {
          -  /**
          -   * The conversion status, `error` if conversion failed or
          -   * `success` if conversion succeeded.
          -   */
          -  status: string;
          -  /**
          -   * The error message if conversion failed, or the relative
          -   * time indication (`past`, `present`, `future`) if conversion succeeded.
          -   */
          -  info: string;
          -  /**
          -   * The converted date, or `undefined` if conversion
          -   * failed.
          -   */
          -  result: Date | undefined;
          +/**
          + * matchesQuery -- Determines if an object would be returned by a Parse Query
          + * It's a lightweight, where-clause only implementation of a full query engine.
          + * Since we find queries that match objects, rather than objects that match
          + * queries, we can avoid building a full-blown query tool.
          + *
          + * @param className
          + * @param object
          + * @param objects
          + * @param query
          + * @private
          + * @returns {boolean}
          + */
          +declare function matchesQuery(className: any, object: any, objects: any, query: any): boolean;
          +declare function validateQuery(query: any): void;
          +declare const OfflineQuery: {
          +  matchesQuery: typeof matchesQuery;
          +  validateQuery: typeof validateQuery;
           };
          +export default OfflineQuery;
          diff --git a/types/ParseFile.d.ts b/types/ParseFile.d.ts
          index 48f1a4c4b..d7eab6ba3 100644
          --- a/types/ParseFile.d.ts
          +++ b/types/ParseFile.d.ts
          @@ -136,7 +136,11 @@ declare class ParseFile {
              * 
              * @returns {Promise | undefined} Promise that is resolved when the save finishes.
              */
          -  save(options?: FileSaveOptions): Promise | undefined;
          +  save(
          +    options?: FileSaveOptions & {
          +      requestTask?: any;
          +    }
          +  ): Promise | undefined;
             /**
              * Aborts the request if it has already been sent.
              */
          diff --git a/types/ParseObject.d.ts b/types/ParseObject.d.ts
          index abe5efc25..3fbaf71be 100644
          --- a/types/ParseObject.d.ts
          +++ b/types/ParseObject.d.ts
          @@ -866,7 +866,7 @@ declare class ParseObject {
             static saveAll(
               list: Array,
               options?: SaveOptions
          -  ): Promise;
          +  ): Promise;
             /**
              * Creates a reference to a subclass of Parse.Object with the given id. This
              * does not exist on Parse.Object, only on subclasses.
          diff --git a/types/RESTController.d.ts b/types/RESTController.d.ts
          index 1d27d9c04..e4e323917 100644
          --- a/types/RESTController.d.ts
          +++ b/types/RESTController.d.ts
          @@ -1,4 +1,4 @@
          -type RequestOptions = {
          +export type RequestOptions = {
             useMasterKey?: boolean;
             sessionToken?: string;
             installationId?: string;
          @@ -8,8 +8,9 @@ type RequestOptions = {
             progress?: any;
             context?: any;
             usePost?: boolean;
          +  ignoreEmailVerification?: boolean;
           };
          -type FullOptions = {
          +export type FullOptions = {
             success?: any;
             error?: any;
             useMasterKey?: boolean;
          @@ -18,4 +19,22 @@ type FullOptions = {
             progress?: any;
             usePost?: boolean;
           };
          -export { RequestOptions, FullOptions };
          +declare const RESTController: {
          +  ajax(
          +    method: string,
          +    url: string,
          +    data: any,
          +    headers?: any,
          +    options?: FullOptions
          +  ):
          +    | (Promise & {
          +        resolve: (res: any) => void;
          +        reject: (err: any) => void;
          +      })
          +    | Promise;
          +  request(method: string, path: string, data: any, options?: RequestOptions): Promise;
          +  handleError(response: any): Promise;
          +  _setXHR(xhr: any): void;
          +  _getXHR(): any;
          +};
          +export default RESTController;
          diff --git a/types/Socket.weapp.d.ts b/types/Socket.weapp.d.ts
          index d52d46d6e..de97ad385 100644
          --- a/types/Socket.weapp.d.ts
          +++ b/types/Socket.weapp.d.ts
          @@ -1,10 +1,10 @@
          -export = SocketWeapp;
           declare class SocketWeapp {
          -  constructor(serverURL: any);
             onopen: () => void;
             onmessage: () => void;
             onclose: () => void;
             onerror: () => void;
          +  constructor(serverURL: any);
             send(data: any): void;
             close(): void;
           }
          +export default SocketWeapp;
          diff --git a/types/Storage.d.ts b/types/Storage.d.ts
          index 6d18df390..4ecb4c2f2 100644
          --- a/types/Storage.d.ts
          +++ b/types/Storage.d.ts
          @@ -1,14 +1,14 @@
          +declare const Storage: {
          +  async(): boolean;
          +  getItem(path: string): string | null;
          +  getItemAsync(path: string): Promise;
          +  setItem(path: string, value: string): void;
          +  setItemAsync(path: string, value: string): Promise;
          +  removeItem(path: string): void;
          +  removeItemAsync(path: string): Promise;
          +  getAllKeys(): Array;
          +  getAllKeysAsync(): Promise>;
          +  generatePath(path: string): string;
          +  _clear(): void;
          +};
           export default Storage;
          -declare namespace Storage {
          -  function async(): boolean;
          -  function getItem(path: string): string;
          -  function getItemAsync(path: string): Promise;
          -  function setItem(path: string, value: string): void;
          -  function setItemAsync(path: string, value: string): Promise;
          -  function removeItem(path: string): void;
          -  function removeItemAsync(path: string): Promise;
          -  function getAllKeys(): string[];
          -  function getAllKeysAsync(): Promise;
          -  function generatePath(path: string): string;
          -  function _clear(): void;
          -}
          diff --git a/types/StorageController.browser.d.ts b/types/StorageController.browser.d.ts
          index b3f1f7fe0..1d736ba19 100644
          --- a/types/StorageController.browser.d.ts
          +++ b/types/StorageController.browser.d.ts
          @@ -1,6 +1,9 @@
          -export let async: number;
          -export function getItem(path: string): string;
          -export function setItem(path: string, value: string): void;
          -export function removeItem(path: string): void;
          -export function getAllKeys(): string[];
          -export function clear(): void;
          +declare const StorageController: {
          +  async: number;
          +  getItem(path: string): string | null;
          +  setItem(path: string, value: string): void;
          +  removeItem(path: string): void;
          +  getAllKeys(): string[];
          +  clear(): void;
          +};
          +export default StorageController;
          diff --git a/types/StorageController.d.ts b/types/StorageController.d.ts
          new file mode 100644
          index 000000000..a0cf36bc1
          --- /dev/null
          +++ b/types/StorageController.d.ts
          @@ -0,0 +1,2 @@
          +declare let StorageController: any;
          +export default StorageController;
          diff --git a/types/StorageController.default.d.ts b/types/StorageController.default.d.ts
          index b3f1f7fe0..1d736ba19 100644
          --- a/types/StorageController.default.d.ts
          +++ b/types/StorageController.default.d.ts
          @@ -1,6 +1,9 @@
          -export let async: number;
          -export function getItem(path: string): string;
          -export function setItem(path: string, value: string): void;
          -export function removeItem(path: string): void;
          -export function getAllKeys(): string[];
          -export function clear(): void;
          +declare const StorageController: {
          +  async: number;
          +  getItem(path: string): string | null;
          +  setItem(path: string, value: string): void;
          +  removeItem(path: string): void;
          +  getAllKeys(): string[];
          +  clear(): void;
          +};
          +export default StorageController;
          diff --git a/types/StorageController.react-native.d.ts b/types/StorageController.react-native.d.ts
          index cb0ff5c3b..538a3654a 100644
          --- a/types/StorageController.react-native.d.ts
          +++ b/types/StorageController.react-native.d.ts
          @@ -1 +1,11 @@
          -export {};
          +declare const StorageController: {
          +  async: number;
          +  getItemAsync(path: string): Promise;
          +  setItemAsync(path: string, value: string): Promise;
          +  removeItemAsync(path: string): Promise;
          +  getAllKeysAsync(): Promise;
          +  multiGet(keys: Array): Promise;
          +  multiRemove(keys: Array): Promise>;
          +  clear(): Promise;
          +};
          +export default StorageController;
          diff --git a/types/StorageController.weapp.d.ts b/types/StorageController.weapp.d.ts
          index 91bafa45b..267cbfe81 100644
          --- a/types/StorageController.weapp.d.ts
          +++ b/types/StorageController.weapp.d.ts
          @@ -1,6 +1,9 @@
          -export let async: number;
          -export function getItem(path: string): string;
          -export function setItem(path: string, value: string): void;
          -export function removeItem(path: string): void;
          -export function getAllKeys(): any;
          -export function clear(): void;
          +declare const StorageController: {
          +  async: number;
          +  getItem(path: string): string | null;
          +  setItem(path: string, value: string): void;
          +  removeItem(path: string): void;
          +  getAllKeys(): any;
          +  clear(): void;
          +};
          +export default StorageController;
          diff --git a/types/WebSocketController.d.ts b/types/WebSocketController.d.ts
          new file mode 100644
          index 000000000..72a78562d
          --- /dev/null
          +++ b/types/WebSocketController.d.ts
          @@ -0,0 +1,2 @@
          +declare let WebSocketController: any;
          +export default WebSocketController;
          diff --git a/types/Xhr.weapp.d.ts b/types/Xhr.weapp.d.ts
          index b1e58ae81..c214a1677 100644
          --- a/types/Xhr.weapp.d.ts
          +++ b/types/Xhr.weapp.d.ts
          @@ -1,17 +1,16 @@
          -export = XhrWeapp;
           declare class XhrWeapp {
             UNSENT: number;
             OPENED: number;
             HEADERS_RECEIVED: number;
             LOADING: number;
             DONE: number;
          -  header: {};
          -  readyState: number;
          +  header: any;
          +  readyState: any;
             status: number;
          -  response: string;
          +  response: string | undefined;
             responseType: string;
             responseText: string;
          -  responseHeader: {};
          +  responseHeader: any;
             method: string;
             url: string;
             onabort: () => void;
          @@ -19,6 +18,7 @@ declare class XhrWeapp {
             onerror: () => void;
             onreadystatechange: () => void;
             requestTask: any;
          +  constructor();
             getAllResponseHeaders(): string;
             getResponseHeader(key: any): any;
             setRequestHeader(key: any, value: any): void;
          @@ -26,3 +26,4 @@ declare class XhrWeapp {
             abort(): void;
             send(data: any): void;
           }
          +export default XhrWeapp;
          
          From acd59aaa55fd26cd7e475388c83ed23aa2227e3c Mon Sep 17 00:00:00 2001
          From: Parse Platform <90459499+parseplatformorg@users.noreply.github.com>
          Date: Sun, 19 May 2024 19:58:27 +0200
          Subject: [PATCH 12/53] refactor: Upgrade ws from 8.16.0 to 8.17.0 (#2144)
          
          ---
           package-lock.json | 72 ++++++++++++++++++++++++++++++++++++++++++-----
           package.json      |  2 +-
           2 files changed, 66 insertions(+), 8 deletions(-)
          
          diff --git a/package-lock.json b/package-lock.json
          index 5ef1dce28..349c6838d 100644
          --- a/package-lock.json
          +++ b/package-lock.json
          @@ -13,7 +13,7 @@
                   "idb-keyval": "6.2.1",
                   "react-native-crypto-js": "1.0.0",
                   "uuid": "9.0.1",
          -        "ws": "8.16.0",
          +        "ws": "^8.17.0",
                   "xmlhttprequest": "1.8.0"
                 },
                 "devDependencies": {
          @@ -24443,6 +24443,48 @@
                   "node": ">=10"
                 }
               },
          +    "node_modules/parse-server/node_modules/ws": {
          +      "version": "8.16.0",
          +      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
          +      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
          +      "dev": true,
          +      "engines": {
          +        "node": ">=10.0.0"
          +      },
          +      "peerDependencies": {
          +        "bufferutil": "^4.0.1",
          +        "utf-8-validate": ">=5.0.2"
          +      },
          +      "peerDependenciesMeta": {
          +        "bufferutil": {
          +          "optional": true
          +        },
          +        "utf-8-validate": {
          +          "optional": true
          +        }
          +      }
          +    },
          +    "node_modules/parse/node_modules/ws": {
          +      "version": "8.16.0",
          +      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
          +      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
          +      "dev": true,
          +      "engines": {
          +        "node": ">=10.0.0"
          +      },
          +      "peerDependencies": {
          +        "bufferutil": "^4.0.1",
          +        "utf-8-validate": ">=5.0.2"
          +      },
          +      "peerDependenciesMeta": {
          +        "bufferutil": {
          +          "optional": true
          +        },
          +        "utf-8-validate": {
          +          "optional": true
          +        }
          +      }
          +    },
               "node_modules/parse5": {
                 "version": "7.1.2",
                 "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
          @@ -29909,9 +29951,9 @@
                 }
               },
               "node_modules/ws": {
          -      "version": "8.16.0",
          -      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
          -      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
          +      "version": "8.17.0",
          +      "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
          +      "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
                 "engines": {
                   "node": ">=10.0.0"
                 },
          @@ -48536,6 +48578,15 @@
                   "uuid": "9.0.1",
                   "ws": "8.16.0",
                   "xmlhttprequest": "1.8.0"
          +      },
          +      "dependencies": {
          +        "ws": {
          +          "version": "8.16.0",
          +          "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
          +          "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
          +          "dev": true,
          +          "requires": {}
          +        }
                 }
               },
               "parse-asn1": {
          @@ -48758,6 +48809,13 @@
                         }
                       }
                     }
          +        },
          +        "ws": {
          +          "version": "8.16.0",
          +          "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
          +          "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
          +          "dev": true,
          +          "requires": {}
                   }
                 }
               },
          @@ -53130,9 +53188,9 @@
                 }
               },
               "ws": {
          -      "version": "8.16.0",
          -      "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
          -      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
          +      "version": "8.17.0",
          +      "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
          +      "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
                 "requires": {}
               },
               "xml-name-validator": {
          diff --git a/package.json b/package.json
          index 018a34639..87cad67d9 100644
          --- a/package.json
          +++ b/package.json
          @@ -33,7 +33,7 @@
               "idb-keyval": "6.2.1",
               "react-native-crypto-js": "1.0.0",
               "uuid": "9.0.1",
          -    "ws": "8.16.0",
          +    "ws": "8.17.0",
               "xmlhttprequest": "1.8.0"
             },
             "devDependencies": {
          
          From 31796f336626824add96f31f8fd42ef28e4c5f3f Mon Sep 17 00:00:00 2001
          From: Diamond Lewis 
          Date: Mon, 20 May 2024 07:08:50 -0500
          Subject: [PATCH 13/53] refactor: Remove Flow Type (#2145)
          
          ---
           .eslintrc.json                                |  12 -
           CONTRIBUTING.md                               |   2 +-
           babel-jest.js                                 |   1 -
           gulpfile.js                                   |   8 +-
           jsdoc-conf.json                               |   1 -
           package-lock.json                             |  73 +--
           package.json                                  |   3 -
           src/.flowconfig                               |  10 -
           ...{EventuallyQueue.js => EventuallyQueue.ts} |  32 +-
           ...oller.js => IndexedDBStorageController.ts} |  15 +-
           ...bscription.js => LiveQuerySubscription.ts} |  16 +-
           src/Parse.ts                                  |   6 +-
           src/{ParseACL.js => ParseACL.ts}              |  26 +-
           src/ParseError.js                             | 551 -----------------
           src/ParseError.ts                             | 556 ++++++++++++++++++
           src/{ParseLiveQuery.js => ParseLiveQuery.ts}  |  15 +-
           src/ParseObject.ts                            |   8 +-
           src/{ParseRelation.js => ParseRelation.ts}    |  14 +-
           ...er.js => SingleInstanceStateController.ts} |  46 +-
           ...er.js => UniqueInstanceStateController.ts} |  12 +-
           .../{AuthProvider.js => AuthProvider.ts}      |   4 -
           .../{react-native.js => react-native.ts}      |   0
           .../{xmlhttprequest.js => xmlhttprequest.ts}  |   0
           types/EventuallyQueue.d.ts                    |  93 +--
           types/IndexedDBStorageController.d.ts         |   2 +
           types/LiveQuerySubscription.d.ts              |  23 +-
           types/ParseACL.d.ts                           |  20 +-
           types/ParseError.d.ts                         | 531 ++++++++++++++---
           types/ParseLiveQuery.d.ts                     |  22 +-
           types/ParseObject.d.ts                        |   6 +-
           types/ParseRelation.d.ts                      |  14 +-
           types/SingleInstanceStateController.d.ts      |  47 +-
           types/UniqueInstanceStateController.d.ts      |  43 +-
           33 files changed, 1258 insertions(+), 954 deletions(-)
           delete mode 100644 src/.flowconfig
           rename src/{EventuallyQueue.js => EventuallyQueue.ts} (96%)
           rename src/{IndexedDBStorageController.js => IndexedDBStorageController.ts} (74%)
           rename src/{LiveQuerySubscription.js => LiveQuerySubscription.ts} (91%)
           rename src/{ParseACL.js => ParseACL.ts} (94%)
           delete mode 100644 src/ParseError.js
           create mode 100644 src/ParseError.ts
           rename src/{ParseLiveQuery.js => ParseLiveQuery.ts} (93%)
           rename src/{ParseRelation.js => ParseRelation.ts} (95%)
           rename src/{SingleInstanceStateController.js => SingleInstanceStateController.ts} (63%)
           rename src/{UniqueInstanceStateController.js => UniqueInstanceStateController.ts} (94%)
           rename src/interfaces/{AuthProvider.js => AuthProvider.ts} (98%)
           rename src/interfaces/{react-native.js => react-native.ts} (100%)
           rename src/interfaces/{xmlhttprequest.js => xmlhttprequest.ts} (100%)
           create mode 100644 types/IndexedDBStorageController.d.ts
          
          diff --git a/.eslintrc.json b/.eslintrc.json
          index 757b9a816..997cae317 100644
          --- a/.eslintrc.json
          +++ b/.eslintrc.json
          @@ -3,7 +3,6 @@
             "extends": [
               "eslint:recommended",
               "plugin:jsdoc/recommended",
          -    "plugin:flowtype/recommended",
               "plugin:@typescript-eslint/recommended"
             ],
             "env": {
          @@ -15,7 +14,6 @@
               "wx": true 
             },
             "plugins": [
          -    "flowtype",
               "jsdoc",
               "@typescript-eslint"
             ],
          @@ -46,7 +44,6 @@
               "@typescript-eslint/no-explicit-any": "off",
               "@typescript-eslint/no-var-requires": "off",
               "@typescript-eslint/no-non-null-assertion": "off",
          -    "flowtype/no-types-missing-file-annotation": 0,
               "jsdoc/require-jsdoc": 0,
               "jsdoc/require-returns-description": 0,
               "jsdoc/require-param-description": 0,
          @@ -59,15 +56,6 @@
                   "allowExtraTrailingParamDocs": true
                 }
               ],
          -    "jsdoc/check-tag-names": [
          -      "error",
          -      {
          -        "definedTags": [
          -          "flow",
          -          "flow-weak"
          -        ]
          -      }
          -    ],
               "jsdoc/no-undefined-types": [
                 "error",
                 {
          diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
          index d36f5f600..df4119263 100644
          --- a/CONTRIBUTING.md
          +++ b/CONTRIBUTING.md
          @@ -98,7 +98,7 @@ Parse Community has a [responsible Vulnerability Disclosure Program](https://git
           ## Coding Style
           
           * Most importantly, match the existing code style as much as possible.
          -* We use [Flow](http://flowtype.org/) and ES6 for this codebase. Use modern syntax whenever possible.
          +* We use ES6 for this codebase. Use modern syntax whenever possible.
           * Keep lines within 80 characters.
           * Always end lines with semicolons.
           
          diff --git a/babel-jest.js b/babel-jest.js
          index e17601e2a..9249b1a05 100644
          --- a/babel-jest.js
          +++ b/babel-jest.js
          @@ -8,5 +8,4 @@ module.exports = babelJest.createTransformer({
               useBuiltIns: 'entry',
               corejs: 3,
             }]],
          -  plugins: ['@babel/plugin-transform-flow-comments'],
           });
          diff --git a/gulpfile.js b/gulpfile.js
          index 90a4f9d93..667562399 100644
          --- a/gulpfile.js
          +++ b/gulpfile.js
          @@ -32,12 +32,12 @@ const PRESETS = {
             'react-native': ["@babel/preset-typescript", 'module:metro-react-native-babel-preset'],
           };
           const PLUGINS = {
          -  'browser': [transformRuntime, '@babel/plugin-transform-flow-comments', '@babel/plugin-proposal-class-properties', 'inline-package-json',
          +  'browser': [transformRuntime, '@babel/plugin-proposal-class-properties', 'inline-package-json',
               ['transform-inline-environment-variables', {'exclude': ['SERVER_RENDERING']}]],
          -  'weapp': [transformRuntime, '@babel/plugin-transform-flow-comments', '@babel/plugin-proposal-class-properties', 'inline-package-json',
          +  'weapp': [transformRuntime, '@babel/plugin-proposal-class-properties', 'inline-package-json',
               ['transform-inline-environment-variables', {'exclude': ['SERVER_RENDERING']}]],
          -  'node': ['@babel/plugin-transform-flow-comments', 'inline-package-json', 'transform-inline-environment-variables'],
          -  'react-native': ['@babel/plugin-transform-flow-comments', 'inline-package-json', 'transform-inline-environment-variables']
          +  'node': ['inline-package-json', 'transform-inline-environment-variables'],
          +  'react-native': ['inline-package-json', 'transform-inline-environment-variables']
           };
           
           const DEV_HEADER = (
          diff --git a/jsdoc-conf.json b/jsdoc-conf.json
          index 107f9e9a8..f351f6f5e 100644
          --- a/jsdoc-conf.json
          +++ b/jsdoc-conf.json
          @@ -3,7 +3,6 @@
             "babel": {
               "babelrc": false,
               "extensions": ["js", "ts", "jsx", "tsx"],
          -    "plugins": ["@babel/plugin-transform-flow-comments"],
               "presets": ["@babel/preset-typescript"]
             },
             "source": {
          diff --git a/package-lock.json b/package-lock.json
          index 349c6838d..9e12c786e 100644
          --- a/package-lock.json
          +++ b/package-lock.json
          @@ -13,14 +13,12 @@
                   "idb-keyval": "6.2.1",
                   "react-native-crypto-js": "1.0.0",
                   "uuid": "9.0.1",
          -        "ws": "^8.17.0",
          +        "ws": "8.17.0",
                   "xmlhttprequest": "1.8.0"
                 },
                 "devDependencies": {
                   "@babel/core": "7.22.0",
                   "@babel/plugin-proposal-class-properties": "7.18.6",
          -        "@babel/plugin-transform-flow-comments": "7.22.5",
          -        "@babel/plugin-transform-flow-strip-types": "7.21.0",
                   "@babel/plugin-transform-runtime": "7.21.4",
                   "@babel/preset-env": "7.21.5",
                   "@babel/preset-react": "7.22.5",
          @@ -44,7 +42,6 @@
                   "core-js": "3.30.2",
                   "cross-env": "7.0.2",
                   "eslint": "8.56.0",
          -        "eslint-plugin-flowtype": "8.0.3",
                   "eslint-plugin-jsdoc": "48.2.5",
                   "express": "4.18.2",
                   "gulp": "4.0.2",
          @@ -1725,23 +1722,6 @@
                   "@babel/core": "^7.0.0-0"
                 }
               },
          -    "node_modules/@babel/plugin-transform-flow-comments": {
          -      "version": "7.22.5",
          -      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.22.5.tgz",
          -      "integrity": "sha512-e2lp78CXh9N2Xu0BKVibzLooLNkr1pGrSuigKBDFefibKnEuBW1uTWZVbJm7ptteOekftR27Afupm7nB74rs6w==",
          -      "dev": true,
          -      "dependencies": {
          -        "@babel/generator": "^7.22.5",
          -        "@babel/helper-plugin-utils": "^7.22.5",
          -        "@babel/plugin-syntax-flow": "^7.22.5"
          -      },
          -      "engines": {
          -        "node": ">=6.9.0"
          -      },
          -      "peerDependencies": {
          -        "@babel/core": "^7.0.0-0"
          -      }
          -    },
               "node_modules/@babel/plugin-transform-flow-strip-types": {
                 "version": "7.21.0",
                 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz",
          @@ -11293,24 +11273,6 @@
                   "url": "https://opencollective.com/eslint"
                 }
               },
          -    "node_modules/eslint-plugin-flowtype": {
          -      "version": "8.0.3",
          -      "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz",
          -      "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==",
          -      "dev": true,
          -      "dependencies": {
          -        "lodash": "^4.17.21",
          -        "string-natural-compare": "^3.0.1"
          -      },
          -      "engines": {
          -        "node": ">=12.0.0"
          -      },
          -      "peerDependencies": {
          -        "@babel/plugin-syntax-flow": "^7.14.5",
          -        "@babel/plugin-transform-react-jsx": "^7.14.9",
          -        "eslint": "^8.1.0"
          -      }
          -    },
               "node_modules/eslint-plugin-jsdoc": {
                 "version": "48.2.5",
                 "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz",
          @@ -27766,12 +27728,6 @@
                   "node": ">=10"
                 }
               },
          -    "node_modules/string-natural-compare": {
          -      "version": "3.0.1",
          -      "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
          -      "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
          -      "dev": true
          -    },
               "node_modules/string-width": {
                 "version": "4.2.3",
                 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
          @@ -31246,17 +31202,6 @@
                   "@babel/helper-plugin-utils": "^7.18.6"
                 }
               },
          -    "@babel/plugin-transform-flow-comments": {
          -      "version": "7.22.5",
          -      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-comments/-/plugin-transform-flow-comments-7.22.5.tgz",
          -      "integrity": "sha512-e2lp78CXh9N2Xu0BKVibzLooLNkr1pGrSuigKBDFefibKnEuBW1uTWZVbJm7ptteOekftR27Afupm7nB74rs6w==",
          -      "dev": true,
          -      "requires": {
          -        "@babel/generator": "^7.22.5",
          -        "@babel/helper-plugin-utils": "^7.22.5",
          -        "@babel/plugin-syntax-flow": "^7.22.5"
          -      }
          -    },
               "@babel/plugin-transform-flow-strip-types": {
                 "version": "7.21.0",
                 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz",
          @@ -39027,16 +38972,6 @@
                   }
                 }
               },
          -    "eslint-plugin-flowtype": {
          -      "version": "8.0.3",
          -      "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz",
          -      "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==",
          -      "dev": true,
          -      "requires": {
          -        "lodash": "^4.17.21",
          -        "string-natural-compare": "^3.0.1"
          -      }
          -    },
               "eslint-plugin-jsdoc": {
                 "version": "48.2.5",
                 "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz",
          @@ -51426,12 +51361,6 @@
                   "strip-ansi": "^6.0.0"
                 }
               },
          -    "string-natural-compare": {
          -      "version": "3.0.1",
          -      "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
          -      "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
          -      "dev": true
          -    },
               "string-width": {
                 "version": "4.2.3",
                 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
          diff --git a/package.json b/package.json
          index 87cad67d9..40ac1e465 100644
          --- a/package.json
          +++ b/package.json
          @@ -39,8 +39,6 @@
             "devDependencies": {
               "@babel/core": "7.22.0",
               "@babel/plugin-proposal-class-properties": "7.18.6",
          -    "@babel/plugin-transform-flow-comments": "7.22.5",
          -    "@babel/plugin-transform-flow-strip-types": "7.21.0",
               "@babel/plugin-transform-runtime": "7.21.4",
               "@babel/preset-env": "7.21.5",
               "@babel/preset-react": "7.22.5",
          @@ -64,7 +62,6 @@
               "core-js": "3.30.2",
               "cross-env": "7.0.2",
               "eslint": "8.56.0",
          -    "eslint-plugin-flowtype": "8.0.3",
               "eslint-plugin-jsdoc": "48.2.5",
               "express": "4.18.2",
               "gulp": "4.0.2",
          diff --git a/src/.flowconfig b/src/.flowconfig
          deleted file mode 100644
          index e36f40442..000000000
          --- a/src/.flowconfig
          +++ /dev/null
          @@ -1,10 +0,0 @@
          -[ignore]
          -.*/node_modules/
          -.*/lib/
          -
          -[include]
          -
          -[libs]
          -
          -[options]
          -suppress_comment= \\(.\\|\n\\)*\\@flow-disable-next
          diff --git a/src/EventuallyQueue.js b/src/EventuallyQueue.ts
          similarity index 96%
          rename from src/EventuallyQueue.js
          rename to src/EventuallyQueue.ts
          index f4b59ffb5..a4cdb0ed8 100644
          --- a/src/EventuallyQueue.js
          +++ b/src/EventuallyQueue.ts
          @@ -1,9 +1,3 @@
          -/**
          - * https://github.com/francimedia/parse-js-local-storage
          - *
          - * @flow
          - */
          -
           import CoreManager from './CoreManager';
           import ParseError from './ParseError';
           import ParseObject from './ParseObject';
          @@ -27,9 +21,9 @@ type QueueObject = {
           type Queue = Array;
           
           const QUEUE_KEY = 'Parse/Eventually/Queue';
          -let queueCache = [];
          +let queueCache: QueueObject[] = [];
           let dirtyCache = true;
          -let polling = undefined;
          +let polling: ReturnType | undefined = undefined;
           
           /**
            * Provides utility functions to queue objects that will be
          @@ -50,7 +44,7 @@ const EventuallyQueue = {
              * @static
              * @see Parse.Object#saveEventually
              */
          -  save(object: ParseObject, serverOptions: SaveOptions = {}): Promise {
          +  save(object: ParseObject, serverOptions: SaveOptions = {}): Promise {
               return this.enqueue('save', object, serverOptions);
             },
           
          @@ -65,7 +59,7 @@ const EventuallyQueue = {
              * @static
              * @see Parse.Object#destroyEventually
              */
          -  destroy(object: ParseObject, serverOptions: RequestOptions = {}): Promise {
          +  destroy(object: ParseObject, serverOptions: RequestOptions = {}): Promise {
               return this.enqueue('destroy', object, serverOptions);
             },
           
          @@ -99,7 +93,7 @@ const EventuallyQueue = {
               action: string,
               object: ParseObject,
               serverOptions: SaveOptions | RequestOptions
          -  ): Promise {
          +  ): Promise {
               const queueData = await this.getQueue();
               const queueId = this.generateQueueId(action, object);
           
          @@ -127,7 +121,7 @@ const EventuallyQueue = {
               return this.setQueue(queueData);
             },
           
          -  store(data) {
          +  store(data: QueueObject[]) {
               return Storage.setItemAsync(QUEUE_KEY, JSON.stringify(data));
             },
           
          @@ -140,10 +134,10 @@ const EventuallyQueue = {
              *
              * @function getQueue
              * @name Parse.EventuallyQueue.getQueue
          -   * @returns {Promise}
          +   * @returns {Promise}
              * @static
              */
          -  async getQueue(): Promise {
          +  async getQueue(): Promise {
               if (dirtyCache) {
                 queueCache = JSON.parse((await this.load()) || '[]');
                 dirtyCache = false;
          @@ -189,7 +183,7 @@ const EventuallyQueue = {
              * @returns {Promise} A promise that is fulfilled when queue is cleared.
              * @static
              */
          -  clear(): Promise {
          +  clear(): Promise {
               queueCache = [];
               return this.store([]);
             },
          @@ -212,10 +206,10 @@ const EventuallyQueue = {
              *
              * @function length
              * @name Parse.EventuallyQueue.length
          -   * @returns {number}
          +   * @returns {Promise}
              * @static
              */
          -  async length(): number {
          +  async length(): Promise {
               const queueData = await this.getQueue();
               return queueData.length;
             },
          @@ -268,7 +262,7 @@ const EventuallyQueue = {
                 // Queued update was overwritten by other request. Do not save
                 if (
                   typeof object.updatedAt !== 'undefined' &&
          -          object.updatedAt > new Date(queueObject.object.createdAt)
          +          object.updatedAt > new Date(queueObject.object.createdAt as Date)
                 ) {
                   return this.remove(queueObject.queueId);
                 }
          @@ -345,7 +339,7 @@ const EventuallyQueue = {
             },
           
             _setPolling(flag: boolean) {
          -    polling = flag;
          +    polling = flag as any;
             },
           
             process: {
          diff --git a/src/IndexedDBStorageController.js b/src/IndexedDBStorageController.ts
          similarity index 74%
          rename from src/IndexedDBStorageController.js
          rename to src/IndexedDBStorageController.ts
          index da2d2e973..30a6726f6 100644
          --- a/src/IndexedDBStorageController.js
          +++ b/src/IndexedDBStorageController.ts
          @@ -1,15 +1,14 @@
          -/**
          - * @flow
          - */
           /* global window */
           
           import { createStore, del, set, get, clear, keys } from 'idb-keyval';
           
          +let IndexedDBStorageController: any;
          +
           if (typeof window !== 'undefined' && window.indexedDB) {
             try {
               const ParseStore = createStore('parseDB', 'parseStore');
           
          -    const IndexedDBStorageController = {
          +    IndexedDBStorageController = {
                 async: 1,
                 getItemAsync(path: string) {
                   return get(path, ParseStore);
          @@ -27,13 +26,13 @@ if (typeof window !== 'undefined' && window.indexedDB) {
                   return clear(ParseStore);
                 },
               };
          -
          -    module.exports = IndexedDBStorageController;
             } catch (_) {
               // IndexedDB not accessible
          -    module.exports = undefined;
          +    IndexedDBStorageController = undefined;
             }
           } else {
             // IndexedDB not supported
          -  module.exports = undefined;
          +  IndexedDBStorageController = undefined;
           }
          +module.exports = IndexedDBStorageController;
          +export default IndexedDBStorageController;
          diff --git a/src/LiveQuerySubscription.js b/src/LiveQuerySubscription.ts
          similarity index 91%
          rename from src/LiveQuerySubscription.js
          rename to src/LiveQuerySubscription.ts
          index 8a1368eb8..6b4c8a0c1 100644
          --- a/src/LiveQuerySubscription.js
          +++ b/src/LiveQuerySubscription.ts
          @@ -1,5 +1,6 @@
           import CoreManager from './CoreManager';
           import { resolvingPromise } from './promiseUtils';
          +import type ParseQuery from './ParseQuery';
           
           /**
            * Creates a new LiveQuery Subscription.
          @@ -84,12 +85,21 @@ import { resolvingPromise } from './promiseUtils';
            * });

          */ class Subscription { + id: string | number; + query: ParseQuery; + sessionToken?: string; + subscribePromise: any; + unsubscribePromise: any; + subscribed: boolean; + emitter: any; + on: any; + emit: any; /* - * @param {string} id - subscription id + * @param {string | number} id - subscription id * @param {string} query - query to subscribe to * @param {string} sessionToken - optional session token */ - constructor(id, query, sessionToken) { + constructor(id: string | number, query: ParseQuery, sessionToken?: string) { this.id = id; this.query = query; this.sessionToken = sessionToken; @@ -111,7 +121,7 @@ class Subscription { * * @returns {Promise} */ - unsubscribe(): Promise { + unsubscribe(): Promise { return CoreManager.getLiveQueryController() .getDefaultLiveQueryClient() .then(liveQueryClient => { diff --git a/src/Parse.ts b/src/Parse.ts index 142c3fe04..1ff3cce27 100644 --- a/src/Parse.ts +++ b/src/Parse.ts @@ -159,11 +159,11 @@ const Parse: ParseType = { * @member {EventuallyQueue} Parse.EventuallyQueue * @static */ - set EventuallyQueue(queue: EventuallyQueue) { + set EventuallyQueue(queue: typeof EventuallyQueue) { CoreManager.setEventuallyQueue(queue); }, - get EventuallyQueue() { + get EventuallyQueue(): any { return CoreManager.getEventuallyQueue(); }, @@ -316,7 +316,7 @@ const Parse: ParseType = { * @member {ParseLiveQuery} Parse.LiveQuery * @static */ - set LiveQuery(liveQuery: ParseLiveQuery) { + set LiveQuery(liveQuery: typeof ParseLiveQuery) { CoreManager.setLiveQuery(liveQuery); }, get LiveQuery() { diff --git a/src/ParseACL.js b/src/ParseACL.ts similarity index 94% rename from src/ParseACL.js rename to src/ParseACL.ts index 42f9ffb25..aab488941 100644 --- a/src/ParseACL.js +++ b/src/ParseACL.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import CoreManager from './CoreManager'; import type ParseRole from './ParseRole'; import type ParseUser from './ParseUser'; @@ -36,8 +32,8 @@ class ParseACL { if (arg1 && typeof arg1 === 'object') { const ParseUser = CoreManager.getParseUser(); if (arg1 instanceof ParseUser) { - this.setReadAccess(arg1, true); - this.setWriteAccess(arg1, true); + this.setReadAccess(arg1 as ParseUser, true); + this.setWriteAccess(arg1 as ParseUser, true); } else { for (const userId in arg1) { const accessList = arg1[userId]; @@ -105,9 +101,9 @@ class ParseACL { const ParseRole = CoreManager.getParseRole(); const ParseUser = CoreManager.getParseUser(); if (userId instanceof ParseUser) { - userId = userId.id; + userId = (userId as ParseUser).id!; } else if (userId instanceof ParseRole) { - const name = userId.getName(); + const name = (userId as ParseRole).getName(); if (!name) { throw new TypeError('Role must have a name'); } @@ -144,18 +140,18 @@ class ParseACL { const ParseRole = CoreManager.getParseRole(); const ParseUser = CoreManager.getParseUser(); if (userId instanceof ParseUser) { - userId = userId.id; + userId = (userId as ParseUser).id!; if (!userId) { throw new Error('Cannot get access for a ParseUser without an ID'); } } else if (userId instanceof ParseRole) { - const name = userId.getName(); + const name = (userId as ParseRole).getName(); if (!name) { throw new TypeError('Role must have a name'); } userId = 'role:' + name; } - const permissions = this.permissionsById[userId]; + const permissions = this.permissionsById[userId as string]; if (!permissions) { return false; } @@ -257,7 +253,7 @@ class ParseACL { const ParseRole = CoreManager.getParseRole(); if (role instanceof ParseRole) { // Normalize to the String name - role = role.getName(); + role = (role as ParseRole).getName()!; } if (typeof role !== 'string') { throw new TypeError('role must be a ParseRole or a String'); @@ -278,7 +274,7 @@ class ParseACL { const ParseRole = CoreManager.getParseRole(); if (role instanceof ParseRole) { // Normalize to the String name - role = role.getName(); + role = (role as ParseRole).getName()!; } if (typeof role !== 'string') { throw new TypeError('role must be a ParseRole or a String'); @@ -298,7 +294,7 @@ class ParseACL { const ParseRole = CoreManager.getParseRole(); if (role instanceof ParseRole) { // Normalize to the String name - role = role.getName(); + role = (role as ParseRole).getName()!; } if (typeof role !== 'string') { throw new TypeError('role must be a ParseRole or a String'); @@ -318,7 +314,7 @@ class ParseACL { const ParseRole = CoreManager.getParseRole(); if (role instanceof ParseRole) { // Normalize to the String name - role = role.getName(); + role = (role as ParseRole).getName()!; } if (typeof role !== 'string') { throw new TypeError('role must be a ParseRole or a String'); diff --git a/src/ParseError.js b/src/ParseError.js deleted file mode 100644 index c98227477..000000000 --- a/src/ParseError.js +++ /dev/null @@ -1,551 +0,0 @@ -import CoreManager from './CoreManager'; - -/** - * Constructs a new Parse.Error object with the given code and message. - * - * Parse.CoreManager.set('PARSE_ERRORS', [{ code, message }]) can be use to override error messages. - * - * @alias Parse.Error - */ -class ParseError extends Error { - /** - * @param {number} code An error code constant from Parse.Error. - * @param {string} message A detailed description of the error. - */ - constructor(code, message) { - super(message); - this.code = code; - let customMessage = message; - CoreManager.get('PARSE_ERRORS').forEach(error => { - if (error.code === code && error.code) { - customMessage = error.message; - } - }); - Object.defineProperty(this, 'message', { - enumerable: true, - value: customMessage, - }); - } - - toString() { - return 'ParseError: ' + this.code + ' ' + this.message; - } -} - -/** - * Error code indicating some error other than those enumerated here. - * - * @property {number} OTHER_CAUSE - * @static - */ -ParseError.OTHER_CAUSE = -1; - -/** - * Error code indicating that something has gone wrong with the server. - * - * @property {number} INTERNAL_SERVER_ERROR - * @static - */ -ParseError.INTERNAL_SERVER_ERROR = 1; - -/** - * Error code indicating the connection to the Parse servers failed. - * - * @property {number} CONNECTION_FAILED - * @static - */ -ParseError.CONNECTION_FAILED = 100; - -/** - * Error code indicating the specified object doesn't exist. - * - * @property {number} OBJECT_NOT_FOUND - * @static - */ -ParseError.OBJECT_NOT_FOUND = 101; - -/** - * Error code indicating you tried to query with a datatype that doesn't - * support it, like exact matching an array or object. - * - * @property {number} INVALID_QUERY - * @static - */ -ParseError.INVALID_QUERY = 102; - -/** - * Error code indicating a missing or invalid classname. Classnames are - * case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the - * only valid characters. - * - * @property {number} INVALID_CLASS_NAME - * @static - */ -ParseError.INVALID_CLASS_NAME = 103; - -/** - * Error code indicating an unspecified object id. - * - * @property {number} MISSING_OBJECT_ID - * @static - */ -ParseError.MISSING_OBJECT_ID = 104; - -/** - * Error code indicating an invalid key name. Keys are case-sensitive. They - * must start with a letter, and a-zA-Z0-9_ are the only valid characters. - * - * @property {number} INVALID_KEY_NAME - * @static - */ -ParseError.INVALID_KEY_NAME = 105; - -/** - * Error code indicating a malformed pointer. You should not see this unless - * you have been mucking about changing internal Parse code. - * - * @property {number} INVALID_POINTER - * @static - */ -ParseError.INVALID_POINTER = 106; - -/** - * Error code indicating that badly formed JSON was received upstream. This - * either indicates you have done something unusual with modifying how - * things encode to JSON, or the network is failing badly. - * - * @property {number} INVALID_JSON - * @static - */ -ParseError.INVALID_JSON = 107; - -/** - * Error code indicating that the feature you tried to access is only - * available internally for testing purposes. - * - * @property {number} COMMAND_UNAVAILABLE - * @static - */ -ParseError.COMMAND_UNAVAILABLE = 108; - -/** - * You must call Parse.initialize before using the Parse library. - * - * @property {number} NOT_INITIALIZED - * @static - */ -ParseError.NOT_INITIALIZED = 109; - -/** - * Error code indicating that a field was set to an inconsistent type. - * - * @property {number} INCORRECT_TYPE - * @static - */ -ParseError.INCORRECT_TYPE = 111; - -/** - * Error code indicating an invalid channel name. A channel name is either - * an empty string (the broadcast channel) or contains only a-zA-Z0-9_ - * characters and starts with a letter. - * - * @property {number} INVALID_CHANNEL_NAME - * @static - */ -ParseError.INVALID_CHANNEL_NAME = 112; - -/** - * Error code indicating that push is misconfigured. - * - * @property {number} PUSH_MISCONFIGURED - * @static - */ -ParseError.PUSH_MISCONFIGURED = 115; - -/** - * Error code indicating that the object is too large. - * - * @property {number} OBJECT_TOO_LARGE - * @static - */ -ParseError.OBJECT_TOO_LARGE = 116; - -/** - * Error code indicating that the operation isn't allowed for clients. - * - * @property {number} OPERATION_FORBIDDEN - * @static - */ -ParseError.OPERATION_FORBIDDEN = 119; - -/** - * Error code indicating the result was not found in the cache. - * - * @property {number} CACHE_MISS - * @static - */ -ParseError.CACHE_MISS = 120; - -/** - * Error code indicating that an invalid key was used in a nested - * JSONObject. - * - * @property {number} INVALID_NESTED_KEY - * @static - */ -ParseError.INVALID_NESTED_KEY = 121; - -/** - * Error code indicating that an invalid filename was used for ParseFile. - * A valid file name contains only a-zA-Z0-9_. characters and is between 1 - * and 128 characters. - * - * @property {number} INVALID_FILE_NAME - * @static - */ -ParseError.INVALID_FILE_NAME = 122; - -/** - * Error code indicating an invalid ACL was provided. - * - * @property {number} INVALID_ACL - * @static - */ -ParseError.INVALID_ACL = 123; - -/** - * Error code indicating that the request timed out on the server. Typically - * this indicates that the request is too expensive to run. - * - * @property {number} TIMEOUT - * @static - */ -ParseError.TIMEOUT = 124; - -/** - * Error code indicating that the email address was invalid. - * - * @property {number} INVALID_EMAIL_ADDRESS - * @static - */ -ParseError.INVALID_EMAIL_ADDRESS = 125; - -/** - * Error code indicating a missing content type. - * - * @property {number} MISSING_CONTENT_TYPE - * @static - */ -ParseError.MISSING_CONTENT_TYPE = 126; - -/** - * Error code indicating a missing content length. - * - * @property {number} MISSING_CONTENT_LENGTH - * @static - */ -ParseError.MISSING_CONTENT_LENGTH = 127; - -/** - * Error code indicating an invalid content length. - * - * @property {number} INVALID_CONTENT_LENGTH - * @static - */ -ParseError.INVALID_CONTENT_LENGTH = 128; - -/** - * Error code indicating a file that was too large. - * - * @property {number} FILE_TOO_LARGE - * @static - */ -ParseError.FILE_TOO_LARGE = 129; - -/** - * Error code indicating an error saving a file. - * - * @property {number} FILE_SAVE_ERROR - * @static - */ -ParseError.FILE_SAVE_ERROR = 130; - -/** - * Error code indicating that a unique field was given a value that is - * already taken. - * - * @property {number} DUPLICATE_VALUE - * @static - */ -ParseError.DUPLICATE_VALUE = 137; - -/** - * Error code indicating that a role's name is invalid. - * - * @property {number} INVALID_ROLE_NAME - * @static - */ -ParseError.INVALID_ROLE_NAME = 139; - -/** - * Error code indicating that an application quota was exceeded. Upgrade to - * resolve. - * - * @property {number} EXCEEDED_QUOTA - * @static - */ -ParseError.EXCEEDED_QUOTA = 140; - -/** - * Error code indicating that a Cloud Code script failed. - * - * @property {number} SCRIPT_FAILED - * @static - */ -ParseError.SCRIPT_FAILED = 141; - -/** - * Error code indicating that a Cloud Code validation failed. - * - * @property {number} VALIDATION_ERROR - * @static - */ -ParseError.VALIDATION_ERROR = 142; - -/** - * Error code indicating that invalid image data was provided. - * - * @property {number} INVALID_IMAGE_DATA - * @static - */ -ParseError.INVALID_IMAGE_DATA = 143; - -/** - * Error code indicating an unsaved file. - * - * @property {number} UNSAVED_FILE_ERROR - * @static - */ -ParseError.UNSAVED_FILE_ERROR = 151; - -/** - * Error code indicating an invalid push time. - * - * @property {number} INVALID_PUSH_TIME_ERROR - * @static - */ -ParseError.INVALID_PUSH_TIME_ERROR = 152; - -/** - * Error code indicating an error deleting a file. - * - * @property {number} FILE_DELETE_ERROR - * @static - */ -ParseError.FILE_DELETE_ERROR = 153; - -/** - * Error code indicating an error deleting an unnamed file. - * - * @property {number} FILE_DELETE_UNNAMED_ERROR - * @static - */ -ParseError.FILE_DELETE_UNNAMED_ERROR = 161; - -/** - * Error code indicating that the application has exceeded its request - * limit. - * - * @property {number} REQUEST_LIMIT_EXCEEDED - * @static - */ -ParseError.REQUEST_LIMIT_EXCEEDED = 155; - -/** - * Error code indicating that the request was a duplicate and has been discarded due to - * idempotency rules. - * - * @property {number} DUPLICATE_REQUEST - * @static - */ -ParseError.DUPLICATE_REQUEST = 159; - -/** - * Error code indicating an invalid event name. - * - * @property {number} INVALID_EVENT_NAME - * @static - */ -ParseError.INVALID_EVENT_NAME = 160; - -/** - * Error code indicating that a field had an invalid value. - * - * @property {number} INVALID_VALUE - * @static - */ -ParseError.INVALID_VALUE = 162; - -/** - * Error code indicating that the username is missing or empty. - * - * @property {number} USERNAME_MISSING - * @static - */ -ParseError.USERNAME_MISSING = 200; - -/** - * Error code indicating that the password is missing or empty. - * - * @property {number} PASSWORD_MISSING - * @static - */ -ParseError.PASSWORD_MISSING = 201; - -/** - * Error code indicating that the username has already been taken. - * - * @property {number} USERNAME_TAKEN - * @static - */ -ParseError.USERNAME_TAKEN = 202; - -/** - * Error code indicating that the email has already been taken. - * - * @property {number} EMAIL_TAKEN - * @static - */ -ParseError.EMAIL_TAKEN = 203; - -/** - * Error code indicating that the email is missing, but must be specified. - * - * @property {number} EMAIL_MISSING - * @static - */ -ParseError.EMAIL_MISSING = 204; - -/** - * Error code indicating that a user with the specified email was not found. - * - * @property {number} EMAIL_NOT_FOUND - * @static - */ -ParseError.EMAIL_NOT_FOUND = 205; - -/** - * Error code indicating that a user object without a valid session could - * not be altered. - * - * @property {number} SESSION_MISSING - * @static - */ -ParseError.SESSION_MISSING = 206; - -/** - * Error code indicating that a user can only be created through signup. - * - * @property {number} MUST_CREATE_USER_THROUGH_SIGNUP - * @static - */ -ParseError.MUST_CREATE_USER_THROUGH_SIGNUP = 207; - -/** - * Error code indicating that an an account being linked is already linked - * to another user. - * - * @property {number} ACCOUNT_ALREADY_LINKED - * @static - */ -ParseError.ACCOUNT_ALREADY_LINKED = 208; - -/** - * Error code indicating that the current session token is invalid. - * - * @property {number} INVALID_SESSION_TOKEN - * @static - */ -ParseError.INVALID_SESSION_TOKEN = 209; - -/** - * Error code indicating an error enabling or verifying MFA - * - * @property {number} MFA_ERROR - * @static - */ -ParseError.MFA_ERROR = 210; - -/** - * Error code indicating that a valid MFA token must be provided - * - * @property {number} MFA_TOKEN_REQUIRED - * @static - */ -ParseError.MFA_TOKEN_REQUIRED = 211; - -/** - * Error code indicating that a user cannot be linked to an account because - * that account's id could not be found. - * - * @property {number} LINKED_ID_MISSING - * @static - */ -ParseError.LINKED_ID_MISSING = 250; - -/** - * Error code indicating that a user with a linked (e.g. Facebook) account - * has an invalid session. - * - * @property {number} INVALID_LINKED_SESSION - * @static - */ -ParseError.INVALID_LINKED_SESSION = 251; - -/** - * Error code indicating that a service being linked (e.g. Facebook or - * Twitter) is unsupported. - * - * @property {number} UNSUPPORTED_SERVICE - * @static - */ -ParseError.UNSUPPORTED_SERVICE = 252; - -/** - * Error code indicating an invalid operation occured on schema - * - * @property {number} INVALID_SCHEMA_OPERATION - * @static - */ -ParseError.INVALID_SCHEMA_OPERATION = 255; - -/** - * Error code indicating that there were multiple errors. Aggregate errors - * have an "errors" property, which is an array of error objects with more - * detail about each error that occurred. - * - * @property {number} AGGREGATE_ERROR - * @static - */ -ParseError.AGGREGATE_ERROR = 600; - -/** - * Error code indicating the client was unable to read an input file. - * - * @property {number} FILE_READ_ERROR - * @static - */ -ParseError.FILE_READ_ERROR = 601; - -/** - * Error code indicating a real error code is unavailable because - * we had to use an XDomainRequest object to allow CORS requests in - * Internet Explorer, which strips the body from HTTP responses that have - * a non-2XX status code. - * - * @property {number} X_DOMAIN_REQUEST - * @static - */ -ParseError.X_DOMAIN_REQUEST = 602; - -export default ParseError; diff --git a/src/ParseError.ts b/src/ParseError.ts new file mode 100644 index 000000000..498e5a2fa --- /dev/null +++ b/src/ParseError.ts @@ -0,0 +1,556 @@ +import CoreManager from './CoreManager'; +import type ParseObject from './ParseObject'; + +/** + * Constructs a new Parse.Error object with the given code and message. + * + * Parse.CoreManager.set('PARSE_ERRORS', [{ code, message }]) can be use to override error messages. + * + * @alias Parse.Error + */ +class ParseError extends Error { + code: number; + message: string; + object?: ParseObject; + errors?: Error[]; + /** + * @param {number} code An error code constant from Parse.Error. + * @param {string} message A detailed description of the error. + */ + constructor(code: number, message?: string) { + super(message); + this.code = code; + let customMessage = message; + CoreManager.get('PARSE_ERRORS').forEach(error => { + if (error.code === code && error.code) { + customMessage = error.message; + } + }); + Object.defineProperty(this, 'message', { + enumerable: true, + value: customMessage, + }); + } + + toString() { + return 'ParseError: ' + this.code + ' ' + this.message; + } + + /** + * Error code indicating some error other than those enumerated here. + * + * @property {number} OTHER_CAUSE + * @static + */ + static OTHER_CAUSE = -1; + + /** + * Error code indicating that something has gone wrong with the server. + * + * @property {number} INTERNAL_SERVER_ERROR + * @static + */ + static INTERNAL_SERVER_ERROR = 1; + + /** + * Error code indicating the connection to the Parse servers failed. + * + * @property {number} CONNECTION_FAILED + * @static + */ + static CONNECTION_FAILED = 100; + + /** + * Error code indicating the specified object doesn't exist. + * + * @property {number} OBJECT_NOT_FOUND + * @static + */ + static OBJECT_NOT_FOUND = 101; + + /** + * Error code indicating you tried to query with a datatype that doesn't + * support it, like exact matching an array or object. + * + * @property {number} INVALID_QUERY + * @static + */ + static INVALID_QUERY = 102; + + /** + * Error code indicating a missing or invalid classname. Classnames are + * case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the + * only valid characters. + * + * @property {number} INVALID_CLASS_NAME + * @static + */ + static INVALID_CLASS_NAME = 103; + + /** + * Error code indicating an unspecified object id. + * + * @property {number} MISSING_OBJECT_ID + * @static + */ + static MISSING_OBJECT_ID = 104; + + /** + * Error code indicating an invalid key name. Keys are case-sensitive. They + * must start with a letter, and a-zA-Z0-9_ are the only valid characters. + * + * @property {number} INVALID_KEY_NAME + * @static + */ + static INVALID_KEY_NAME = 105; + + /** + * Error code indicating a malformed pointer. You should not see this unless + * you have been mucking about changing internal Parse code. + * + * @property {number} INVALID_POINTER + * @static + */ + static INVALID_POINTER = 106; + + /** + * Error code indicating that badly formed JSON was received upstream. This + * either indicates you have done something unusual with modifying how + * things encode to JSON, or the network is failing badly. + * + * @property {number} INVALID_JSON + * @static + */ + static INVALID_JSON = 107; + + /** + * Error code indicating that the feature you tried to access is only + * available internally for testing purposes. + * + * @property {number} COMMAND_UNAVAILABLE + * @static + */ + static COMMAND_UNAVAILABLE = 108; + + /** + * You must call Parse.initialize before using the Parse library. + * + * @property {number} NOT_INITIALIZED + * @static + */ + static NOT_INITIALIZED = 109; + + /** + * Error code indicating that a field was set to an inconsistent type. + * + * @property {number} INCORRECT_TYPE + * @static + */ + static INCORRECT_TYPE = 111; + + /** + * Error code indicating an invalid channel name. A channel name is either + * an empty string (the broadcast channel) or contains only a-zA-Z0-9_ + * characters and starts with a letter. + * + * @property {number} INVALID_CHANNEL_NAME + * @static + */ + static INVALID_CHANNEL_NAME = 112; + + /** + * Error code indicating that push is misconfigured. + * + * @property {number} PUSH_MISCONFIGURED + * @static + */ + static PUSH_MISCONFIGURED = 115; + + /** + * Error code indicating that the object is too large. + * + * @property {number} OBJECT_TOO_LARGE + * @static + */ + static OBJECT_TOO_LARGE = 116; + + /** + * Error code indicating that the operation isn't allowed for clients. + * + * @property {number} OPERATION_FORBIDDEN + * @static + */ + static OPERATION_FORBIDDEN = 119; + + /** + * Error code indicating the result was not found in the cache. + * + * @property {number} CACHE_MISS + * @static + */ + static CACHE_MISS = 120; + + /** + * Error code indicating that an invalid key was used in a nested + * JSONObject. + * + * @property {number} INVALID_NESTED_KEY + * @static + */ + static INVALID_NESTED_KEY = 121; + + /** + * Error code indicating that an invalid filename was used for ParseFile. + * A valid file name contains only a-zA-Z0-9_. characters and is between 1 + * and 128 characters. + * + * @property {number} INVALID_FILE_NAME + * @static + */ + static INVALID_FILE_NAME = 122; + + /** + * Error code indicating an invalid ACL was provided. + * + * @property {number} INVALID_ACL + * @static + */ + static INVALID_ACL = 123; + + /** + * Error code indicating that the request timed out on the server. Typically + * this indicates that the request is too expensive to run. + * + * @property {number} TIMEOUT + * @static + */ + static TIMEOUT = 124; + + /** + * Error code indicating that the email address was invalid. + * + * @property {number} INVALID_EMAIL_ADDRESS + * @static + */ + static INVALID_EMAIL_ADDRESS = 125; + + /** + * Error code indicating a missing content type. + * + * @property {number} MISSING_CONTENT_TYPE + * @static + */ + static MISSING_CONTENT_TYPE = 126; + + /** + * Error code indicating a missing content length. + * + * @property {number} MISSING_CONTENT_LENGTH + * @static + */ + static MISSING_CONTENT_LENGTH = 127; + + /** + * Error code indicating an invalid content length. + * + * @property {number} INVALID_CONTENT_LENGTH + * @static + */ + static INVALID_CONTENT_LENGTH = 128; + + /** + * Error code indicating a file that was too large. + * + * @property {number} FILE_TOO_LARGE + * @static + */ + static FILE_TOO_LARGE = 129; + + /** + * Error code indicating an error saving a file. + * + * @property {number} FILE_SAVE_ERROR + * @static + */ + static FILE_SAVE_ERROR = 130; + + /** + * Error code indicating that a unique field was given a value that is + * already taken. + * + * @property {number} DUPLICATE_VALUE + * @static + */ + static DUPLICATE_VALUE = 137; + + /** + * Error code indicating that a role's name is invalid. + * + * @property {number} INVALID_ROLE_NAME + * @static + */ + static INVALID_ROLE_NAME = 139; + + /** + * Error code indicating that an application quota was exceeded. Upgrade to + * resolve. + * + * @property {number} EXCEEDED_QUOTA + * @static + */ + static EXCEEDED_QUOTA = 140; + + /** + * Error code indicating that a Cloud Code script failed. + * + * @property {number} SCRIPT_FAILED + * @static + */ + static SCRIPT_FAILED = 141; + + /** + * Error code indicating that a Cloud Code validation failed. + * + * @property {number} VALIDATION_ERROR + * @static + */ + static VALIDATION_ERROR = 142; + + /** + * Error code indicating that invalid image data was provided. + * + * @property {number} INVALID_IMAGE_DATA + * @static + */ + static INVALID_IMAGE_DATA = 143; + + /** + * Error code indicating an unsaved file. + * + * @property {number} UNSAVED_FILE_ERROR + * @static + */ + static UNSAVED_FILE_ERROR = 151; + + /** + * Error code indicating an invalid push time. + * + * @property {number} INVALID_PUSH_TIME_ERROR + * @static + */ + static INVALID_PUSH_TIME_ERROR = 152; + + /** + * Error code indicating an error deleting a file. + * + * @property {number} FILE_DELETE_ERROR + * @static + */ + static FILE_DELETE_ERROR = 153; + + /** + * Error code indicating an error deleting an unnamed file. + * + * @property {number} FILE_DELETE_UNNAMED_ERROR + * @static + */ + static FILE_DELETE_UNNAMED_ERROR = 161; + + /** + * Error code indicating that the application has exceeded its request + * limit. + * + * @property {number} REQUEST_LIMIT_EXCEEDED + * @static + */ + static REQUEST_LIMIT_EXCEEDED = 155; + + /** + * Error code indicating that the request was a duplicate and has been discarded due to + * idempotency rules. + * + * @property {number} DUPLICATE_REQUEST + * @static + */ + static DUPLICATE_REQUEST = 159; + + /** + * Error code indicating an invalid event name. + * + * @property {number} INVALID_EVENT_NAME + * @static + */ + static INVALID_EVENT_NAME = 160; + + /** + * Error code indicating that a field had an invalid value. + * + * @property {number} INVALID_VALUE + * @static + */ + static INVALID_VALUE = 162; + + /** + * Error code indicating that the username is missing or empty. + * + * @property {number} USERNAME_MISSING + * @static + */ + static USERNAME_MISSING = 200; + + /** + * Error code indicating that the password is missing or empty. + * + * @property {number} PASSWORD_MISSING + * @static + */ + static PASSWORD_MISSING = 201; + + /** + * Error code indicating that the username has already been taken. + * + * @property {number} USERNAME_TAKEN + * @static + */ + static USERNAME_TAKEN = 202; + + /** + * Error code indicating that the email has already been taken. + * + * @property {number} EMAIL_TAKEN + * @static + */ + static EMAIL_TAKEN = 203; + + /** + * Error code indicating that the email is missing, but must be specified. + * + * @property {number} EMAIL_MISSING + * @static + */ + static EMAIL_MISSING = 204; + + /** + * Error code indicating that a user with the specified email was not found. + * + * @property {number} EMAIL_NOT_FOUND + * @static + */ + static EMAIL_NOT_FOUND = 205; + + /** + * Error code indicating that a user object without a valid session could + * not be altered. + * + * @property {number} SESSION_MISSING + * @static + */ + static SESSION_MISSING = 206; + + /** + * Error code indicating that a user can only be created through signup. + * + * @property {number} MUST_CREATE_USER_THROUGH_SIGNUP + * @static + */ + static MUST_CREATE_USER_THROUGH_SIGNUP = 207; + + /** + * Error code indicating that an an account being linked is already linked + * to another user. + * + * @property {number} ACCOUNT_ALREADY_LINKED + * @static + */ + static ACCOUNT_ALREADY_LINKED = 208; + + /** + * Error code indicating that the current session token is invalid. + * + * @property {number} INVALID_SESSION_TOKEN + * @static + */ + static INVALID_SESSION_TOKEN = 209; + + /** + * Error code indicating an error enabling or verifying MFA + * + * @property {number} MFA_ERROR + * @static + */ + static MFA_ERROR = 210; + + /** + * Error code indicating that a valid MFA token must be provided + * + * @property {number} MFA_TOKEN_REQUIRED + * @static + */ + static MFA_TOKEN_REQUIRED = 211; + + /** + * Error code indicating that a user cannot be linked to an account because + * that account's id could not be found. + * + * @property {number} LINKED_ID_MISSING + * @static + */ + static LINKED_ID_MISSING = 250; + + /** + * Error code indicating that a user with a linked (e.g. Facebook) account + * has an invalid session. + * + * @property {number} INVALID_LINKED_SESSION + * @static + */ + static INVALID_LINKED_SESSION = 251; + + /** + * Error code indicating that a service being linked (e.g. Facebook or + * Twitter) is unsupported. + * + * @property {number} UNSUPPORTED_SERVICE + * @static + */ + static UNSUPPORTED_SERVICE = 252; + + /** + * Error code indicating an invalid operation occured on schema + * + * @property {number} INVALID_SCHEMA_OPERATION + * @static + */ + static INVALID_SCHEMA_OPERATION = 255; + + /** + * Error code indicating that there were multiple errors. Aggregate errors + * have an "errors" property, which is an array of error objects with more + * detail about each error that occurred. + * + * @property {number} AGGREGATE_ERROR + * @static + */ + static AGGREGATE_ERROR = 600; + + /** + * Error code indicating the client was unable to read an input file. + * + * @property {number} FILE_READ_ERROR + * @static + */ + static FILE_READ_ERROR = 601; + + /** + * Error code indicating a real error code is unavailable because + * we had to use an XDomainRequest object to allow CORS requests in + * Internet Explorer, which strips the body from HTTP responses that have + * a non-2XX status code. + * + * @property {number} X_DOMAIN_REQUEST + * @static + */ + static X_DOMAIN_REQUEST = 602; +} + +export default ParseError; diff --git a/src/ParseLiveQuery.js b/src/ParseLiveQuery.ts similarity index 93% rename from src/ParseLiveQuery.js rename to src/ParseLiveQuery.ts index c293133c7..8c7e8188f 100644 --- a/src/ParseLiveQuery.js +++ b/src/ParseLiveQuery.ts @@ -1,6 +1,3 @@ -/** - * @flow - */ import LiveQueryClient from './LiveQueryClient'; import CoreManager from './CoreManager'; @@ -36,11 +33,15 @@ function getLiveQueryClient(): Promise { * @static */ class LiveQuery { + emitter: any; + on: any; + emit: any; + constructor() { const EventEmitter = CoreManager.getEventEmitter(); this.emitter = new EventEmitter(); - this.on = (eventName, listener) => this.emitter.on(eventName, listener); - this.emit = (eventName, ...args) => this.emitter.emit(eventName, ...args); + this.on = (eventName: string, listener: any) => this.emitter.on(eventName, listener); + this.emit = (eventName: string, ...args: any) => this.emitter.emit(eventName, ...args); // adding listener so process does not crash // best practice is for developer to register their own listener this.on('error', () => {}); @@ -50,7 +51,7 @@ class LiveQuery { * After open is called, the LiveQuery will try to send a connect request * to the LiveQuery server. */ - async open(): void { + async open(): Promise { const liveQueryClient = await getLiveQueryClient(); liveQueryClient.open(); } @@ -62,7 +63,7 @@ class LiveQuery { * If you call query.subscribe() after this, we'll create a new WebSocket * connection to the LiveQuery server. */ - async close(): void { + async close(): Promise { const liveQueryClient = await getLiveQueryClient(); liveQueryClient.close(); } diff --git a/src/ParseObject.ts b/src/ParseObject.ts index 700c4fdae..6c78fa4e6 100644 --- a/src/ParseObject.ts +++ b/src/ParseObject.ts @@ -1946,13 +1946,13 @@ class ParseObject { * });

          * * @param {string} className The name of the Parse class backing this model. - * @param {object} protoProps Instance properties to add to instances of the + * @param {object} [protoProps] Instance properties to add to instances of the * class returned from this method. - * @param {object} classProps Class properties to add the class returned from + * @param {object} [classProps] Class properties to add the class returned from * this method. * @returns {Parse.Object} A new subclass of Parse.Object. */ - static extend(className: any, protoProps: any, classProps: any) { + static extend(className: any, protoProps?: any, classProps?: any) { if (typeof className !== 'string') { if (className && typeof className.className === 'string') { return ParseObject.extend(className.className, className, protoProps); @@ -2539,7 +2539,7 @@ const DefaultController = { // generate _localId in case if cascadeSave=false target._getId(); const localId = target._localId; - // copying target lets Flow guarantee the pointer isn't modified elsewhere + // copying target lets guarantee the pointer isn't modified elsewhere const targetCopy = target; const task = function () { const params = targetCopy._getSaveParams(); diff --git a/src/ParseRelation.js b/src/ParseRelation.ts similarity index 95% rename from src/ParseRelation.js rename to src/ParseRelation.ts index fde1b1ec9..d53126d98 100644 --- a/src/ParseRelation.js +++ b/src/ParseRelation.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import type ParseObject from './ParseObject'; import type ParseQuery from './ParseQuery'; import CoreManager from './CoreManager'; @@ -20,15 +16,15 @@ import CoreManager from './CoreManager'; * @alias Parse.Relation */ class ParseRelation { - parent: ?ParseObject; - key: ?string; - targetClassName: ?string; + parent?: ParseObject; + key?: string; + targetClassName?: string | null; /** * @param {Parse.Object} parent The parent of this relation. * @param {string} key The key for this relation on the parent. */ - constructor(parent: ?ParseObject, key: ?string) { + constructor(parent?: ParseObject, key?: string) { this.parent = parent; this.key = key; this.targetClassName = null; @@ -108,7 +104,7 @@ class ParseRelation { * * @returns {object} JSON representation of Relation */ - toJSON(): { __type: 'Relation'; className: ?string } { + toJSON(): { __type: 'Relation'; className: string | null } { return { __type: 'Relation', className: this.targetClassName, diff --git a/src/SingleInstanceStateController.js b/src/SingleInstanceStateController.ts similarity index 63% rename from src/SingleInstanceStateController.js rename to src/SingleInstanceStateController.ts index dfc51cb00..8e78775fb 100644 --- a/src/SingleInstanceStateController.js +++ b/src/SingleInstanceStateController.ts @@ -1,32 +1,24 @@ -/** - * @flow - */ - import * as ObjectStateMutations from './ObjectStateMutations'; import type { Op } from './ParseOp'; +import type ParseObject from './ParseObject'; import type { AttributeMap, ObjectCache, OpsMap, State } from './ObjectStateMutations'; -type ObjectIdentifier = { - className: string; - id: string; -}; - let objectState: { [className: string]: { [id: string]: State; }; } = {}; -export function getState(obj: ObjectIdentifier): ?State { +export function getState(obj: ParseObject): State | null { const classData = objectState[obj.className]; if (classData) { - return classData[obj.id] || null; + return classData[obj.id!] || null; } return null; } -export function initializeState(obj: ObjectIdentifier, initial?: State): State { +export function initializeState(obj: ParseObject, initial?: State): State { let state = getState(obj); if (state) { return state; @@ -37,20 +29,20 @@ export function initializeState(obj: ObjectIdentifier, initial?: State): State { if (!initial) { initial = ObjectStateMutations.defaultState(); } - state = objectState[obj.className][obj.id] = initial; + state = objectState[obj.className][obj.id!] = initial; return state; } -export function removeState(obj: ObjectIdentifier): ?State { +export function removeState(obj: ParseObject): State | null { const state = getState(obj); if (state === null) { return null; } - delete objectState[obj.className][obj.id]; + delete objectState[obj.className][obj.id!]; return state; } -export function getServerData(obj: ObjectIdentifier): AttributeMap { +export function getServerData(obj: ParseObject): AttributeMap { const state = getState(obj); if (state) { return state.serverData; @@ -58,12 +50,12 @@ export function getServerData(obj: ObjectIdentifier): AttributeMap { return {}; } -export function setServerData(obj: ObjectIdentifier, attributes: AttributeMap) { +export function setServerData(obj: ParseObject, attributes: AttributeMap) { const serverData = initializeState(obj).serverData; ObjectStateMutations.setServerData(serverData, attributes); } -export function getPendingOps(obj: ObjectIdentifier): Array { +export function getPendingOps(obj: ParseObject): Array { const state = getState(obj); if (state) { return state.pendingOps; @@ -71,27 +63,27 @@ export function getPendingOps(obj: ObjectIdentifier): Array { return [{}]; } -export function setPendingOp(obj: ObjectIdentifier, attr: string, op: ?Op) { +export function setPendingOp(obj: ParseObject, attr: string, op?: Op) { const pendingOps = initializeState(obj).pendingOps; ObjectStateMutations.setPendingOp(pendingOps, attr, op); } -export function pushPendingState(obj: ObjectIdentifier) { +export function pushPendingState(obj: ParseObject) { const pendingOps = initializeState(obj).pendingOps; ObjectStateMutations.pushPendingState(pendingOps); } -export function popPendingState(obj: ObjectIdentifier): OpsMap { +export function popPendingState(obj: ParseObject): OpsMap { const pendingOps = initializeState(obj).pendingOps; return ObjectStateMutations.popPendingState(pendingOps); } -export function mergeFirstPendingState(obj: ObjectIdentifier) { +export function mergeFirstPendingState(obj: ParseObject) { const pendingOps = getPendingOps(obj); ObjectStateMutations.mergeFirstPendingState(pendingOps); } -export function getObjectCache(obj: ObjectIdentifier): ObjectCache { +export function getObjectCache(obj: ParseObject): ObjectCache { const state = getState(obj); if (state) { return state.objectCache; @@ -99,24 +91,24 @@ export function getObjectCache(obj: ObjectIdentifier): ObjectCache { return {}; } -export function estimateAttribute(obj: ObjectIdentifier, attr: string): any { +export function estimateAttribute(obj: ParseObject, attr: string): any { const serverData = getServerData(obj); const pendingOps = getPendingOps(obj); return ObjectStateMutations.estimateAttribute(serverData, pendingOps, obj, attr); } -export function estimateAttributes(obj: ObjectIdentifier): AttributeMap { +export function estimateAttributes(obj: ParseObject): AttributeMap { const serverData = getServerData(obj); const pendingOps = getPendingOps(obj); return ObjectStateMutations.estimateAttributes(serverData, pendingOps, obj); } -export function commitServerChanges(obj: ObjectIdentifier, changes: AttributeMap) { +export function commitServerChanges(obj: ParseObject, changes: AttributeMap) { const state = initializeState(obj); ObjectStateMutations.commitServerChanges(state.serverData, state.objectCache, changes); } -export function enqueueTask(obj: ObjectIdentifier, task: () => Promise): Promise { +export function enqueueTask(obj: ParseObject, task: () => Promise): Promise { const state = initializeState(obj); return state.tasks.enqueue(task); } diff --git a/src/UniqueInstanceStateController.js b/src/UniqueInstanceStateController.ts similarity index 94% rename from src/UniqueInstanceStateController.js rename to src/UniqueInstanceStateController.ts index 24633ef9f..9ad9e4d65 100644 --- a/src/UniqueInstanceStateController.js +++ b/src/UniqueInstanceStateController.ts @@ -1,7 +1,3 @@ -/** - * @flow - */ - import * as ObjectStateMutations from './ObjectStateMutations'; import TaskQueue from './TaskQueue'; @@ -11,7 +7,7 @@ import type { AttributeMap, ObjectCache, OpsMap, State } from './ObjectStateMuta let objectState = new WeakMap(); -export function getState(obj: ParseObject): ?State { +export function getState(obj: ParseObject): State | null { const classData = objectState.get(obj); return classData || null; } @@ -35,7 +31,7 @@ export function initializeState(obj: ParseObject, initial?: State): State { return state; } -export function removeState(obj: ParseObject): ?State { +export function removeState(obj: ParseObject): State | null { const state = getState(obj); if (state === null) { return null; @@ -65,7 +61,7 @@ export function getPendingOps(obj: ParseObject): Array { return [{}]; } -export function setPendingOp(obj: ParseObject, attr: string, op: ?Op) { +export function setPendingOp(obj: ParseObject, attr: string, op?: Op) { const pendingOps = initializeState(obj).pendingOps; ObjectStateMutations.setPendingOp(pendingOps, attr, op); } @@ -110,7 +106,7 @@ export function commitServerChanges(obj: ParseObject, changes: AttributeMap) { ObjectStateMutations.commitServerChanges(state.serverData, state.objectCache, changes); } -export function enqueueTask(obj: ParseObject, task: () => Promise): Promise { +export function enqueueTask(obj: ParseObject, task: () => Promise): Promise { const state = initializeState(obj); return state.tasks.enqueue(task); } diff --git a/src/interfaces/AuthProvider.js b/src/interfaces/AuthProvider.ts similarity index 98% rename from src/interfaces/AuthProvider.js rename to src/interfaces/AuthProvider.ts index 933eb5b70..443776d46 100644 --- a/src/interfaces/AuthProvider.js +++ b/src/interfaces/AuthProvider.ts @@ -1,8 +1,4 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ -/** - * @flow - */ - /** * Interface declaration for Authentication Providers * diff --git a/src/interfaces/react-native.js b/src/interfaces/react-native.ts similarity index 100% rename from src/interfaces/react-native.js rename to src/interfaces/react-native.ts diff --git a/src/interfaces/xmlhttprequest.js b/src/interfaces/xmlhttprequest.ts similarity index 100% rename from src/interfaces/xmlhttprequest.js rename to src/interfaces/xmlhttprequest.ts diff --git a/types/EventuallyQueue.d.ts b/types/EventuallyQueue.d.ts index c00dca73d..78d76d077 100644 --- a/types/EventuallyQueue.d.ts +++ b/types/EventuallyQueue.d.ts @@ -1,5 +1,25 @@ -export default EventuallyQueue; -declare namespace EventuallyQueue { +import ParseObject from './ParseObject'; +import type { SaveOptions } from './ParseObject'; +import type { RequestOptions } from './RESTController'; +type QueueObject = { + queueId: string; + action: string; + object: ParseObject; + serverOptions: SaveOptions | RequestOptions; + id: string; + className: string; + hash: string; + createdAt: Date; +}; +type Queue = Array; +/** + * Provides utility functions to queue objects that will be + * saved to the server at a later date. + * + * @class Parse.EventuallyQueue + * @static + */ +declare const EventuallyQueue: { /** * Add object to queue with save operation. * @@ -11,7 +31,7 @@ declare namespace EventuallyQueue { * @static * @see Parse.Object#saveEventually */ - function save(object: ParseObject, serverOptions?: SaveOptions): Promise; + save(object: ParseObject, serverOptions?: SaveOptions): Promise; /** * Add object to queue with save operation. * @@ -23,7 +43,7 @@ declare namespace EventuallyQueue { * @static * @see Parse.Object#destroyEventually */ - function destroy(object: ParseObject, serverOptions?: RequestOptions): Promise; + destroy(object: ParseObject, serverOptions?: RequestOptions): Promise; /** * Generate unique identifier to avoid duplicates and maintain previous state. * @@ -33,7 +53,7 @@ declare namespace EventuallyQueue { * @static * @ignore */ - function generateQueueId(action: string, object: ParseObject): string; + generateQueueId(action: string, object: ParseObject): string; /** * Build queue object and add to queue. * @@ -44,22 +64,22 @@ declare namespace EventuallyQueue { * @static * @ignore */ - function enqueue( + enqueue( action: string, object: ParseObject, - serverOptions?: RequestOptions | SaveOptions - ): Promise; - function store(data: any): Promise; - function load(): Promise; + serverOptions: SaveOptions | RequestOptions + ): Promise; + store(data: QueueObject[]): Promise; + load(): Promise; /** * Sets the in-memory queue from local storage and returns. * * @function getQueue * @name Parse.EventuallyQueue.getQueue - * @returns {Promise} + * @returns {Promise} * @static */ - function getQueue(): Promise; + getQueue(): Promise; /** * Saves the queue to local storage * @@ -68,7 +88,7 @@ declare namespace EventuallyQueue { * @static * @ignore */ - function setQueue(queue: Queue): Promise; + setQueue(queue: Queue): Promise; /** * Removes Parse.Object data from queue. * @@ -77,7 +97,7 @@ declare namespace EventuallyQueue { * @static * @ignore */ - function remove(queueId: string): Promise; + remove(queueId: string): Promise; /** * Removes all objects from queue. * @@ -86,7 +106,7 @@ declare namespace EventuallyQueue { * @returns {Promise} A promise that is fulfilled when queue is cleared. * @static */ - function clear(): Promise; + clear(): Promise; /** * Return the index of a queueId in the queue. Returns -1 if not found. * @@ -96,16 +116,16 @@ declare namespace EventuallyQueue { * @static * @ignore */ - function queueItemExists(queue: Queue, queueId: string): number; + queueItemExists(queue: Queue, queueId: string): number; /** * Return the number of objects in the queue. * * @function length * @name Parse.EventuallyQueue.length - * @returns {number} + * @returns {Promise} * @static */ - function length(): number; + length(): Promise; /** * Sends the queue to the server. * @@ -114,7 +134,7 @@ declare namespace EventuallyQueue { * @returns {Promise} Returns true if queue was sent successfully. * @static */ - function sendQueue(): Promise; + sendQueue(): Promise; /** * Build queue object and add to queue. * @@ -124,7 +144,7 @@ declare namespace EventuallyQueue { * @static * @ignore */ - function sendQueueCallback(object: ParseObject, queueObject: QueueObject): Promise; + sendQueueCallback(object: ParseObject, queueObject: QueueObject): Promise; /** * Start polling server for network connection. * Will send queue if connection is established. @@ -134,7 +154,7 @@ declare namespace EventuallyQueue { * @param [ms] Milliseconds to ping the server. Default 2000ms * @static */ - function poll(ms?: number): void; + poll(ms?: number): void; /** * Turns off polling. * @@ -142,7 +162,7 @@ declare namespace EventuallyQueue { * @name Parse.EventuallyQueue.stopPoll * @static */ - function stopPoll(): void; + stopPoll(): void; /** * Return true if pinging the server. * @@ -151,25 +171,12 @@ declare namespace EventuallyQueue { * @returns {boolean} * @static */ - function isPolling(): boolean; - function _setPolling(flag: boolean): void; - namespace process { - function create(ObjectType: any, queueObject: any): Promise; - function byId(ObjectType: any, queueObject: any): Promise; - function byHash(ObjectType: any, queueObject: any): Promise; - } -} -import ParseObject from './ParseObject'; -import { SaveOptions } from './ParseObject'; -import { RequestOptions } from './RESTController'; -type Queue = QueueObject[]; -type QueueObject = { - queueId: string; - action: string; - object: ParseObject; - serverOptions: RequestOptions | SaveOptions; - id: string; - className: string; - hash: string; - createdAt: Date; + isPolling(): boolean; + _setPolling(flag: boolean): void; + process: { + create(ObjectType: any, queueObject: any): Promise; + byId(ObjectType: any, queueObject: any): Promise; + byHash(ObjectType: any, queueObject: any): Promise; + }; }; +export default EventuallyQueue; diff --git a/types/IndexedDBStorageController.d.ts b/types/IndexedDBStorageController.d.ts new file mode 100644 index 000000000..b159d7961 --- /dev/null +++ b/types/IndexedDBStorageController.d.ts @@ -0,0 +1,2 @@ +declare let IndexedDBStorageController: any; +export default IndexedDBStorageController; diff --git a/types/LiveQuerySubscription.d.ts b/types/LiveQuerySubscription.d.ts index 06a4ed154..e312d2a86 100644 --- a/types/LiveQuerySubscription.d.ts +++ b/types/LiveQuerySubscription.d.ts @@ -1,7 +1,6 @@ -export default Subscription; +import type ParseQuery from './ParseQuery'; /** * Creates a new LiveQuery Subscription. - * Extends events.EventEmitter * cloud functions. * *

          Response Object - Contains data from the client that made the request @@ -81,21 +80,23 @@ export default Subscription; * subscription.on('close', () => { * * });

          - * - * @alias Parse.LiveQuerySubscription */ declare class Subscription { - constructor(id: any, query: any, sessionToken: any); - id: any; - query: any; - sessionToken: any; - subscribePromise: Promise; - unsubscribePromise: Promise; + id: string | number; + query: ParseQuery; + sessionToken?: string; + subscribePromise: any; + unsubscribePromise: any; subscribed: boolean; + emitter: any; + on: any; + emit: any; + constructor(id: string | number, query: ParseQuery, sessionToken?: string); /** * Close the subscription * * @returns {Promise} */ - unsubscribe(): Promise; + unsubscribe(): Promise; } +export default Subscription; diff --git a/types/ParseACL.d.ts b/types/ParseACL.d.ts index 0a17992b5..fc8da8570 100644 --- a/types/ParseACL.d.ts +++ b/types/ParseACL.d.ts @@ -1,4 +1,11 @@ -export default ParseACL; +import type ParseRole from './ParseRole'; +import type ParseUser from './ParseUser'; +type PermissionsMap = { + [permission: string]: boolean; +}; +type ByIdMap = { + [userId: string]: PermissionsMap; +}; /** * Creates a new ACL. * If no argument is given, the ACL has no permissions for anyone. @@ -14,11 +21,11 @@ export default ParseACL; * @alias Parse.ACL */ declare class ParseACL { + permissionsById: ByIdMap; /** * @param {(Parse.User | object)} arg1 The user to initialize the ACL for */ constructor(arg1: ParseUser | ByIdMap); - permissionsById: ByIdMap; /** * Returns a JSON-encoded version of the ACL. * @@ -131,11 +138,4 @@ declare class ParseACL { */ setRoleWriteAccess(role: ParseRole | string, allowed: boolean): void; } -type ByIdMap = { - [userId: string]: PermissionsMap; -}; -import ParseUser from './ParseUser'; -import ParseRole from './ParseRole'; -type PermissionsMap = { - [permission: string]: boolean; -}; +export default ParseACL; diff --git a/types/ParseError.d.ts b/types/ParseError.d.ts index 167e9addb..5147fd681 100644 --- a/types/ParseError.d.ts +++ b/types/ParseError.d.ts @@ -1,77 +1,476 @@ -export default ParseError; +import type ParseObject from './ParseObject'; /** * Constructs a new Parse.Error object with the given code and message. * + * Parse.CoreManager.set('PARSE_ERRORS', [{ code, message }]) can be use to override error messages. + * * @alias Parse.Error */ declare class ParseError extends Error { + code: number; + message: string; + object?: ParseObject; + errors?: Error[]; /** * @param {number} code An error code constant from Parse.Error. * @param {string} message A detailed description of the error. */ - constructor(code: number, message: string); - code: number; -} -declare namespace ParseError { - let OTHER_CAUSE: number; - let INTERNAL_SERVER_ERROR: number; - let CONNECTION_FAILED: number; - let OBJECT_NOT_FOUND: number; - let INVALID_QUERY: number; - let INVALID_CLASS_NAME: number; - let MISSING_OBJECT_ID: number; - let INVALID_KEY_NAME: number; - let INVALID_POINTER: number; - let INVALID_JSON: number; - let COMMAND_UNAVAILABLE: number; - let NOT_INITIALIZED: number; - let INCORRECT_TYPE: number; - let INVALID_CHANNEL_NAME: number; - let PUSH_MISCONFIGURED: number; - let OBJECT_TOO_LARGE: number; - let OPERATION_FORBIDDEN: number; - let CACHE_MISS: number; - let INVALID_NESTED_KEY: number; - let INVALID_FILE_NAME: number; - let INVALID_ACL: number; - let TIMEOUT: number; - let INVALID_EMAIL_ADDRESS: number; - let MISSING_CONTENT_TYPE: number; - let MISSING_CONTENT_LENGTH: number; - let INVALID_CONTENT_LENGTH: number; - let FILE_TOO_LARGE: number; - let FILE_SAVE_ERROR: number; - let DUPLICATE_VALUE: number; - let INVALID_ROLE_NAME: number; - let EXCEEDED_QUOTA: number; - let SCRIPT_FAILED: number; - let VALIDATION_ERROR: number; - let INVALID_IMAGE_DATA: number; - let UNSAVED_FILE_ERROR: number; - let INVALID_PUSH_TIME_ERROR: number; - let FILE_DELETE_ERROR: number; - let FILE_DELETE_UNNAMED_ERROR: number; - let REQUEST_LIMIT_EXCEEDED: number; - let DUPLICATE_REQUEST: number; - let INVALID_EVENT_NAME: number; - let INVALID_VALUE: number; - let USERNAME_MISSING: number; - let PASSWORD_MISSING: number; - let USERNAME_TAKEN: number; - let EMAIL_TAKEN: number; - let EMAIL_MISSING: number; - let EMAIL_NOT_FOUND: number; - let SESSION_MISSING: number; - let MUST_CREATE_USER_THROUGH_SIGNUP: number; - let ACCOUNT_ALREADY_LINKED: number; - let INVALID_SESSION_TOKEN: number; - let MFA_ERROR: number; - let MFA_TOKEN_REQUIRED: number; - let LINKED_ID_MISSING: number; - let INVALID_LINKED_SESSION: number; - let UNSUPPORTED_SERVICE: number; - let INVALID_SCHEMA_OPERATION: number; - let AGGREGATE_ERROR: number; - let FILE_READ_ERROR: number; - let X_DOMAIN_REQUEST: number; + constructor(code: number, message?: string); + toString(): string; + /** + * Error code indicating some error other than those enumerated here. + * + * @property {number} OTHER_CAUSE + * @static + */ + static OTHER_CAUSE: number; + /** + * Error code indicating that something has gone wrong with the server. + * + * @property {number} INTERNAL_SERVER_ERROR + * @static + */ + static INTERNAL_SERVER_ERROR: number; + /** + * Error code indicating the connection to the Parse servers failed. + * + * @property {number} CONNECTION_FAILED + * @static + */ + static CONNECTION_FAILED: number; + /** + * Error code indicating the specified object doesn't exist. + * + * @property {number} OBJECT_NOT_FOUND + * @static + */ + static OBJECT_NOT_FOUND: number; + /** + * Error code indicating you tried to query with a datatype that doesn't + * support it, like exact matching an array or object. + * + * @property {number} INVALID_QUERY + * @static + */ + static INVALID_QUERY: number; + /** + * Error code indicating a missing or invalid classname. Classnames are + * case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the + * only valid characters. + * + * @property {number} INVALID_CLASS_NAME + * @static + */ + static INVALID_CLASS_NAME: number; + /** + * Error code indicating an unspecified object id. + * + * @property {number} MISSING_OBJECT_ID + * @static + */ + static MISSING_OBJECT_ID: number; + /** + * Error code indicating an invalid key name. Keys are case-sensitive. They + * must start with a letter, and a-zA-Z0-9_ are the only valid characters. + * + * @property {number} INVALID_KEY_NAME + * @static + */ + static INVALID_KEY_NAME: number; + /** + * Error code indicating a malformed pointer. You should not see this unless + * you have been mucking about changing internal Parse code. + * + * @property {number} INVALID_POINTER + * @static + */ + static INVALID_POINTER: number; + /** + * Error code indicating that badly formed JSON was received upstream. This + * either indicates you have done something unusual with modifying how + * things encode to JSON, or the network is failing badly. + * + * @property {number} INVALID_JSON + * @static + */ + static INVALID_JSON: number; + /** + * Error code indicating that the feature you tried to access is only + * available internally for testing purposes. + * + * @property {number} COMMAND_UNAVAILABLE + * @static + */ + static COMMAND_UNAVAILABLE: number; + /** + * You must call Parse.initialize before using the Parse library. + * + * @property {number} NOT_INITIALIZED + * @static + */ + static NOT_INITIALIZED: number; + /** + * Error code indicating that a field was set to an inconsistent type. + * + * @property {number} INCORRECT_TYPE + * @static + */ + static INCORRECT_TYPE: number; + /** + * Error code indicating an invalid channel name. A channel name is either + * an empty string (the broadcast channel) or contains only a-zA-Z0-9_ + * characters and starts with a letter. + * + * @property {number} INVALID_CHANNEL_NAME + * @static + */ + static INVALID_CHANNEL_NAME: number; + /** + * Error code indicating that push is misconfigured. + * + * @property {number} PUSH_MISCONFIGURED + * @static + */ + static PUSH_MISCONFIGURED: number; + /** + * Error code indicating that the object is too large. + * + * @property {number} OBJECT_TOO_LARGE + * @static + */ + static OBJECT_TOO_LARGE: number; + /** + * Error code indicating that the operation isn't allowed for clients. + * + * @property {number} OPERATION_FORBIDDEN + * @static + */ + static OPERATION_FORBIDDEN: number; + /** + * Error code indicating the result was not found in the cache. + * + * @property {number} CACHE_MISS + * @static + */ + static CACHE_MISS: number; + /** + * Error code indicating that an invalid key was used in a nested + * JSONObject. + * + * @property {number} INVALID_NESTED_KEY + * @static + */ + static INVALID_NESTED_KEY: number; + /** + * Error code indicating that an invalid filename was used for ParseFile. + * A valid file name contains only a-zA-Z0-9_. characters and is between 1 + * and 128 characters. + * + * @property {number} INVALID_FILE_NAME + * @static + */ + static INVALID_FILE_NAME: number; + /** + * Error code indicating an invalid ACL was provided. + * + * @property {number} INVALID_ACL + * @static + */ + static INVALID_ACL: number; + /** + * Error code indicating that the request timed out on the server. Typically + * this indicates that the request is too expensive to run. + * + * @property {number} TIMEOUT + * @static + */ + static TIMEOUT: number; + /** + * Error code indicating that the email address was invalid. + * + * @property {number} INVALID_EMAIL_ADDRESS + * @static + */ + static INVALID_EMAIL_ADDRESS: number; + /** + * Error code indicating a missing content type. + * + * @property {number} MISSING_CONTENT_TYPE + * @static + */ + static MISSING_CONTENT_TYPE: number; + /** + * Error code indicating a missing content length. + * + * @property {number} MISSING_CONTENT_LENGTH + * @static + */ + static MISSING_CONTENT_LENGTH: number; + /** + * Error code indicating an invalid content length. + * + * @property {number} INVALID_CONTENT_LENGTH + * @static + */ + static INVALID_CONTENT_LENGTH: number; + /** + * Error code indicating a file that was too large. + * + * @property {number} FILE_TOO_LARGE + * @static + */ + static FILE_TOO_LARGE: number; + /** + * Error code indicating an error saving a file. + * + * @property {number} FILE_SAVE_ERROR + * @static + */ + static FILE_SAVE_ERROR: number; + /** + * Error code indicating that a unique field was given a value that is + * already taken. + * + * @property {number} DUPLICATE_VALUE + * @static + */ + static DUPLICATE_VALUE: number; + /** + * Error code indicating that a role's name is invalid. + * + * @property {number} INVALID_ROLE_NAME + * @static + */ + static INVALID_ROLE_NAME: number; + /** + * Error code indicating that an application quota was exceeded. Upgrade to + * resolve. + * + * @property {number} EXCEEDED_QUOTA + * @static + */ + static EXCEEDED_QUOTA: number; + /** + * Error code indicating that a Cloud Code script failed. + * + * @property {number} SCRIPT_FAILED + * @static + */ + static SCRIPT_FAILED: number; + /** + * Error code indicating that a Cloud Code validation failed. + * + * @property {number} VALIDATION_ERROR + * @static + */ + static VALIDATION_ERROR: number; + /** + * Error code indicating that invalid image data was provided. + * + * @property {number} INVALID_IMAGE_DATA + * @static + */ + static INVALID_IMAGE_DATA: number; + /** + * Error code indicating an unsaved file. + * + * @property {number} UNSAVED_FILE_ERROR + * @static + */ + static UNSAVED_FILE_ERROR: number; + /** + * Error code indicating an invalid push time. + * + * @property {number} INVALID_PUSH_TIME_ERROR + * @static + */ + static INVALID_PUSH_TIME_ERROR: number; + /** + * Error code indicating an error deleting a file. + * + * @property {number} FILE_DELETE_ERROR + * @static + */ + static FILE_DELETE_ERROR: number; + /** + * Error code indicating an error deleting an unnamed file. + * + * @property {number} FILE_DELETE_UNNAMED_ERROR + * @static + */ + static FILE_DELETE_UNNAMED_ERROR: number; + /** + * Error code indicating that the application has exceeded its request + * limit. + * + * @property {number} REQUEST_LIMIT_EXCEEDED + * @static + */ + static REQUEST_LIMIT_EXCEEDED: number; + /** + * Error code indicating that the request was a duplicate and has been discarded due to + * idempotency rules. + * + * @property {number} DUPLICATE_REQUEST + * @static + */ + static DUPLICATE_REQUEST: number; + /** + * Error code indicating an invalid event name. + * + * @property {number} INVALID_EVENT_NAME + * @static + */ + static INVALID_EVENT_NAME: number; + /** + * Error code indicating that a field had an invalid value. + * + * @property {number} INVALID_VALUE + * @static + */ + static INVALID_VALUE: number; + /** + * Error code indicating that the username is missing or empty. + * + * @property {number} USERNAME_MISSING + * @static + */ + static USERNAME_MISSING: number; + /** + * Error code indicating that the password is missing or empty. + * + * @property {number} PASSWORD_MISSING + * @static + */ + static PASSWORD_MISSING: number; + /** + * Error code indicating that the username has already been taken. + * + * @property {number} USERNAME_TAKEN + * @static + */ + static USERNAME_TAKEN: number; + /** + * Error code indicating that the email has already been taken. + * + * @property {number} EMAIL_TAKEN + * @static + */ + static EMAIL_TAKEN: number; + /** + * Error code indicating that the email is missing, but must be specified. + * + * @property {number} EMAIL_MISSING + * @static + */ + static EMAIL_MISSING: number; + /** + * Error code indicating that a user with the specified email was not found. + * + * @property {number} EMAIL_NOT_FOUND + * @static + */ + static EMAIL_NOT_FOUND: number; + /** + * Error code indicating that a user object without a valid session could + * not be altered. + * + * @property {number} SESSION_MISSING + * @static + */ + static SESSION_MISSING: number; + /** + * Error code indicating that a user can only be created through signup. + * + * @property {number} MUST_CREATE_USER_THROUGH_SIGNUP + * @static + */ + static MUST_CREATE_USER_THROUGH_SIGNUP: number; + /** + * Error code indicating that an an account being linked is already linked + * to another user. + * + * @property {number} ACCOUNT_ALREADY_LINKED + * @static + */ + static ACCOUNT_ALREADY_LINKED: number; + /** + * Error code indicating that the current session token is invalid. + * + * @property {number} INVALID_SESSION_TOKEN + * @static + */ + static INVALID_SESSION_TOKEN: number; + /** + * Error code indicating an error enabling or verifying MFA + * + * @property {number} MFA_ERROR + * @static + */ + static MFA_ERROR: number; + /** + * Error code indicating that a valid MFA token must be provided + * + * @property {number} MFA_TOKEN_REQUIRED + * @static + */ + static MFA_TOKEN_REQUIRED: number; + /** + * Error code indicating that a user cannot be linked to an account because + * that account's id could not be found. + * + * @property {number} LINKED_ID_MISSING + * @static + */ + static LINKED_ID_MISSING: number; + /** + * Error code indicating that a user with a linked (e.g. Facebook) account + * has an invalid session. + * + * @property {number} INVALID_LINKED_SESSION + * @static + */ + static INVALID_LINKED_SESSION: number; + /** + * Error code indicating that a service being linked (e.g. Facebook or + * Twitter) is unsupported. + * + * @property {number} UNSUPPORTED_SERVICE + * @static + */ + static UNSUPPORTED_SERVICE: number; + /** + * Error code indicating an invalid operation occured on schema + * + * @property {number} INVALID_SCHEMA_OPERATION + * @static + */ + static INVALID_SCHEMA_OPERATION: number; + /** + * Error code indicating that there were multiple errors. Aggregate errors + * have an "errors" property, which is an array of error objects with more + * detail about each error that occurred. + * + * @property {number} AGGREGATE_ERROR + * @static + */ + static AGGREGATE_ERROR: number; + /** + * Error code indicating the client was unable to read an input file. + * + * @property {number} FILE_READ_ERROR + * @static + */ + static FILE_READ_ERROR: number; + /** + * Error code indicating a real error code is unavailable because + * we had to use an XDomainRequest object to allow CORS requests in + * Internet Explorer, which strips the body from HTTP responses that have + * a non-2XX status code. + * + * @property {number} X_DOMAIN_REQUEST + * @static + */ + static X_DOMAIN_REQUEST: number; } +export default ParseError; diff --git a/types/ParseLiveQuery.d.ts b/types/ParseLiveQuery.d.ts index 6e98e68c1..ac9aa3495 100644 --- a/types/ParseLiveQuery.d.ts +++ b/types/ParseLiveQuery.d.ts @@ -1,4 +1,3 @@ -export default LiveQuery; /** * We expose three events to help you monitor the status of the WebSocket connection: * @@ -26,4 +25,23 @@ export default LiveQuery; * @class Parse.LiveQuery * @static */ -declare const LiveQuery: any; +declare class LiveQuery { + emitter: any; + on: any; + emit: any; + constructor(); + /** + * After open is called, the LiveQuery will try to send a connect request + * to the LiveQuery server. + */ + open(): Promise; + /** + * When you're done using LiveQuery, you can call Parse.LiveQuery.close(). + * This function will close the WebSocket connection to the LiveQuery server, + * cancel the auto reconnect, and unsubscribe all subscriptions based on it. + * If you call query.subscribe() after this, we'll create a new WebSocket + * connection to the LiveQuery server. + */ + close(): Promise; +} +export default LiveQuery; diff --git a/types/ParseObject.d.ts b/types/ParseObject.d.ts index 3fbaf71be..881aadca5 100644 --- a/types/ParseObject.d.ts +++ b/types/ParseObject.d.ts @@ -940,13 +940,13 @@ declare class ParseObject { * });

          * * @param {string} className The name of the Parse class backing this model. - * @param {object} protoProps Instance properties to add to instances of the + * @param {object} [protoProps] Instance properties to add to instances of the * class returned from this method. - * @param {object} classProps Class properties to add the class returned from + * @param {object} [classProps] Class properties to add the class returned from * this method. * @returns {Parse.Object} A new subclass of Parse.Object. */ - static extend(className: any, protoProps: any, classProps: any): any; + static extend(className: any, protoProps?: any, classProps?: any): any; /** * Enable single instance objects, where any local objects with the same Id * share the same attributes, and stay synchronized with each other. diff --git a/types/ParseRelation.d.ts b/types/ParseRelation.d.ts index 6ef474475..5426f7c83 100644 --- a/types/ParseRelation.d.ts +++ b/types/ParseRelation.d.ts @@ -1,4 +1,5 @@ -export default ParseRelation; +import type ParseObject from './ParseObject'; +import type ParseQuery from './ParseQuery'; /** * Creates a new Relation for the given parent object and key. This * constructor should rarely be used directly, but rather created by @@ -13,14 +14,14 @@ export default ParseRelation; * @alias Parse.Relation */ declare class ParseRelation { + parent?: ParseObject; + key?: string; + targetClassName?: string | null; /** * @param {Parse.Object} parent The parent of this relation. * @param {string} key The key for this relation on the parent. */ - constructor(parent: ParseObject | null, key: string | null); - parent: ParseObject | null; - key: string | null; - targetClassName: string | null; + constructor(parent?: ParseObject, key?: string); _ensureParentAndKey(parent: ParseObject, key: string): void; /** * Adds a Parse.Object or an array of Parse.Objects to the relation. @@ -52,5 +53,4 @@ declare class ParseRelation { */ query(): ParseQuery; } -import ParseObject from './ParseObject'; -import ParseQuery from './ParseQuery'; +export default ParseRelation; diff --git a/types/SingleInstanceStateController.d.ts b/types/SingleInstanceStateController.d.ts index 55bf5a304..1b93bff1f 100644 --- a/types/SingleInstanceStateController.d.ts +++ b/types/SingleInstanceStateController.d.ts @@ -1,20 +1,23 @@ -export function getState(obj: ObjectIdentifier): State | null; -export function initializeState(obj: ObjectIdentifier, initial?: State): State; -export function removeState(obj: ObjectIdentifier): State | null; -export function getServerData(obj: ObjectIdentifier): AttributeMap; -export function setServerData(obj: ObjectIdentifier, attributes: AttributeMap): void; -export function getPendingOps(obj: ObjectIdentifier): Array; -export function setPendingOp(obj: ObjectIdentifier, attr: string, op: Op | null): void; -export function pushPendingState(obj: ObjectIdentifier): void; -export function popPendingState(obj: ObjectIdentifier): OpsMap; -export function mergeFirstPendingState(obj: ObjectIdentifier): void; -export function getObjectCache(obj: ObjectIdentifier): ObjectCache; -export function estimateAttribute(obj: ObjectIdentifier, attr: string): mixed; -export function estimateAttributes(obj: ObjectIdentifier): AttributeMap; -export function commitServerChanges(obj: ObjectIdentifier, changes: AttributeMap): void; -export function enqueueTask(obj: ObjectIdentifier, task: () => Promise): Promise; -export function clearAllState(): void; -export function duplicateState( +import type { Op } from './ParseOp'; +import type ParseObject from './ParseObject'; +import type { AttributeMap, ObjectCache, OpsMap, State } from './ObjectStateMutations'; +export declare function getState(obj: ParseObject): State | null; +export declare function initializeState(obj: ParseObject, initial?: State): State; +export declare function removeState(obj: ParseObject): State | null; +export declare function getServerData(obj: ParseObject): AttributeMap; +export declare function setServerData(obj: ParseObject, attributes: AttributeMap): void; +export declare function getPendingOps(obj: ParseObject): Array; +export declare function setPendingOp(obj: ParseObject, attr: string, op?: Op): void; +export declare function pushPendingState(obj: ParseObject): void; +export declare function popPendingState(obj: ParseObject): OpsMap; +export declare function mergeFirstPendingState(obj: ParseObject): void; +export declare function getObjectCache(obj: ParseObject): ObjectCache; +export declare function estimateAttribute(obj: ParseObject, attr: string): any; +export declare function estimateAttributes(obj: ParseObject): AttributeMap; +export declare function commitServerChanges(obj: ParseObject, changes: AttributeMap): void; +export declare function enqueueTask(obj: ParseObject, task: () => Promise): Promise; +export declare function clearAllState(): void; +export declare function duplicateState( source: { id: string; }, @@ -22,13 +25,3 @@ export function duplicateState( id: string; } ): void; -type ObjectIdentifier = { - className: string; - id: string; -}; -import { State } from './ObjectStateMutations'; -import { AttributeMap } from './ObjectStateMutations'; -import { OpsMap } from './ObjectStateMutations'; -import { Op } from './ParseOp'; -import { ObjectCache } from './ObjectStateMutations'; -export {}; diff --git a/types/UniqueInstanceStateController.d.ts b/types/UniqueInstanceStateController.d.ts index f3e2ccf60..7aff646fd 100644 --- a/types/UniqueInstanceStateController.d.ts +++ b/types/UniqueInstanceStateController.d.ts @@ -1,23 +1,20 @@ -export function getState(obj: ParseObject): State | null; -export function initializeState(obj: ParseObject, initial?: State): State; -export function removeState(obj: ParseObject): State | null; -export function getServerData(obj: ParseObject): AttributeMap; -export function setServerData(obj: ParseObject, attributes: AttributeMap): void; -export function getPendingOps(obj: ParseObject): Array; -export function setPendingOp(obj: ParseObject, attr: string, op: Op | null): void; -export function pushPendingState(obj: ParseObject): void; -export function popPendingState(obj: ParseObject): OpsMap; -export function mergeFirstPendingState(obj: ParseObject): void; -export function getObjectCache(obj: ParseObject): ObjectCache; -export function estimateAttribute(obj: ParseObject, attr: string): mixed; -export function estimateAttributes(obj: ParseObject): AttributeMap; -export function commitServerChanges(obj: ParseObject, changes: AttributeMap): void; -export function enqueueTask(obj: ParseObject, task: () => Promise): Promise; -export function duplicateState(source: ParseObject, dest: ParseObject): void; -export function clearAllState(): void; -import ParseObject from './ParseObject'; -import { State } from './ObjectStateMutations'; -import { AttributeMap } from './ObjectStateMutations'; -import { OpsMap } from './ObjectStateMutations'; -import { Op } from './ParseOp'; -import { ObjectCache } from './ObjectStateMutations'; +import type { Op } from './ParseOp'; +import type ParseObject from './ParseObject'; +import type { AttributeMap, ObjectCache, OpsMap, State } from './ObjectStateMutations'; +export declare function getState(obj: ParseObject): State | null; +export declare function initializeState(obj: ParseObject, initial?: State): State; +export declare function removeState(obj: ParseObject): State | null; +export declare function getServerData(obj: ParseObject): AttributeMap; +export declare function setServerData(obj: ParseObject, attributes: AttributeMap): void; +export declare function getPendingOps(obj: ParseObject): Array; +export declare function setPendingOp(obj: ParseObject, attr: string, op?: Op): void; +export declare function pushPendingState(obj: ParseObject): void; +export declare function popPendingState(obj: ParseObject): OpsMap; +export declare function mergeFirstPendingState(obj: ParseObject): void; +export declare function getObjectCache(obj: ParseObject): ObjectCache; +export declare function estimateAttribute(obj: ParseObject, attr: string): any; +export declare function estimateAttributes(obj: ParseObject): AttributeMap; +export declare function commitServerChanges(obj: ParseObject, changes: AttributeMap): void; +export declare function enqueueTask(obj: ParseObject, task: () => Promise): Promise; +export declare function duplicateState(source: ParseObject, dest: ParseObject): void; +export declare function clearAllState(): void; From 1fbf4ff840ebc42333390eb490fb4f5abb74d0f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 18:27:23 +0200 Subject: [PATCH 14/53] refactor: Bump @babel/core from 7.22.0 to 7.24.5 (#2147) --- package-lock.json | 737 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 319 insertions(+), 420 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e12c786e..4250cfff8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "xmlhttprequest": "1.8.0" }, "devDependencies": { - "@babel/core": "7.22.0", + "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.21.4", "@babel/preset-env": "7.21.5", @@ -405,48 +405,48 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.0.tgz", - "integrity": "sha512-D58mjF+Y+89UfbMJpV57UTCg+JRQIFgvROPfH7mmIfBcoFVMkwiiiJyzPyW3onN9kg9noDg7MVyI+Yt64bnfQQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.22.0", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.0", - "@babel/types": "^7.22.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -456,10 +456,16 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -502,14 +508,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -542,22 +548,19 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -570,9 +573,9 @@ } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -782,28 +785,28 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -869,12 +872,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" @@ -893,39 +896,39 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -947,37 +950,38 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.0.tgz", - "integrity": "sha512-I/hZCYErxdjuUnJpJxHmCESB3AdcOAFjj+K6+of9JyWBeAhggR9NQoUHI481pRNH87cx77mbpx0cygzXlvGayA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "dependencies": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.0", - "@babel/types": "^7.22.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -2461,34 +2465,34 @@ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -2496,13 +2500,13 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -4316,14 +4320,14 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -4339,9 +4343,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" @@ -4354,13 +4358,13 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@jsdoc/salty": { @@ -8108,9 +8112,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -8120,13 +8124,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -8359,9 +8367,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001396", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001396.tgz", - "integrity": "sha512-Df93cp39XVZRoOl2EoiuNp2rc4Dnsb9mDQEs4qFa7/uTx3FnfEq+jyHLf/0Ik7GVJA6wvJuAI5ZKUtUEenAm9Q==", + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", "dev": true, "funding": [ { @@ -8371,6 +8379,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -9363,88 +9375,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/core-js-compat/node_modules/caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/core-js-compat/node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/node-releases": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz", - "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==", - "dev": true - }, - "node_modules/core-js-compat/node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/core-js-pure": { "version": "3.30.2", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", @@ -10942,9 +10872,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.247", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz", - "integrity": "sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw==", + "version": "1.4.774", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz", + "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==", "dev": true }, "node_modules/elliptic": { @@ -11139,9 +11069,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -20760,9 +20690,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/node-source-walk": { @@ -24775,9 +24705,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -29034,9 +28964,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", - "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "funding": [ { @@ -29046,14 +28976,18 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -30286,48 +30220,54 @@ "dev": true }, "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true }, "@babel/core": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.0.tgz", - "integrity": "sha512-D58mjF+Y+89UfbMJpV57UTCg+JRQIFgvROPfH7mmIfBcoFVMkwiiiJyzPyW3onN9kg9noDg7MVyI+Yt64bnfQQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.22.0", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.0", - "@babel/types": "^7.22.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -30358,14 +30298,14 @@ } }, "@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" } }, @@ -30389,16 +30329,16 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "dependencies": { "lru-cache": { @@ -30411,9 +30351,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "yallist": { @@ -30577,25 +30517,25 @@ } }, "@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.0" } }, "@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" } }, "@babel/helper-optimise-call-expression": { @@ -30637,12 +30577,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -30655,30 +30595,30 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.5" } }, "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true }, "@babel/helper-wrap-function": { @@ -30694,31 +30634,32 @@ } }, "@babel/helpers": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.0.tgz", - "integrity": "sha512-I/hZCYErxdjuUnJpJxHmCESB3AdcOAFjj+K6+of9JyWBeAhggR9NQoUHI481pRNH87cx77mbpx0cygzXlvGayA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "requires": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.0", - "@babel/types": "^7.22.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" } }, "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" } }, "@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -31710,42 +31651,42 @@ } }, "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" } }, "@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", "to-fast-properties": "^2.0.0" } }, @@ -33161,14 +33102,14 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -33178,9 +33119,9 @@ "dev": true }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true }, "@jridgewell/sourcemap-codec": { @@ -33190,13 +33131,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@jsdoc/salty": { @@ -36225,15 +36166,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "bser": { @@ -36418,9 +36359,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001396", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001396.tgz", - "integrity": "sha512-Df93cp39XVZRoOl2EoiuNp2rc4Dnsb9mDQEs4qFa7/uTx3FnfEq+jyHLf/0Ik7GVJA6wvJuAI5ZKUtUEenAm9Q==", + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", "dev": true }, "cardinal": { @@ -37220,48 +37161,6 @@ "dev": true, "requires": { "browserslist": "^4.21.4" - }, - "dependencies": { - "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "caniuse-lite": { - "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "node-releases": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz", - "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } } }, "core-js-pure": { @@ -38502,9 +38401,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.247", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz", - "integrity": "sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw==", + "version": "1.4.774", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz", + "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==", "dev": true }, "elliptic": { @@ -38681,9 +38580,9 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true }, "escape-html": { @@ -46105,9 +46004,9 @@ "dev": true }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node-source-walk": { @@ -49007,9 +48906,9 @@ } }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "picomatch": { @@ -52403,13 +52302,13 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", - "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" } }, "uri-js": { diff --git a/package.json b/package.json index 40ac1e465..6c0254605 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "xmlhttprequest": "1.8.0" }, "devDependencies": { - "@babel/core": "7.22.0", + "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.21.4", "@babel/preset-env": "7.21.5", From 5be0b77e115ac7856a2dc1b0ca9c0f1e452cf7fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 20:43:23 +0200 Subject: [PATCH 15/53] refactor: Bump core-js from 3.30.2 to 3.37.1 (#2146) --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4250cfff8..3e05bcb0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "babel-plugin-transform-inline-environment-variables": "0.4.4", "browserify": "17.0.0", "codecov": "3.8.3", - "core-js": "3.30.2", + "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", "eslint-plugin-jsdoc": "48.2.5", @@ -9352,9 +9352,9 @@ } }, "node_modules/core-js": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz", - "integrity": "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "dev": true, "hasInstallScript": true, "funding": { @@ -37149,9 +37149,9 @@ } }, "core-js": { - "version": "3.30.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz", - "integrity": "sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "dev": true }, "core-js-compat": { diff --git a/package.json b/package.json index 6c0254605..1df7956cc 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "babel-plugin-transform-inline-environment-variables": "0.4.4", "browserify": "17.0.0", "codecov": "3.8.3", - "core-js": "3.30.2", + "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", "eslint-plugin-jsdoc": "48.2.5", From e90e3c032202e238cf15e048d0d8d7bbb0a07165 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 21:49:52 +0200 Subject: [PATCH 16/53] refactor: Bump jest from 29.5.0 to 29.7.0 (#2148) --- package-lock.json | 1750 ++++++++++++++++++++++++++------------------- package.json | 2 +- 2 files changed, 997 insertions(+), 755 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e05bcb0a..5bd461cb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "jasmine": "5.1.0", "jasmine-reporters": "2.5.2", "jasmine-spec-reporter": "7.0.0", - "jest": "29.5.0", + "jest": "29.7.0", "jest-environment-jsdom": "29.5.0", "jsdoc": "4.0.2", "jsdoc-babel": "0.5.0", @@ -3653,16 +3653,16 @@ } }, "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -3740,37 +3740,37 @@ } }, "node_modules/@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -3884,89 +3884,89 @@ } }, "node_modules/@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -3974,13 +3974,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -4056,6 +4056,34 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4069,24 +4097,24 @@ } }, "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, @@ -4095,13 +4123,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -4110,14 +4138,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -4125,22 +4153,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -4227,12 +4255,12 @@ } }, "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -5671,9 +5699,9 @@ } }, "node_modules/@sinclair/typebox": { - "version": "0.25.21", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", - "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "node_modules/@sinonjs/commons": { @@ -5826,9 +5854,9 @@ "dev": true }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -5987,12 +6015,6 @@ "integrity": "sha512-FwAQwMRbkhx0J6YELkwIpciVzCcgEqXEbIrIn3a2P5d3kGEHQ3wVhlN3YdVepYP+bZzCYO6OjmD4o9TGOZ40rA==", "dev": true }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, "node_modules/@types/qs": { "version": "6.9.12", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", @@ -7420,9 +7442,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -7533,12 +7555,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -8632,9 +8654,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "node_modules/class-utils": { @@ -8926,9 +8948,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "node_modules/collection-map": { @@ -9463,6 +9485,97 @@ "sha.js": "^2.4.8" } }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cross-env": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", @@ -9971,10 +10084,18 @@ } }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deep-extend": { "version": "0.6.0", @@ -10648,9 +10769,9 @@ } }, "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -11883,16 +12004,16 @@ } }, "node_modules/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -15919,17 +16040,17 @@ } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/has-flag": { @@ -15977,9 +16098,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -16107,15 +16228,15 @@ } }, "node_modules/jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -16133,12 +16254,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -16161,28 +16283,28 @@ } }, "node_modules/jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -16277,22 +16399,21 @@ } }, "node_modules/jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -16395,9 +16516,9 @@ } }, "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -16422,31 +16543,31 @@ } }, "node_modules/jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -16481,6 +16602,27 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-config/node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, "node_modules/jest-config/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -16549,15 +16691,15 @@ } }, "node_modules/jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -16634,9 +16776,9 @@ } }, "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -16646,16 +16788,16 @@ } }, "node_modules/jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -16759,46 +16901,46 @@ } }, "node_modules/jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -16823,9 +16965,9 @@ } }, "node_modules/jest-haste-map/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -16846,28 +16988,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -16944,18 +17086,18 @@ } }, "node_modules/jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -17034,14 +17176,14 @@ } }, "node_modules/jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -17065,26 +17207,26 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -17094,13 +17236,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -17177,30 +17319,30 @@ } }, "node_modules/jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -17294,31 +17436,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -17406,34 +17548,31 @@ } }, "node_modules/jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -17498,13 +17637,10 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -17525,12 +17661,12 @@ } }, "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -17612,17 +17748,17 @@ } }, "node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -17711,18 +17847,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -17827,13 +17963,13 @@ } }, "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -19499,27 +19635,30 @@ } }, "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/make-error": { @@ -25057,12 +25196,12 @@ } }, "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -25449,9 +25588,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -25643,9 +25782,9 @@ } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/react-native-crypto-js": { @@ -26325,9 +26464,9 @@ "dev": true }, "node_modules/resolve.exports": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz", - "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, "engines": { "node": ">=10" @@ -29109,19 +29248,25 @@ } }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", @@ -32600,16 +32745,16 @@ "dev": true }, "@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "dependencies": { @@ -32665,37 +32810,37 @@ } }, "@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -32767,74 +32912,74 @@ } }, "@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "requires": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" } }, "@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "requires": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" } }, "@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "requires": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" } }, "@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, "@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -32842,13 +32987,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -32895,6 +33040,25 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "requires": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + } + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -32907,66 +33071,66 @@ } }, "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "requires": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "requires": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -33031,12 +33195,12 @@ } }, "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -34131,9 +34295,9 @@ } }, "@sinclair/typebox": { - "version": "0.25.21", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", - "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "@sinonjs/commons": { @@ -34283,9 +34447,9 @@ "dev": true }, "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "requires": { "@types/node": "*" @@ -34443,12 +34607,6 @@ "integrity": "sha512-FwAQwMRbkhx0J6YELkwIpciVzCcgEqXEbIrIn3a2P5d3kGEHQ3wVhlN3YdVepYP+bZzCYO6OjmD4o9TGOZ40rA==", "dev": true }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, "@types/qs": { "version": "6.9.12", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", @@ -35573,9 +35731,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -35670,12 +35828,12 @@ } }, "babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -36563,9 +36721,9 @@ } }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "class-utils": { @@ -36789,9 +36947,9 @@ } }, "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "collection-map": { @@ -37242,6 +37400,72 @@ "sha.js": "^2.4.8" } }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "cross-env": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", @@ -37652,10 +37876,11 @@ } }, "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "requires": {} }, "deep-extend": { "version": "0.6.0", @@ -38195,9 +38420,9 @@ "dev": true }, "diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true }, "diffie-hellman": { @@ -39178,16 +39403,16 @@ } }, "expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "requires": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" } }, "express": { @@ -42401,13 +42626,13 @@ } }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "dependencies": { @@ -42448,9 +42673,9 @@ } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -42548,24 +42773,25 @@ "dev": true }, "jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" } }, "jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "dependencies": { @@ -42581,28 +42807,28 @@ } }, "jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -42669,22 +42895,21 @@ } }, "jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "requires": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "dependencies": { @@ -42749,9 +42974,9 @@ } }, "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", @@ -42772,31 +42997,31 @@ } }, "jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -42810,6 +43035,21 @@ "color-convert": "^2.0.1" } }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -42859,15 +43099,15 @@ } }, "jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -42922,25 +43162,25 @@ } }, "jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -43011,41 +43251,41 @@ } }, "jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, "jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -43061,9 +43301,9 @@ } }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, @@ -43076,25 +43316,25 @@ } }, "jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -43149,18 +43389,18 @@ } }, "jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -43217,14 +43457,14 @@ } }, "jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" } }, "jest-pnp-resolver": { @@ -43235,23 +43475,23 @@ "requires": {} }, "jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, "jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -43309,40 +43549,40 @@ } }, "jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "requires": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, "jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -43408,31 +43648,31 @@ } }, "jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -43495,34 +43735,31 @@ } }, "jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "dependencies": { "ansi-styles": { @@ -43566,13 +43803,10 @@ "dev": true }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true }, "supports-color": { "version": "7.2.0", @@ -43586,12 +43820,12 @@ } }, "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -43651,17 +43885,17 @@ } }, "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -43722,18 +43956,18 @@ } }, "jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "dependencies": { @@ -43804,13 +44038,13 @@ } }, "jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -45071,18 +45305,18 @@ } }, "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true } } @@ -49146,12 +49380,12 @@ "dev": true }, "pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -49465,9 +49699,9 @@ } }, "pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true }, "q": { @@ -49597,9 +49831,9 @@ } }, "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "react-native-crypto-js": { @@ -50173,9 +50407,9 @@ "dev": true }, "resolve.exports": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz", - "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, "restore-cursor": { @@ -52414,14 +52648,22 @@ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" }, "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + } } }, "v8flags": { diff --git a/package.json b/package.json index 1df7956cc..79ca32bea 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "jasmine": "5.1.0", "jasmine-reporters": "2.5.2", "jasmine-spec-reporter": "7.0.0", - "jest": "29.5.0", + "jest": "29.7.0", "jest-environment-jsdom": "29.5.0", "jsdoc": "4.0.2", "jsdoc-babel": "0.5.0", From d446ad9db3854265db4f9401523365d9affa3b25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 May 2024 21:19:51 +0200 Subject: [PATCH 17/53] refactor: Bump @babel/plugin-transform-runtime from 7.21.4 to 7.24.3 (#2151) --- package-lock.json | 176 ++++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 138 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5bd461cb6..ccaeebe50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "devDependencies": { "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-runtime": "7.21.4", + "@babel/plugin-transform-runtime": "7.24.3", "@babel/preset-env": "7.21.5", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", @@ -828,9 +828,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -2075,17 +2075,17 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", - "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -2094,10 +2094,65 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-runtime/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -9385,12 +9440,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", - "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -30693,9 +30748,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -31505,23 +31560,66 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", - "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" }, "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -37313,12 +37411,12 @@ "dev": true }, "core-js-compat": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", - "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.23.0" } }, "core-js-pure": { diff --git a/package.json b/package.json index 79ca32bea..c484200fa 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-runtime": "7.21.4", + "@babel/plugin-transform-runtime": "7.24.3", "@babel/preset-env": "7.21.5", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", From 1a5d08e884f16f8d218cd0cf9cf6cf5e3a04fe55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 22:12:05 +0200 Subject: [PATCH 18/53] refactor: Bump @babel/preset-env from 7.21.5 to 7.24.6 (#2153) --- package-lock.json | 2868 ++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 1508 insertions(+), 1362 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccaeebe50..191fba109 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.24.3", - "@babel/preset-env": "7.21.5", + "@babel/preset-env": "7.24.6", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", "@definitelytyped/dtslint": "0.0.163", @@ -405,12 +405,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.6", "picocolors": "^1.0.0" }, "engines": { @@ -418,9 +418,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -523,38 +523,37 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -588,19 +587,19 @@ "dev": true }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", - "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "semver": "^6.3.1" }, "engines": { @@ -620,13 +619,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "@babel/helper-annotate-as-pure": "^7.24.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -635,178 +635,100 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" + "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -816,36 +738,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", - "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -855,14 +776,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -872,78 +793,77 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -964,12 +884,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -979,9 +899,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -990,13 +910,14 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1005,82 +926,80 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz", - "integrity": "sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz", + "integrity": "sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { + "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1105,54 +1024,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -1237,33 +1108,11 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, "engines": { "node": ">=6.9.0" }, @@ -1271,22 +1120,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -1393,12 +1226,27 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1563,13 +1411,47 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", - "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" @@ -1579,14 +1461,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1596,12 +1478,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1611,12 +1493,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1625,20 +1507,52 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "globals": "^11.1.0" }, "engines": { @@ -1649,13 +1563,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", - "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1665,12 +1579,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1680,13 +1594,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1696,12 +1610,28 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1711,13 +1641,29 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1743,12 +1689,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", - "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1758,14 +1705,30 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1775,12 +1738,28 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" @@ -1790,12 +1769,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1805,13 +1784,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1821,14 +1800,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1838,15 +1817,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1856,13 +1835,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1872,13 +1851,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz", - "integrity": "sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1888,12 +1867,62 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -1903,13 +1932,46 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1919,12 +1981,46 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -1934,12 +2030,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2044,13 +2140,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", - "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.24.6", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -2060,12 +2156,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2094,61 +2190,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-runtime/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -2159,12 +2200,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2174,13 +2215,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2190,12 +2231,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2205,12 +2246,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2220,12 +2261,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2253,12 +2294,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", - "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2267,104 +2308,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.21.5", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.21.5", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.5", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.21.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.21.5", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2373,16 +2324,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2391,64 +2340,138 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "node_modules/@babel/preset-env": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-react": { @@ -2490,13 +2513,19 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -2519,15 +2548,21 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" }, "engines": { "node": ">=6.9.0" @@ -2555,13 +2590,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -7524,51 +7559,51 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-transform-flow-enums": { @@ -26184,6 +26219,18 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", @@ -26191,9 +26238,9 @@ "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -26224,6 +26271,44 @@ "node": ">=0.10.0" } }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, "node_modules/remove-bom-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", @@ -29029,10 +29114,19 @@ "node": ">=4" } }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -30420,19 +30514,19 @@ "dev": true }, "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", + "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", "dev": true, "requires": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.6", "picocolors": "^1.0.0" } }, "@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", + "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", "dev": true }, "@babel/core": { @@ -30510,32 +30604,31 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", + "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", + "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/types": "^7.24.6" } }, "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", + "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", "dev": true, "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -30565,19 +30658,19 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", - "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", + "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "semver": "^6.3.1" }, "dependencies": { @@ -30590,247 +30683,184 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", + "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "@babel/helper-annotate-as-pure": "^7.24.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "resolve": "^1.14.2" } }, "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", + "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", "dev": true }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", + "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", "dev": true, "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" } }, "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", + "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", + "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", + "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", "dev": true, "requires": { - "@babel/types": "^7.24.0" + "@babel/types": "^7.24.6" } }, "@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", + "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" } }, "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", + "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-plugin-utils": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", - "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", + "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", + "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-wrap-function": "^7.24.6" } }, "@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", + "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-member-expression-to-functions": "^7.24.6", + "@babel/helper-optimise-call-expression": "^7.24.6" } }, "@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", + "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", "dev": true, "requires": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", + "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", "dev": true, "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", + "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", "dev": true, "requires": { - "@babel/types": "^7.24.5" + "@babel/types": "^7.24.6" } }, "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", + "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", + "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", + "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", + "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.24.6", + "@babel/template": "^7.24.6", + "@babel/types": "^7.24.6" } }, "@babel/helpers": { @@ -30845,41 +30875,61 @@ } }, "@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", + "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.6", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true }, + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", + "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + } + }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", + "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", + "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", + "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-proposal-async-generator-functions": { @@ -30904,27 +30954,6 @@ "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, "@babel/plugin-proposal-export-default-from": { "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", @@ -30935,36 +30964,6 @@ "@babel/plugin-syntax-export-default-from": "^7.18.6" } }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", @@ -31019,37 +31018,12 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -31124,12 +31098,21 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", + "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", + "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-syntax-import-meta": { @@ -31240,107 +31223,169 @@ "@babel/helper-plugin-utils": "^7.22.5" } }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", - "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", + "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", + "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", + "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-remap-async-to-generator": "^7.24.6" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", + "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", + "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.24.6" } }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "@babel/plugin-transform-class-properties": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", + "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", + "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", + "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6", + "@babel/helper-split-export-declaration": "^7.24.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", - "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", + "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/template": "^7.24.6" } }, "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", + "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", + "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", + "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", + "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", + "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", + "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-transform-flow-strip-types": { @@ -31354,131 +31399,227 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", - "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", + "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", + "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-function-name": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", + "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", + "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", + "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", + "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", + "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", + "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-simple-access": "^7.24.6" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", + "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.24.6", + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", + "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz", - "integrity": "sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", + "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", + "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", + "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", + "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", + "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.6" } }, "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", + "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-replace-supers": "^7.24.6" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", + "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", + "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", + "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", + "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", + "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", + "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-react-display-name": { @@ -31541,22 +31682,22 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", - "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", + "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.24.6", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", + "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-runtime": { @@ -31573,49 +31714,6 @@ "semver": "^6.3.1" }, "dependencies": { - "@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", - "semver": "^6.3.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.6.2" - } - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -31625,49 +31723,49 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", + "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", + "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", + "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", + "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", + "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-typescript": { @@ -31683,57 +31781,66 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", - "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", + "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", + "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", + "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", + "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6" } }, "@babel/preset-env": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", - "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", + "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-validator-option": "^7.24.6", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.24.6", + "@babel/plugin-syntax-import-attributes": "^7.24.6", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -31744,99 +31851,78 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.21.5", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.21.5", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.5", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.21.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.21.5", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.5", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.6", + "@babel/plugin-transform-async-generator-functions": "^7.24.6", + "@babel/plugin-transform-async-to-generator": "^7.24.6", + "@babel/plugin-transform-block-scoped-functions": "^7.24.6", + "@babel/plugin-transform-block-scoping": "^7.24.6", + "@babel/plugin-transform-class-properties": "^7.24.6", + "@babel/plugin-transform-class-static-block": "^7.24.6", + "@babel/plugin-transform-classes": "^7.24.6", + "@babel/plugin-transform-computed-properties": "^7.24.6", + "@babel/plugin-transform-destructuring": "^7.24.6", + "@babel/plugin-transform-dotall-regex": "^7.24.6", + "@babel/plugin-transform-duplicate-keys": "^7.24.6", + "@babel/plugin-transform-dynamic-import": "^7.24.6", + "@babel/plugin-transform-exponentiation-operator": "^7.24.6", + "@babel/plugin-transform-export-namespace-from": "^7.24.6", + "@babel/plugin-transform-for-of": "^7.24.6", + "@babel/plugin-transform-function-name": "^7.24.6", + "@babel/plugin-transform-json-strings": "^7.24.6", + "@babel/plugin-transform-literals": "^7.24.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", + "@babel/plugin-transform-member-expression-literals": "^7.24.6", + "@babel/plugin-transform-modules-amd": "^7.24.6", + "@babel/plugin-transform-modules-commonjs": "^7.24.6", + "@babel/plugin-transform-modules-systemjs": "^7.24.6", + "@babel/plugin-transform-modules-umd": "^7.24.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", + "@babel/plugin-transform-new-target": "^7.24.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", + "@babel/plugin-transform-numeric-separator": "^7.24.6", + "@babel/plugin-transform-object-rest-spread": "^7.24.6", + "@babel/plugin-transform-object-super": "^7.24.6", + "@babel/plugin-transform-optional-catch-binding": "^7.24.6", + "@babel/plugin-transform-optional-chaining": "^7.24.6", + "@babel/plugin-transform-parameters": "^7.24.6", + "@babel/plugin-transform-private-methods": "^7.24.6", + "@babel/plugin-transform-private-property-in-object": "^7.24.6", + "@babel/plugin-transform-property-literals": "^7.24.6", + "@babel/plugin-transform-regenerator": "^7.24.6", + "@babel/plugin-transform-reserved-words": "^7.24.6", + "@babel/plugin-transform-shorthand-properties": "^7.24.6", + "@babel/plugin-transform-spread": "^7.24.6", + "@babel/plugin-transform-sticky-regex": "^7.24.6", + "@babel/plugin-transform-template-literals": "^7.24.6", + "@babel/plugin-transform-typeof-symbol": "^7.24.6", + "@babel/plugin-transform-unicode-escapes": "^7.24.6", + "@babel/plugin-transform-unicode-property-regex": "^7.24.6", + "@babel/plugin-transform-unicode-regex": "^7.24.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "dependencies": { - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } @@ -31868,13 +31954,27 @@ "@babel/plugin-transform-typescript": "^7.22.5" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + } } }, "@babel/runtime-corejs3": { @@ -31894,14 +31994,14 @@ } }, "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", + "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", "dev": true, "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.6", + "@babel/parser": "^7.24.6", + "@babel/types": "^7.24.6" } }, "@babel/traverse": { @@ -31923,13 +32023,13 @@ } }, "@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", + "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.6", "to-fast-properties": "^2.0.0" } }, @@ -35853,41 +35953,41 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.6.2" } }, "babel-plugin-transform-flow-enums": { @@ -50236,6 +50336,15 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, "regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", @@ -50243,9 +50352,9 @@ "dev": true }, "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -50270,6 +50379,37 @@ "safe-regex": "^1.1.0" } }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, "remove-bom-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", @@ -52532,10 +52672,16 @@ "unicode-property-aliases-ecmascript": "^2.0.0" } }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "union-value": { diff --git a/package.json b/package.json index c484200fa..e01629e4e 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.24.3", - "@babel/preset-env": "7.21.5", + "@babel/preset-env": "7.24.6", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", "@definitelytyped/dtslint": "0.0.163", From 95d7e27660bfff5e975ee4eb88e44203a4fae72e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 00:19:09 +0200 Subject: [PATCH 19/53] refactor: Bump jest-environment-jsdom from 29.5.0 to 29.7.0 (#2152) --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 191fba109..87ebce96b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "jasmine-reporters": "2.5.2", "jasmine-spec-reporter": "7.0.0", "jest": "29.7.0", - "jest-environment-jsdom": "29.5.0", + "jest-environment-jsdom": "29.7.0", "jsdoc": "4.0.2", "jsdoc-babel": "0.5.0", "lint-staged": "15.2.2", @@ -16964,18 +16964,18 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz", - "integrity": "sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "engines": { @@ -43433,18 +43433,18 @@ } }, "jest-environment-jsdom": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz", - "integrity": "sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", "jsdom": "^20.0.0" } }, diff --git a/package.json b/package.json index e01629e4e..3c141ffcf 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "jasmine-reporters": "2.5.2", "jasmine-spec-reporter": "7.0.0", "jest": "29.7.0", - "jest-environment-jsdom": "29.5.0", + "jest-environment-jsdom": "29.7.0", "jsdoc": "4.0.2", "jsdoc-babel": "0.5.0", "lint-staged": "15.2.2", From e1c681fbe38c4ad7a854e643d8f1eb22a6c738e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 08:45:30 +0200 Subject: [PATCH 20/53] refactor: Bump jsdoc from 4.0.2 to 4.0.3 (#2155) --- package-lock.json | 222 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 87ebce96b..b6b159b08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "jasmine-spec-reporter": "7.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jsdoc": "4.0.2", + "jsdoc": "4.0.3", "jsdoc-babel": "0.5.0", "lint-staged": "15.2.2", "madge": "7.0.0", @@ -6009,9 +6009,9 @@ } }, "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, "node_modules/@types/long": { @@ -6021,19 +6021,19 @@ "dev": true }, "node_modules/@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", "dev": true, "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@types/linkify-it": "^5", + "@types/mdurl": "^2" } }, "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, "node_modules/@types/mime": { @@ -11171,6 +11171,18 @@ "dev": true, "optional": true }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-ci": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", @@ -18135,21 +18147,21 @@ "dev": true }, "node_modules/jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", "dev": true, "dependencies": { "@babel/parser": "^7.20.15", "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", + "@types/markdown-it": "^14.1.1", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", "js2xmlparser": "^4.0.2", "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", @@ -18836,12 +18848,12 @@ "dev": true }, "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/lint-staged": { @@ -19821,25 +19833,26 @@ } }, "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "dependencies": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdown-it-anchor": { - "version": "8.6.6", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.6.tgz", - "integrity": "sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==", + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", "dev": true, "peerDependencies": { "@types/markdown-it": "*", @@ -19852,15 +19865,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/marked": { "version": "4.2.12", "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", @@ -20086,9 +20090,9 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, "node_modules/media-typer": { @@ -24618,18 +24622,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -25583,6 +25575,15 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/puppeteer": { "version": "20.4.0", "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.4.0.tgz", @@ -28983,9 +28984,9 @@ } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, "node_modules/uglify-js": { @@ -34710,9 +34711,9 @@ } }, "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, "@types/long": { @@ -34722,19 +34723,19 @@ "dev": true }, "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", "dev": true, "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@types/linkify-it": "^5", + "@types/mdurl": "^2" } }, "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, "@types/mime": { @@ -38902,6 +38903,12 @@ "dev": true, "optional": true }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, "env-ci": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", @@ -44302,21 +44309,21 @@ "dev": true }, "jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", "dev": true, "requires": { "@babel/parser": "^7.20.15", "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", + "@types/markdown-it": "^14.1.1", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", "js2xmlparser": "^4.0.2", "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", @@ -44869,12 +44876,12 @@ "dev": true }, "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "requires": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "lint-staged": { @@ -45574,16 +45581,17 @@ } }, "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "requires": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "dependencies": { "argparse": { @@ -45591,19 +45599,13 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true } } }, "markdown-it-anchor": { - "version": "8.6.6", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.6.tgz", - "integrity": "sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==", + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", "dev": true, "requires": {} }, @@ -45791,9 +45793,9 @@ } }, "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, "media-typer": { @@ -49092,14 +49094,6 @@ "dev": true, "requires": { "entities": "^4.4.0" - }, - "dependencies": { - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - } } }, "parseurl": { @@ -49833,6 +49827,12 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, + "punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true + }, "puppeteer": { "version": "20.4.0", "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.4.0.tgz", @@ -52566,9 +52566,9 @@ "dev": true }, "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index 3c141ffcf..1fd742094 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "jasmine-spec-reporter": "7.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jsdoc": "4.0.2", + "jsdoc": "4.0.3", "jsdoc-babel": "0.5.0", "lint-staged": "15.2.2", "madge": "7.0.0", From a3dd755a66ea2cd9ead88b703518584c5b58342a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 20:19:14 +0200 Subject: [PATCH 21/53] refactor: Bump @babel/runtime-corejs3 from 7.23.2 to 7.24.6 (#2154) --- package-lock.json | 49 ++++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b6b159b08..3385f831d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "5.2.0-alpha.1", "license": "Apache-2.0", "dependencies": { - "@babel/runtime-corejs3": "7.23.2", + "@babel/runtime-corejs3": "7.24.6", "idb-keyval": "6.2.1", "react-native-crypto-js": "1.0.0", "uuid": "9.0.1", @@ -2532,9 +2532,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", - "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.6.tgz", + "integrity": "sha512-tbC3o8uHK9xMgMsvUm9qGqxVpbv6yborMBLbDteHIc7JDNHsTV0vDMQ5j1O1NXvO+BDELtL9KgoWYaUVIVGt8w==", "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -24589,6 +24589,25 @@ } } }, + "node_modules/parse/node_modules/@babel/runtime-corejs3": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", + "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/parse/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, "node_modules/parse/node_modules/ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -31979,9 +31998,9 @@ } }, "@babel/runtime-corejs3": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", - "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.6.tgz", + "integrity": "sha512-tbC3o8uHK9xMgMsvUm9qGqxVpbv6yborMBLbDteHIc7JDNHsTV0vDMQ5j1O1NXvO+BDELtL9KgoWYaUVIVGt8w==", "requires": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -48848,6 +48867,22 @@ "xmlhttprequest": "1.8.0" }, "dependencies": { + "@babel/runtime-corejs3": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", + "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", + "dev": true, + "requires": { + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.14.0" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, "ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", diff --git a/package.json b/package.json index 1fd742094..47d334a65 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "react-native": false }, "dependencies": { - "@babel/runtime-corejs3": "7.23.2", + "@babel/runtime-corejs3": "7.24.6", "idb-keyval": "6.2.1", "react-native-crypto-js": "1.0.0", "uuid": "9.0.1", From 210f8d6e9329886f0d67e53ec1bad7c020f80452 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 17:55:40 +0200 Subject: [PATCH 22/53] refactor: Bump @babel/plugin-transform-runtime from 7.24.3 to 7.24.6 (#2156) --- package-lock.json | 22 +++++++++++----------- package.json | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3385f831d..f61e65532 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "devDependencies": { "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-runtime": "7.24.3", + "@babel/plugin-transform-runtime": "7.24.6", "@babel/preset-env": "7.24.6", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", @@ -2171,13 +2171,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", - "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz", + "integrity": "sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", @@ -31721,13 +31721,13 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", - "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz", + "integrity": "sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-module-imports": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.6", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", diff --git a/package.json b/package.json index 47d334a65..5e61535e4 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-runtime": "7.24.3", + "@babel/plugin-transform-runtime": "7.24.6", "@babel/preset-env": "7.24.6", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", From df6df7c68b9871f0b744958a489a54f1623943a9 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Fri, 7 Jun 2024 04:59:32 -0500 Subject: [PATCH 23/53] fix: Duplicate pending operations on nested fields (#2162) --- src/ParseObject.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ParseObject.ts b/src/ParseObject.ts index 6c78fa4e6..7fe51862d 100644 --- a/src/ParseObject.ts +++ b/src/ParseObject.ts @@ -482,7 +482,12 @@ class ParseObject { json[attr] = encode(attrs[attr], false, false, seen, offline); } } - + const pending = this._getPendingOps(); + for (const attr in pending[0]) { + if (attr.indexOf('.') < 0) { + json[attr] = pending[0][attr].toJSON(offline); + } + } if (this.id) { json.objectId = this.id; } From 56bc655e2a090cf8200dc22eba7732b09c7bcaff Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 7 Jun 2024 10:00:45 +0000 Subject: [PATCH 24/53] chore(release): 5.2.0-alpha.2 [skip ci] # [5.2.0-alpha.2](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.1...5.2.0-alpha.2) (2024-06-07) ### Bug Fixes * Duplicate pending operations on nested fields ([#2162](https://github.com/parse-community/Parse-SDK-JS/issues/2162)) ([df6df7c](https://github.com/parse-community/Parse-SDK-JS/commit/df6df7c68b9871f0b744958a489a54f1623943a9)) --- changelogs/CHANGELOG_alpha.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index 4d5cdda46..9bf7a0b32 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,10 @@ +# [5.2.0-alpha.2](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.1...5.2.0-alpha.2) (2024-06-07) + + +### Bug Fixes + +* Duplicate pending operations on nested fields ([#2162](https://github.com/parse-community/Parse-SDK-JS/issues/2162)) ([df6df7c](https://github.com/parse-community/Parse-SDK-JS/commit/df6df7c68b9871f0b744958a489a54f1623943a9)) + # [5.2.0-alpha.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.1-alpha.1...5.2.0-alpha.1) (2024-05-17) diff --git a/package-lock.json b/package-lock.json index f61e65532..579c63fe6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.2.0-alpha.1", + "version": "5.2.0-alpha.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.2.0-alpha.1", + "version": "5.2.0-alpha.2", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.24.6", diff --git a/package.json b/package.json index 5e61535e4..d2fcc808f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.2.0-alpha.1", + "version": "5.2.0-alpha.2", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From abb300b84a2a116e6871fe913d0991abba87685c Mon Sep 17 00:00:00 2001 From: Manuel <5673677+mtrezza@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:24:37 +0200 Subject: [PATCH 25/53] ci: Disable CI fail on codecov upload fail (#2166) --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f310bdf84..93193b197 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,7 +89,8 @@ jobs: - name: Upload code coverage uses: codecov/codecov-action@v4 with: - fail_ci_if_error: true + # Set to `true` once codecov token bug is fixed; https://github.com/parse-community/parse-server/issues/9129 + fail_ci_if_error: false token: ${{ secrets.CODECOV_TOKEN }} concurrency: group: ${{ github.workflow }}-${{ github.ref }} From 1a5e99c618361310728e6b0494aacd77135a34fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 15:32:17 +0200 Subject: [PATCH 26/53] refactor: Bump @grpc/grpc-js from 1.10.1 to 1.10.9 (#2165) --- package-lock.json | 56 +++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 579c63fe6..3f51566d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3505,29 +3505,29 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.1.tgz", - "integrity": "sha512-55ONqFytZExfOIjF1RjXPcVmT/jJqFzbbDqxK9jmRV4nxiYWtL9hENSW1Jfx0SdZfrvoqd44YJ/GJTqfRrawSQ==", + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.9.tgz", + "integrity": "sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==", "dev": true, "optional": true, "dependencies": { - "@grpc/proto-loader": "^0.7.8", - "@types/node": ">=12.12.47" + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" }, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=12.10.0" } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz", - "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==", + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", "dev": true, "optional": true, "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", - "protobufjs": "^7.2.4", + "protobufjs": "^7.2.5", "yargs": "^17.7.2" }, "bin": { @@ -4485,6 +4485,17 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "dev": true, + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/@jsdoc/salty": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.3.tgz", @@ -32788,26 +32799,26 @@ "requires": {} }, "@grpc/grpc-js": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.1.tgz", - "integrity": "sha512-55ONqFytZExfOIjF1RjXPcVmT/jJqFzbbDqxK9jmRV4nxiYWtL9hENSW1Jfx0SdZfrvoqd44YJ/GJTqfRrawSQ==", + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.9.tgz", + "integrity": "sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ==", "dev": true, "optional": true, "requires": { - "@grpc/proto-loader": "^0.7.8", - "@types/node": ">=12.12.47" + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" } }, "@grpc/proto-loader": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz", - "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==", + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", "dev": true, "optional": true, "requires": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", - "protobufjs": "^7.2.4", + "protobufjs": "^7.2.5", "yargs": "^17.7.2" }, "dependencies": { @@ -33522,6 +33533,13 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "dev": true, + "optional": true + }, "@jsdoc/salty": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.3.tgz", From 2eaeeab5fa2f03e80b9ff6ce6ab337ec610ccb20 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 16:13:41 +0200 Subject: [PATCH 27/53] refactor: Bump eslint-plugin-jsdoc from 48.2.5 to 48.2.9 (#2163) --- package-lock.json | 92 ++++++++++++----------------------------------- package.json | 2 +- 2 files changed, 24 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f51566d1..51efa8b59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", - "eslint-plugin-jsdoc": "48.2.5", + "eslint-plugin-jsdoc": "48.2.9", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", @@ -3015,9 +3015,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", - "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz", + "integrity": "sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==", "dev": true, "dependencies": { "@types/eslint": "^8.56.5", @@ -3032,9 +3032,9 @@ } }, "node_modules/@es-joy/jsdoccomment/node_modules/@typescript-eslint/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", - "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", + "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -11438,19 +11438,18 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz", - "integrity": "sha512-ZeTfKV474W1N9niWfawpwsXGu+ZoMXu4417eBROX31d7ZuOk8zyG66SO77DpJ2+A9Wa2scw/jRqBPnnQo7VbcQ==", + "version": "48.2.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.9.tgz", + "integrity": "sha512-ErpKyr2mEUEkcdZ4nwW/cvDjClvAcvJMEXkGGll0wf8sro8h6qeQ3qlZyp1vM1dRk8Ap6rMdke8FnP94QBIaVQ==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.43.0", + "@es-joy/jsdoccomment": "~0.43.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", - "semver": "^7.6.1", + "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, "engines": { @@ -15643,33 +15642,6 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-builtin-module/node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -32413,9 +32385,9 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", - "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz", + "integrity": "sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==", "dev": true, "requires": { "@types/eslint": "^8.56.5", @@ -32427,9 +32399,9 @@ }, "dependencies": { "@typescript-eslint/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", - "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz", + "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==", "dev": true } } @@ -39339,19 +39311,18 @@ } }, "eslint-plugin-jsdoc": { - "version": "48.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.5.tgz", - "integrity": "sha512-ZeTfKV474W1N9niWfawpwsXGu+ZoMXu4417eBROX31d7ZuOk8zyG66SO77DpJ2+A9Wa2scw/jRqBPnnQo7VbcQ==", + "version": "48.2.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.9.tgz", + "integrity": "sha512-ErpKyr2mEUEkcdZ4nwW/cvDjClvAcvJMEXkGGll0wf8sro8h6qeQ3qlZyp1vM1dRk8Ap6rMdke8FnP94QBIaVQ==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.43.0", + "@es-joy/jsdoccomment": "~0.43.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", - "semver": "^7.6.1", + "semver": "^7.6.2", "spdx-expression-parse": "^4.0.0" }, "dependencies": { @@ -42497,23 +42468,6 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - }, - "dependencies": { - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - } - } - }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", diff --git a/package.json b/package.json index d2fcc808f..283ee7b74 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", - "eslint-plugin-jsdoc": "48.2.5", + "eslint-plugin-jsdoc": "48.2.9", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", From 5ea06c112d53fc90bf4cfebbfdaee6830392c4b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 23:05:36 +0200 Subject: [PATCH 28/53] refactor: Bump mongodb-runner from 5.4.3 to 5.6.2 (#2169) --- package-lock.json | 336 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 285 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51efa8b59..941b9dcd1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,7 +62,7 @@ "lint-staged": "15.2.2", "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", - "mongodb-runner": "5.4.3", + "mongodb-runner": "5.6.2", "parse-server": "7.1.0-alpha.1", "prettier": "3.2.5", "puppeteer": "20.4.0", @@ -4595,9 +4595,9 @@ "dev": true }, "node_modules/@mongodb-js/mongodb-downloader": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@mongodb-js/mongodb-downloader/-/mongodb-downloader-0.2.8.tgz", - "integrity": "sha512-y+mgw9QspvgTLRNHZJRS+DUTPk45RWpvYD1MaGDWhZ4ajffvxGqanY+Z4R6z01n+tIRmQvpShzF6zk+2Pr9d6w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/mongodb-downloader/-/mongodb-downloader-0.3.2.tgz", + "integrity": "sha512-bhMfxzaBy31RveAu7qqON3nVXRHYmxJXyC3lZI+mK+4DhagKZdGHJpMkLmHQRt+wAxMR6ldI9YlcWjHSqceIsQ==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -4608,11 +4608,10 @@ } }, "node_modules/@mongodb-js/saslprep": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", - "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.7.tgz", + "integrity": "sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q==", "dev": true, - "optional": true, "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -20107,8 +20106,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "dev": true, - "optional": true + "dev": true }, "node_modules/meow": { "version": "8.1.2", @@ -20650,9 +20648,9 @@ } }, "node_modules/mongodb-download-url": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-1.3.0.tgz", - "integrity": "sha512-N7mRi3/LIAHCeTa+JtJVrVno4BNHVYF+6/WUamVFsbvCxtljDmQA1n9FSQxV4dfdiknR9zaoFcXAmd1gtg3Elg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-1.5.0.tgz", + "integrity": "sha512-zQP7t3aEpbWabn4ZlYapu8ODm7iRA0ON7hVFqxW2fSmY1kdCoYmKTW4LK+WfaokWOPGpLt4ZPtiWL54Bv1r87g==", "dev": true, "dependencies": { "debug": "^4.1.1", @@ -20665,13 +20663,10 @@ } }, "node_modules/mongodb-download-url/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -20680,21 +20675,40 @@ } }, "node_modules/mongodb-runner": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/mongodb-runner/-/mongodb-runner-5.4.3.tgz", - "integrity": "sha512-Pzd0+8aJtPiuHRwnk/6AToFDACPDdVKK6bpP0+Drbpu6cP9XLG31ZuziyLrqHNB5h7I9WlAoTt34zLt5LO8G7g==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/mongodb-runner/-/mongodb-runner-5.6.2.tgz", + "integrity": "sha512-6XF3iGXswbJy8TC4VgYPVxnrMiUTJ7iaehE+Hiox2sZL2y3b6aNKkrD3Rt2w6nO0JKnwlR/mukyXbMlz2Zmuvw==", "dev": true, "dependencies": { - "@mongodb-js/mongodb-downloader": "^0.2.8", + "@mongodb-js/mongodb-downloader": "^0.3.2", + "@mongodb-js/saslprep": "^1.1.7", "debug": "^4.3.4", - "mongodb": "^5.6.0", - "mongodb-connection-string-url": "^2.6.0", + "mongodb": "^6.3.0", + "mongodb-connection-string-url": "^3.0.0", "yargs": "^17.7.2" }, "bin": { "mongodb-runner": "bin/runner.js" } }, + "node_modules/mongodb-runner/node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "dev": true, + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongodb-runner/node_modules/bson": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.7.0.tgz", + "integrity": "sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==", + "dev": true, + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/mongodb-runner/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -20709,6 +20723,137 @@ "node": ">=12" } }, + "node_modules/mongodb-runner/node_modules/gaxios": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", + "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-runner/node_modules/gcp-metadata": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", + "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-runner/node_modules/mongodb": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.7.0.tgz", + "integrity": "sha512-TMKyHdtMcO0fYBNORiYdmM25ijsHs+Njs963r4Tro4OQZzqYigAzYQouwWRg4OIaiLRUEGUh/1UAcH5lxdSLIA==", + "dev": true, + "dependencies": { + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.7.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-runner/node_modules/mongodb-connection-string-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", + "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", + "dev": true, + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongodb-runner/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mongodb-runner/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongodb-runner/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-runner/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/mongodb-runner/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -27520,7 +27665,6 @@ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "dev": true, - "optional": true, "dependencies": { "memory-pager": "^1.0.2" } @@ -33610,9 +33754,9 @@ "dev": true }, "@mongodb-js/mongodb-downloader": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@mongodb-js/mongodb-downloader/-/mongodb-downloader-0.2.8.tgz", - "integrity": "sha512-y+mgw9QspvgTLRNHZJRS+DUTPk45RWpvYD1MaGDWhZ4ajffvxGqanY+Z4R6z01n+tIRmQvpShzF6zk+2Pr9d6w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/mongodb-downloader/-/mongodb-downloader-0.3.2.tgz", + "integrity": "sha512-bhMfxzaBy31RveAu7qqON3nVXRHYmxJXyC3lZI+mK+4DhagKZdGHJpMkLmHQRt+wAxMR6ldI9YlcWjHSqceIsQ==", "dev": true, "requires": { "debug": "^4.3.4", @@ -33623,11 +33767,10 @@ } }, "@mongodb-js/saslprep": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", - "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.7.tgz", + "integrity": "sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q==", "dev": true, - "optional": true, "requires": { "sparse-bitfield": "^3.0.3" } @@ -45815,8 +45958,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "dev": true, - "optional": true + "dev": true }, "meow": { "version": "8.1.2", @@ -46231,9 +46373,9 @@ } }, "mongodb-download-url": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-1.3.0.tgz", - "integrity": "sha512-N7mRi3/LIAHCeTa+JtJVrVno4BNHVYF+6/WUamVFsbvCxtljDmQA1n9FSQxV4dfdiknR9zaoFcXAmd1gtg3Elg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mongodb-download-url/-/mongodb-download-url-1.5.0.tgz", + "integrity": "sha512-zQP7t3aEpbWabn4ZlYapu8ODm7iRA0ON7hVFqxW2fSmY1kdCoYmKTW4LK+WfaokWOPGpLt4ZPtiWL54Bv1r87g==", "dev": true, "requires": { "debug": "^4.1.1", @@ -46243,29 +46385,42 @@ }, "dependencies": { "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true } } }, "mongodb-runner": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/mongodb-runner/-/mongodb-runner-5.4.3.tgz", - "integrity": "sha512-Pzd0+8aJtPiuHRwnk/6AToFDACPDdVKK6bpP0+Drbpu6cP9XLG31ZuziyLrqHNB5h7I9WlAoTt34zLt5LO8G7g==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/mongodb-runner/-/mongodb-runner-5.6.2.tgz", + "integrity": "sha512-6XF3iGXswbJy8TC4VgYPVxnrMiUTJ7iaehE+Hiox2sZL2y3b6aNKkrD3Rt2w6nO0JKnwlR/mukyXbMlz2Zmuvw==", "dev": true, "requires": { - "@mongodb-js/mongodb-downloader": "^0.2.8", + "@mongodb-js/mongodb-downloader": "^0.3.2", + "@mongodb-js/saslprep": "^1.1.7", "debug": "^4.3.4", - "mongodb": "^5.6.0", - "mongodb-connection-string-url": "^2.6.0", + "mongodb": "^6.3.0", + "mongodb-connection-string-url": "^3.0.0", "yargs": "^17.7.2" }, "dependencies": { + "@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "dev": true, + "requires": { + "@types/webidl-conversions": "*" + } + }, + "bson": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.7.0.tgz", + "integrity": "sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==", + "dev": true + }, "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -46277,6 +46432,84 @@ "wrap-ansi": "^7.0.0" } }, + "gaxios": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", + "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + } + }, + "gcp-metadata": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", + "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + } + }, + "mongodb": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.7.0.tgz", + "integrity": "sha512-TMKyHdtMcO0fYBNORiYdmM25ijsHs+Njs963r4Tro4OQZzqYigAzYQouwWRg4OIaiLRUEGUh/1UAcH5lxdSLIA==", + "dev": true, + "requires": { + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.7.0", + "mongodb-connection-string-url": "^3.0.0" + } + }, + "mongodb-connection-string-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", + "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", + "dev": true, + "requires": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "requires": { + "punycode": "^2.3.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "requires": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + } + }, "yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -51372,7 +51605,6 @@ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "dev": true, - "optional": true, "requires": { "memory-pager": "^1.0.2" } diff --git a/package.json b/package.json index 283ee7b74..2267ba081 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "lint-staged": "15.2.2", "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", - "mongodb-runner": "5.4.3", + "mongodb-runner": "5.6.2", "parse-server": "7.1.0-alpha.1", "prettier": "3.2.5", "puppeteer": "20.4.0", From d69a83544ba96d25c5fdfb19abfbaa712d341c1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 23:10:27 +0200 Subject: [PATCH 29/53] refactor: Bump regenerator-runtime from 0.13.11 to 0.14.1 (#2168) --- package-lock.json | 66 ++++++++++++++--------------------------------- package.json | 2 +- 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 941b9dcd1..8defc1663 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "parse-server": "7.1.0-alpha.1", "prettier": "3.2.5", "puppeteer": "20.4.0", - "regenerator-runtime": "0.13.11", + "regenerator-runtime": "0.14.1", "semantic-release": "19.0.5", "vinyl-source-stream": "2.0.0" }, @@ -2543,17 +2543,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, "node_modules/@babel/template": { "version": "7.24.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", @@ -5270,6 +5259,12 @@ "crypto-js": "4.1.1" } }, + "node_modules/@parse/push-adapter/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, "node_modules/@parse/push-adapter/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -24730,12 +24725,6 @@ "node": ">=6.9.0" } }, - "node_modules/parse/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, "node_modules/parse/node_modules/ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -26380,10 +26369,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -32114,14 +32102,6 @@ "dev": true, "requires": { "regenerator-runtime": "^0.14.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - } } }, "@babel/runtime-corejs3": { @@ -32131,13 +32111,6 @@ "requires": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - } } }, "@babel/template": { @@ -34247,6 +34220,12 @@ "xmlhttprequest": "1.8.0" } }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, "signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -49082,12 +49061,6 @@ "regenerator-runtime": "^0.14.0" } }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, "ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -50586,10 +50559,9 @@ } }, "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "regenerator-transform": { "version": "0.15.2", diff --git a/package.json b/package.json index 2267ba081..0352fba45 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "parse-server": "7.1.0-alpha.1", "prettier": "3.2.5", "puppeteer": "20.4.0", - "regenerator-runtime": "0.13.11", + "regenerator-runtime": "0.14.1", "semantic-release": "19.0.5", "vinyl-source-stream": "2.0.0" }, From 849488142c7a755db57191bd9dd994b4011cec67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 17:08:22 +0200 Subject: [PATCH 30/53] refactor: Bump @babel/plugin-transform-runtime from 7.24.6 to 7.24.7 (#2171) --- package-lock.json | 304 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 157 insertions(+), 149 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8defc1663..565c8fa70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "devDependencies": { "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-runtime": "7.24.6", + "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.24.6", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", @@ -405,12 +405,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", - "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.6", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -508,12 +508,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -661,34 +661,37 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", - "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", - "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", - "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -707,12 +710,13 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", - "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -750,9 +754,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", - "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -817,30 +821,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", - "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", - "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", - "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -884,12 +888,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", - "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -899,9 +903,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", - "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -2171,13 +2175,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz", - "integrity": "sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", @@ -2544,33 +2548,33 @@ } }, "node_modules/@babel/template": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", - "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2579,13 +2583,13 @@ } }, "node_modules/@babel/types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", - "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -30649,12 +30653,12 @@ "dev": true }, "@babel/code-frame": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", - "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "requires": { - "@babel/highlight": "^7.24.6", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" } }, @@ -30727,12 +30731,12 @@ } }, "@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, "requires": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -30850,28 +30854,31 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", - "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", - "dev": true + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } }, "@babel/helper-function-name": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", - "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, "requires": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-hoist-variables": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", - "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" } }, "@babel/helper-member-expression-to-functions": { @@ -30884,12 +30891,13 @@ } }, "@babel/helper-module-imports": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz", - "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-module-transforms": { @@ -30915,9 +30923,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz", - "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -30961,24 +30969,24 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", - "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" } }, "@babel/helper-string-parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", - "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", - "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true }, "@babel/helper-validator-option": { @@ -31010,21 +31018,21 @@ } }, "@babel/highlight": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", - "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "@babel/parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", - "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true }, "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { @@ -31836,13 +31844,13 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz", - "integrity": "sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", @@ -32114,42 +32122,42 @@ } }, "@babel/template": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", - "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, "requires": { - "@babel/code-frame": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", - "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" } }, diff --git a/package.json b/package.json index 0352fba45..8063aea34 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@babel/core": "7.24.5", "@babel/plugin-proposal-class-properties": "7.18.6", - "@babel/plugin-transform-runtime": "7.24.6", + "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.24.6", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", From 46820b16ada6668eeb7be2c1c3f1b1e3bcef4be5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 14:18:54 +0200 Subject: [PATCH 31/53] refactor: Bump lint-staged from 15.2.2 to 15.2.7 (#2173) --- package-lock.json | 174 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 91 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index 565c8fa70..a0448abf7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "jest-environment-jsdom": "29.7.0", "jsdoc": "4.0.3", "jsdoc-babel": "0.5.0", - "lint-staged": "15.2.2", + "lint-staged": "15.2.7", "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.6.2", @@ -7963,12 +7963,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -12621,9 +12621,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -18808,12 +18808,15 @@ } }, "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "dev": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/limiter": { @@ -18838,21 +18841,21 @@ } }, "node_modules/lint-staged": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", - "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", - "dev": true, - "dependencies": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.7.tgz", + "integrity": "sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==", + "dev": true, + "dependencies": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.3.4", + "execa": "~8.0.1", + "lilconfig": "~3.1.1", + "listr2": "~8.2.1", + "micromatch": "~4.0.7", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.4.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -18877,12 +18880,12 @@ } }, "node_modules/lint-staged/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/lint-staged/node_modules/execa": { @@ -19020,25 +19023,28 @@ } }, "node_modules/lint-staged/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } }, "node_modules/listr2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", - "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.1.tgz", + "integrity": "sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==", "dev": true, "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.0.0", - "rfdc": "^1.3.0", + "rfdc": "^1.3.1", "wrap-ansi": "^9.0.0" }, "engines": { @@ -20216,12 +20222,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -26826,9 +26832,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true }, "node_modules/rimraf": { @@ -36413,12 +36419,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "brorand": { @@ -40151,9 +40157,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -44979,9 +44985,9 @@ } }, "lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "dev": true }, "limiter": { @@ -45006,21 +45012,21 @@ } }, "lint-staged": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", - "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.7.tgz", + "integrity": "sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==", "dev": true, "requires": { - "chalk": "5.3.0", - "commander": "11.1.0", - "debug": "4.3.4", - "execa": "8.0.1", - "lilconfig": "3.0.0", - "listr2": "8.0.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.4" + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.3.4", + "execa": "~8.0.1", + "lilconfig": "~3.1.1", + "listr2": "~8.2.1", + "micromatch": "~4.0.7", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.4.2" }, "dependencies": { "chalk": { @@ -45030,9 +45036,9 @@ "dev": true }, "commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true }, "execa": { @@ -45113,24 +45119,24 @@ "dev": true }, "yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", "dev": true } } }, "listr2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.0.1.tgz", - "integrity": "sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.1.tgz", + "integrity": "sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==", "dev": true, "requires": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.0.0", - "rfdc": "^1.3.0", + "rfdc": "^1.3.1", "wrap-ansi": "^9.0.0" }, "dependencies": { @@ -46038,12 +46044,12 @@ } }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -50927,9 +50933,9 @@ "dev": true }, "rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true }, "rimraf": { diff --git a/package.json b/package.json index 8063aea34..9c595fc72 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "jest-environment-jsdom": "29.7.0", "jsdoc": "4.0.3", "jsdoc-babel": "0.5.0", - "lint-staged": "15.2.2", + "lint-staged": "15.2.7", "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.6.2", From 7f2491b0eca68db532b280ee5b5bc37e26d6c5d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:36:22 +0200 Subject: [PATCH 32/53] refactor: Bump @babel/core from 7.24.5 to 7.24.7 (#2174) --- package-lock.json | 166 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0448abf7..d7a921cfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "xmlhttprequest": "1.8.0" }, "devDependencies": { - "@babel/core": "7.24.5", + "@babel/core": "7.24.7", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.24.6", @@ -418,30 +418,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", - "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -547,13 +547,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -723,16 +723,16 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -797,12 +797,13 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -851,9 +852,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", - "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -874,14 +875,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -30669,27 +30669,27 @@ } }, "@babel/compat-data": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz", - "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true }, "@babel/core": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", - "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -30767,13 +30767,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz", - "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, "requires": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -30907,16 +30907,16 @@ } }, "@babel/helper-module-transforms": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz", - "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" } }, "@babel/helper-optimise-call-expression": { @@ -30957,12 +30957,13 @@ } }, "@babel/helper-simple-access": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz", - "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -30996,9 +30997,9 @@ "dev": true }, "@babel/helper-validator-option": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz", - "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true }, "@babel/helper-wrap-function": { @@ -31013,14 +31014,13 @@ } }, "@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, "requires": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/highlight": { diff --git a/package.json b/package.json index 9c595fc72..4ea86cb81 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "xmlhttprequest": "1.8.0" }, "devDependencies": { - "@babel/core": "7.24.5", + "@babel/core": "7.24.7", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.24.6", From 3bcfcca06f0221ae2882bdd120f084fb546e2c6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 19:14:56 +0200 Subject: [PATCH 33/53] refactor: Bump @babel/preset-env from 7.24.6 to 7.24.7 (#2175) --- package-lock.json | 1522 +++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 766 insertions(+), 758 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7a921cfb..ccbdabd33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@babel/core": "7.24.7", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.24.7", - "@babel/preset-env": "7.24.6", + "@babel/preset-env": "7.24.7", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", "@definitelytyped/dtslint": "0.0.163", @@ -523,24 +523,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", - "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", - "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -587,19 +588,19 @@ "dev": true }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", - "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-member-expression-to-functions": "^7.24.6", - "@babel/helper-optimise-call-expression": "^7.24.6", - "@babel/helper-replace-supers": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "semver": "^6.3.1" }, "engines": { @@ -619,12 +620,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", - "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -698,12 +699,13 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", - "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -742,12 +744,12 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", - "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -763,14 +765,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", - "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-wrap-function": "^7.24.6" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -780,14 +782,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", - "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-member-expression-to-functions": "^7.24.6", - "@babel/helper-optimise-call-expression": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -810,12 +812,13 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", - "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -861,14 +864,15 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", - "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -915,13 +919,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", - "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -931,12 +935,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", - "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -946,14 +950,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", - "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", - "@babel/plugin-transform-optional-chaining": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -963,13 +967,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", - "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1230,12 +1234,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", - "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1245,12 +1249,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", - "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1432,12 +1436,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", - "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1447,14 +1451,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", - "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1465,14 +1469,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", - "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-remap-async-to-generator": "^7.24.6" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1482,12 +1486,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", - "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1497,12 +1501,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", - "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1512,13 +1516,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", - "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1528,13 +1532,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", - "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1545,18 +1549,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", - "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-replace-supers": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" }, "engines": { @@ -1567,13 +1571,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", - "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/template": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1583,12 +1587,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", - "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1598,13 +1602,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", - "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1614,12 +1618,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", - "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1629,12 +1633,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", - "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1645,13 +1649,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", - "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1661,12 +1665,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", - "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1693,13 +1697,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", - "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1709,14 +1713,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", - "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1726,12 +1730,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", - "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1742,12 +1746,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", - "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1757,12 +1761,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", - "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1773,12 +1777,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", - "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1788,13 +1792,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", - "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1804,14 +1808,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", - "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1821,15 +1825,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", - "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1839,13 +1843,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", - "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1855,13 +1859,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", - "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1871,12 +1875,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", - "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1886,12 +1890,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", - "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1902,12 +1906,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", - "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1918,15 +1922,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", - "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.6" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1936,13 +1940,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", - "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-replace-supers": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1952,12 +1956,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", - "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1968,13 +1972,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", - "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1985,12 +1989,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", - "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2000,13 +2004,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", - "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2016,14 +2020,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", - "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -2034,12 +2038,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", - "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2144,12 +2148,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", - "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -2160,12 +2164,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", - "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2204,12 +2208,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", - "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2219,13 +2223,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", - "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2235,12 +2239,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", - "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2250,12 +2254,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", - "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2265,12 +2269,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", - "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2298,12 +2302,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", - "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2313,13 +2317,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", - "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2329,13 +2333,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", - "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2345,13 +2349,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", - "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2361,27 +2365,27 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", - "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.6", - "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -2393,54 +2397,54 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.6", - "@babel/plugin-transform-async-generator-functions": "^7.24.6", - "@babel/plugin-transform-async-to-generator": "^7.24.6", - "@babel/plugin-transform-block-scoped-functions": "^7.24.6", - "@babel/plugin-transform-block-scoping": "^7.24.6", - "@babel/plugin-transform-class-properties": "^7.24.6", - "@babel/plugin-transform-class-static-block": "^7.24.6", - "@babel/plugin-transform-classes": "^7.24.6", - "@babel/plugin-transform-computed-properties": "^7.24.6", - "@babel/plugin-transform-destructuring": "^7.24.6", - "@babel/plugin-transform-dotall-regex": "^7.24.6", - "@babel/plugin-transform-duplicate-keys": "^7.24.6", - "@babel/plugin-transform-dynamic-import": "^7.24.6", - "@babel/plugin-transform-exponentiation-operator": "^7.24.6", - "@babel/plugin-transform-export-namespace-from": "^7.24.6", - "@babel/plugin-transform-for-of": "^7.24.6", - "@babel/plugin-transform-function-name": "^7.24.6", - "@babel/plugin-transform-json-strings": "^7.24.6", - "@babel/plugin-transform-literals": "^7.24.6", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", - "@babel/plugin-transform-member-expression-literals": "^7.24.6", - "@babel/plugin-transform-modules-amd": "^7.24.6", - "@babel/plugin-transform-modules-commonjs": "^7.24.6", - "@babel/plugin-transform-modules-systemjs": "^7.24.6", - "@babel/plugin-transform-modules-umd": "^7.24.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", - "@babel/plugin-transform-new-target": "^7.24.6", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", - "@babel/plugin-transform-numeric-separator": "^7.24.6", - "@babel/plugin-transform-object-rest-spread": "^7.24.6", - "@babel/plugin-transform-object-super": "^7.24.6", - "@babel/plugin-transform-optional-catch-binding": "^7.24.6", - "@babel/plugin-transform-optional-chaining": "^7.24.6", - "@babel/plugin-transform-parameters": "^7.24.6", - "@babel/plugin-transform-private-methods": "^7.24.6", - "@babel/plugin-transform-private-property-in-object": "^7.24.6", - "@babel/plugin-transform-property-literals": "^7.24.6", - "@babel/plugin-transform-regenerator": "^7.24.6", - "@babel/plugin-transform-reserved-words": "^7.24.6", - "@babel/plugin-transform-shorthand-properties": "^7.24.6", - "@babel/plugin-transform-spread": "^7.24.6", - "@babel/plugin-transform-sticky-regex": "^7.24.6", - "@babel/plugin-transform-template-literals": "^7.24.6", - "@babel/plugin-transform-typeof-symbol": "^7.24.6", - "@babel/plugin-transform-unicode-escapes": "^7.24.6", - "@babel/plugin-transform-unicode-property-regex": "^7.24.6", - "@babel/plugin-transform-unicode-regex": "^7.24.6", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", @@ -2524,9 +2528,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", - "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -30749,21 +30753,22 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz", - "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz", - "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-compilation-targets": { @@ -30803,19 +30808,19 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz", - "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-member-expression-to-functions": "^7.24.6", - "@babel/helper-optimise-call-expression": "^7.24.6", - "@babel/helper-replace-supers": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "semver": "^6.3.1" }, "dependencies": { @@ -30828,12 +30833,12 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz", - "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.6", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, @@ -30888,12 +30893,13 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz", - "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-module-imports": { @@ -30920,12 +30926,12 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz", - "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" } }, "@babel/helper-plugin-utils": { @@ -30935,25 +30941,25 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz", - "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-wrap-function": "^7.24.6" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" } }, "@babel/helper-replace-supers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz", - "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-member-expression-to-functions": "^7.24.6", - "@babel/helper-optimise-call-expression": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" } }, "@babel/helper-simple-access": { @@ -30967,12 +30973,13 @@ } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz", - "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "requires": { - "@babel/types": "^7.24.6" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helper-split-export-declaration": { @@ -31003,14 +31010,15 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz", - "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.24.6", - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" } }, "@babel/helpers": { @@ -31042,43 +31050,43 @@ "dev": true }, "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz", - "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz", - "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz", - "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", - "@babel/plugin-transform-optional-chaining": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" } }, "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz", - "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-proposal-async-generator-functions": { @@ -31247,21 +31255,21 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz", - "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-syntax-import-attributes": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz", - "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-syntax-import-meta": { @@ -31383,157 +31391,157 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz", - "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-async-generator-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz", - "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-remap-async-to-generator": "^7.24.6", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz", - "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-remap-async-to-generator": "^7.24.6" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz", - "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz", - "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-class-properties": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz", - "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-class-static-block": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz", - "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-transform-classes": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz", - "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-replace-supers": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", - "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/template": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz", - "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz", - "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz", - "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-dynamic-import": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz", - "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz", - "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-export-namespace-from": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz", - "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, @@ -31548,227 +31556,227 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz", - "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" } }, "@babel/plugin-transform-function-name": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz", - "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-json-strings": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz", - "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz", - "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz", - "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz", - "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz", - "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz", - "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-simple-access": "^7.24.6" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz", - "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.24.6", - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6" + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz", - "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz", - "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-new-target": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz", - "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz", - "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-transform-numeric-separator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz", - "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-transform-object-rest-spread": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz", - "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.6" + "@babel/plugin-transform-parameters": "^7.24.7" } }, "@babel/plugin-transform-object-super": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz", - "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-replace-supers": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" } }, "@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz", - "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-transform-optional-chaining": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz", - "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz", - "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-private-methods": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz", - "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-private-property-in-object": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz", - "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.24.6", - "@babel/helper-create-class-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz", - "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-react-display-name": { @@ -31831,22 +31839,22 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz", - "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz", - "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-runtime": { @@ -31872,49 +31880,49 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz", - "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-spread": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz", - "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz", - "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-template-literals": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz", - "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz", - "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-typescript": { @@ -31930,66 +31938,66 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz", - "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz", - "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz", - "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz", - "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/preset-env": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz", - "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.24.6", - "@babel/helper-compilation-targets": "^7.24.6", - "@babel/helper-plugin-utils": "^7.24.6", - "@babel/helper-validator-option": "^7.24.6", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.6", - "@babel/plugin-syntax-import-attributes": "^7.24.6", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -32001,54 +32009,54 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.6", - "@babel/plugin-transform-async-generator-functions": "^7.24.6", - "@babel/plugin-transform-async-to-generator": "^7.24.6", - "@babel/plugin-transform-block-scoped-functions": "^7.24.6", - "@babel/plugin-transform-block-scoping": "^7.24.6", - "@babel/plugin-transform-class-properties": "^7.24.6", - "@babel/plugin-transform-class-static-block": "^7.24.6", - "@babel/plugin-transform-classes": "^7.24.6", - "@babel/plugin-transform-computed-properties": "^7.24.6", - "@babel/plugin-transform-destructuring": "^7.24.6", - "@babel/plugin-transform-dotall-regex": "^7.24.6", - "@babel/plugin-transform-duplicate-keys": "^7.24.6", - "@babel/plugin-transform-dynamic-import": "^7.24.6", - "@babel/plugin-transform-exponentiation-operator": "^7.24.6", - "@babel/plugin-transform-export-namespace-from": "^7.24.6", - "@babel/plugin-transform-for-of": "^7.24.6", - "@babel/plugin-transform-function-name": "^7.24.6", - "@babel/plugin-transform-json-strings": "^7.24.6", - "@babel/plugin-transform-literals": "^7.24.6", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.6", - "@babel/plugin-transform-member-expression-literals": "^7.24.6", - "@babel/plugin-transform-modules-amd": "^7.24.6", - "@babel/plugin-transform-modules-commonjs": "^7.24.6", - "@babel/plugin-transform-modules-systemjs": "^7.24.6", - "@babel/plugin-transform-modules-umd": "^7.24.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6", - "@babel/plugin-transform-new-target": "^7.24.6", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6", - "@babel/plugin-transform-numeric-separator": "^7.24.6", - "@babel/plugin-transform-object-rest-spread": "^7.24.6", - "@babel/plugin-transform-object-super": "^7.24.6", - "@babel/plugin-transform-optional-catch-binding": "^7.24.6", - "@babel/plugin-transform-optional-chaining": "^7.24.6", - "@babel/plugin-transform-parameters": "^7.24.6", - "@babel/plugin-transform-private-methods": "^7.24.6", - "@babel/plugin-transform-private-property-in-object": "^7.24.6", - "@babel/plugin-transform-property-literals": "^7.24.6", - "@babel/plugin-transform-regenerator": "^7.24.6", - "@babel/plugin-transform-reserved-words": "^7.24.6", - "@babel/plugin-transform-shorthand-properties": "^7.24.6", - "@babel/plugin-transform-spread": "^7.24.6", - "@babel/plugin-transform-sticky-regex": "^7.24.6", - "@babel/plugin-transform-template-literals": "^7.24.6", - "@babel/plugin-transform-typeof-symbol": "^7.24.6", - "@babel/plugin-transform-unicode-escapes": "^7.24.6", - "@babel/plugin-transform-unicode-property-regex": "^7.24.6", - "@babel/plugin-transform-unicode-regex": "^7.24.6", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", @@ -32110,9 +32118,9 @@ "dev": true }, "@babel/runtime": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", - "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", "dev": true, "requires": { "regenerator-runtime": "^0.14.0" diff --git a/package.json b/package.json index 4ea86cb81..689bfd11f 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@babel/core": "7.24.7", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-runtime": "7.24.7", - "@babel/preset-env": "7.24.6", + "@babel/preset-env": "7.24.7", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", "@definitelytyped/dtslint": "0.0.163", From 2f23cbf9ac10437f05b2cc18b97d9f21c1e245e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 23:10:31 +0200 Subject: [PATCH 34/53] refactor: Bump ws from 8.17.0 to 8.17.1 (#2177) --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccbdabd33..53c529e64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "idb-keyval": "6.2.1", "react-native-crypto-js": "1.0.0", "uuid": "9.0.1", - "ws": "8.17.0", + "ws": "8.17.1", "xmlhttprequest": "1.8.0" }, "devDependencies": { @@ -30284,9 +30284,9 @@ } }, "node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { "node": ">=10.0.0" }, @@ -53735,9 +53735,9 @@ } }, "ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "requires": {} }, "xml-name-validator": { diff --git a/package.json b/package.json index 689bfd11f..2d0e4c2e1 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "idb-keyval": "6.2.1", "react-native-crypto-js": "1.0.0", "uuid": "9.0.1", - "ws": "8.17.0", + "ws": "8.17.1", "xmlhttprequest": "1.8.0" }, "devDependencies": { From 1c9a20e993ea6bcf70ada93c6b163afacdfd5d5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 02:10:30 +0200 Subject: [PATCH 35/53] refactor: Bump prettier from 3.2.5 to 3.3.2 (#2178) --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 53c529e64..5b1c476b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.6.2", "parse-server": "7.1.0-alpha.1", - "prettier": "3.2.5", + "prettier": "3.3.2", "puppeteer": "20.4.0", "regenerator-runtime": "0.14.1", "semantic-release": "19.0.5", @@ -25413,9 +25413,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -49801,9 +49801,9 @@ "dev": true }, "prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true }, "pretty-format": { diff --git a/package.json b/package.json index 2d0e4c2e1..8653b999e 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.6.2", "parse-server": "7.1.0-alpha.1", - "prettier": "3.2.5", + "prettier": "3.3.2", "puppeteer": "20.4.0", "regenerator-runtime": "0.14.1", "semantic-release": "19.0.5", From fc5fab05c7aedfc82d691ead72cf3f8f3070626b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:33:42 +0200 Subject: [PATCH 36/53] refactor: Bump uuid from 9.0.1 to 10.0.0 (#2179) --- package-lock.json | 134 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 128 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5b1c476b4..20f5b0d17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@babel/runtime-corejs3": "7.24.6", "idb-keyval": "6.2.1", "react-native-crypto-js": "1.0.0", - "uuid": "9.0.1", + "uuid": "10.0.0", "ws": "8.17.1", "xmlhttprequest": "1.8.0" }, @@ -241,6 +241,19 @@ "node": ">=12" } }, + "node_modules/@apollo/server/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@apollo/usage-reporting-protobuf": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", @@ -12884,6 +12897,19 @@ "@google-cloud/storage": "^7.7.0" } }, + "node_modules/firebase-admin/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/first-chunk-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", @@ -14021,6 +14047,20 @@ "stream-shift": "^1.0.2" } }, + "node_modules/google-gax/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -24705,6 +24745,19 @@ "node": ">=10" } }, + "node_modules/parse-server/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/parse-server/node_modules/ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -24739,6 +24792,19 @@ "node": ">=6.9.0" } }, + "node_modules/parse/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/parse/node_modules/ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -26825,6 +26891,20 @@ "node": ">=14" } }, + "node_modules/retry-request/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -29534,9 +29614,9 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -30535,6 +30615,12 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true } } }, @@ -40381,6 +40467,14 @@ "jwks-rsa": "^3.0.1", "node-forge": "^1.3.1", "uuid": "^9.0.0" + }, + "dependencies": { + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true + } } }, "first-chunk-stream": { @@ -41315,6 +41409,13 @@ "readable-stream": "^3.1.1", "stream-shift": "^1.0.2" } + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "optional": true } } }, @@ -49083,6 +49184,12 @@ "regenerator-runtime": "^0.14.0" } }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true + }, "ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -49313,6 +49420,12 @@ } } }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true + }, "ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", @@ -50931,6 +51044,13 @@ "stream-events": "^1.0.5", "uuid": "^9.0.0" } + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "optional": true } } }, @@ -53120,9 +53240,9 @@ "dev": true }, "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==" }, "v8-to-istanbul": { "version": "9.2.0", diff --git a/package.json b/package.json index 8653b999e..660c904b1 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@babel/runtime-corejs3": "7.24.6", "idb-keyval": "6.2.1", "react-native-crypto-js": "1.0.0", - "uuid": "9.0.1", + "uuid": "10.0.0", "ws": "8.17.1", "xmlhttprequest": "1.8.0" }, From d76328c31385f16919999582bb4321b835efe53c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 21:00:27 +0200 Subject: [PATCH 37/53] refactor: Bump eslint-plugin-jsdoc from 48.2.9 to 48.4.0 (#2187) --- package-lock.json | 125 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 111 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20f5b0d17..df8542914 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", - "eslint-plugin-jsdoc": "48.2.9", + "eslint-plugin-jsdoc": "48.4.0", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", @@ -5338,6 +5338,18 @@ "node": ">=14" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", @@ -11232,6 +11244,12 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, "node_modules/es5-ext": { "version": "0.10.62", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", @@ -11453,9 +11471,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.9", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.9.tgz", - "integrity": "sha512-ErpKyr2mEUEkcdZ4nwW/cvDjClvAcvJMEXkGGll0wf8sro8h6qeQ3qlZyp1vM1dRk8Ap6rMdke8FnP94QBIaVQ==", + "version": "48.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.4.0.tgz", + "integrity": "sha512-xBUxuAx03cKoEA7y+MYSUdwyN8AJyZHbAJ257sOFXgVgCScm574S4zEYJpBoARwaCu4chhCbvA+gdm+00whlxA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.43.1", @@ -11464,8 +11482,10 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "parse-imports": "^2.1.0", "semver": "^7.6.2", - "spdx-expression-parse": "^4.0.0" + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.0" }, "engines": { "node": ">=18" @@ -24529,6 +24549,19 @@ "node": ">=0.10.0" } }, + "node_modules/parse-imports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.0.tgz", + "integrity": "sha512-JQWgmK2o4w8leUkZeZPatWdAny6vXGU/3siIUvMF6J2rDCud9aTt8h/px9oZJ6U3EcfhngBJ635uPFI0q0VAeA==", + "dev": true, + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -27430,6 +27463,12 @@ "node": ">=8" } }, + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "dev": true + }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -28474,6 +28513,22 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/synckit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz", + "integrity": "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/syntax-error": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", @@ -29015,9 +29070,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "node_modules/tslint": { @@ -34362,6 +34417,12 @@ "dev": true, "optional": true }, + "@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true + }, "@pnpm/network.ca-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", @@ -39168,6 +39229,12 @@ "is-arrayish": "^0.2.1" } }, + "es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, "es5-ext": { "version": "0.10.62", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", @@ -39541,9 +39608,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "48.2.9", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.9.tgz", - "integrity": "sha512-ErpKyr2mEUEkcdZ4nwW/cvDjClvAcvJMEXkGGll0wf8sro8h6qeQ3qlZyp1vM1dRk8Ap6rMdke8FnP94QBIaVQ==", + "version": "48.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.4.0.tgz", + "integrity": "sha512-xBUxuAx03cKoEA7y+MYSUdwyN8AJyZHbAJ257sOFXgVgCScm574S4zEYJpBoARwaCu4chhCbvA+gdm+00whlxA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.43.1", @@ -39552,8 +39619,10 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "parse-imports": "^2.1.0", "semver": "^7.6.2", - "spdx-expression-parse": "^4.0.0" + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.0" }, "dependencies": { "escape-string-regexp": { @@ -49252,6 +49321,16 @@ } } }, + "parse-imports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.0.tgz", + "integrity": "sha512-JQWgmK2o4w8leUkZeZPatWdAny6vXGU/3siIUvMF6J2rDCud9aTt8h/px9oZJ6U3EcfhngBJ635uPFI0q0VAeA==", + "dev": true, + "requires": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -51469,6 +51548,12 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "dev": true + }, "slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -52318,6 +52403,16 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "synckit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz", + "integrity": "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==", + "dev": true, + "requires": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + } + }, "syntax-error": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", @@ -52767,9 +52862,9 @@ } }, "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "tslint": { diff --git a/package.json b/package.json index 660c904b1..37ed1b25b 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", - "eslint-plugin-jsdoc": "48.2.9", + "eslint-plugin-jsdoc": "48.4.0", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", From 11169a4e69d3431e05f8b3af05575fe0487afe66 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Mon, 24 Jun 2024 15:12:23 -0500 Subject: [PATCH 38/53] ci: Properly handle open connections after the tests finish (#2185) --- integration/test/helper.js | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/integration/test/helper.js b/integration/test/helper.js index ee22aa42a..c60b173a0 100644 --- a/integration/test/helper.js +++ b/integration/test/helper.js @@ -93,16 +93,6 @@ const defaultConfiguration = { }; const openConnections = {}; -const destroyAliveConnections = function () { - for (const socketId in openConnections) { - try { - openConnections[socketId].destroy(); - delete openConnections[socketId]; - } catch (e) { - /* */ - } - } -}; let parseServer; let server; @@ -175,17 +165,18 @@ beforeAll(async () => { afterEach(async () => { await Parse.User.logOut(); - // Connection close events are not immediate on node 10+... wait a bit - await sleep(0); - if (Object.keys(openConnections).length > 0) { - console.warn('There were open connections to the server left after the test finished'); - } Parse.Storage._clear(); await TestUtils.destroyAllDataPermanently(true); - destroyAliveConnections(); if (didChangeConfiguration) { await reconfigureServer(); } }); +afterAll(() => { + // Jasmine process counts as one open connection + if (Object.keys(openConnections).length > 1) { + console.warn('There were open connections to the server left after the test finished'); + } +}); + module.exports = { twitterAuthData }; From 23a3ded498248d5108209295761a1118581f5e77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 22:20:03 +0200 Subject: [PATCH 39/53] refactor: Bump parse-server from 7.1.0-alpha.1 to 7.1.0-alpha.10 (#2186) --- package-lock.json | 2143 ++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 1419 insertions(+), 726 deletions(-) diff --git a/package-lock.json b/package-lock.json index df8542914..3ac711603 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.6.2", - "parse-server": "7.1.0-alpha.1", + "parse-server": "7.1.0-alpha.10", "prettier": "3.3.2", "puppeteer": "20.4.0", "regenerator-runtime": "0.14.1", @@ -3024,6 +3024,37 @@ "node": ">=14" } }, + "node_modules/@emnapi/core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.2.0.tgz", + "integrity": "sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", + "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.43.1", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz", @@ -3168,122 +3199,119 @@ } }, "node_modules/@fastify/busboy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-1.2.1.tgz", - "integrity": "sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "dev": true, - "dependencies": { - "text-decoding": "^1.0.0" - }, "engines": { "node": ">=14" } }, "node_modules/@firebase/app-check-interop-types": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.0.tgz", - "integrity": "sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", "dev": true }, "node_modules/@firebase/app-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", - "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", "dev": true }, "node_modules/@firebase/auth-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", - "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", "dev": true }, "node_modules/@firebase/component": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.5.tgz", - "integrity": "sha512-2tVDk1ixi12sbDmmfITK8lxSjmcb73BMF6Qwc3U44hN/J1Fi1QY/Hnnb6klFlbB9/G16a3J3d4nXykye2EADTw==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.7.tgz", + "integrity": "sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA==", "dev": true, "dependencies": { - "@firebase/util": "1.9.4", + "@firebase/util": "1.9.6", "tslib": "^2.1.0" } }, "node_modules/@firebase/database": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.3.tgz", - "integrity": "sha512-9fjqLt9JzL46gw9+NRqsgQEMjgRwfd8XtzcKqG+UYyhVeFCdVRQ0Wp6Dw/dvYHnbH5vNEKzNv36dcB4p+PIAAA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.5.tgz", + "integrity": "sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw==", "dev": true, "dependencies": { - "@firebase/app-check-interop-types": "0.3.0", - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.5", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.4", + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.7", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.9.6", "faye-websocket": "0.11.4", "tslib": "^2.1.0" } }, "node_modules/@firebase/database-compat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.3.tgz", - "integrity": "sha512-7tHEOcMbK5jJzHWyphPux4osogH/adWwncxdMxdBpB9g1DNIyY4dcz1oJdlkXGM/i/AjUBesZsd5CuwTRTBNTw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.5.tgz", + "integrity": "sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg==", "dev": true, "dependencies": { - "@firebase/component": "0.6.5", - "@firebase/database": "1.0.3", - "@firebase/database-types": "1.0.1", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.4", + "@firebase/component": "0.6.7", + "@firebase/database": "1.0.5", + "@firebase/database-types": "1.0.3", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.9.6", "tslib": "^2.1.0" } }, "node_modules/@firebase/database-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.1.tgz", - "integrity": "sha512-Tmcmx5XgiI7UVF/4oGg2P3AOTfq3WKEPsm2yf+uXtN7uG/a4WTWhVMrXGYRY2ZUL1xPxv9V33wQRJ+CcrUhVXw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.3.tgz", + "integrity": "sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA==", "dev": true, "dependencies": { - "@firebase/app-types": "0.9.0", - "@firebase/util": "1.9.4" + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.9.6" } }, "node_modules/@firebase/logger": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", - "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", "dev": true, "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@firebase/util": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.4.tgz", - "integrity": "sha512-WLonYmS1FGHT97TsUmRN3qnTh5TeeoJp1Gg5fithzuAgdZOUtsYECfy7/noQ3llaguios8r5BuXSEiK82+UrxQ==", + "version": "1.9.6", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.6.tgz", + "integrity": "sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw==", "dev": true, "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@google-cloud/firestore": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.3.1.tgz", - "integrity": "sha512-YluLZbJK3dHXq6Ns5URCtr6hjBiG+6EM17QSivjaozPYDsv1R9a9mkWPz+jCQrb6Ewz6mxp3zavu6DXxvmSWLA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.8.0.tgz", + "integrity": "sha512-m21BWVZLz7H7NF8HZ5hCGUSCEJKNwYB5yzQqDTuE9YUzNDRMDei3BwVDht5k4xF636sGlnobyBL+dcbthSGONg==", "dev": true, "optional": true, "dependencies": { "fast-deep-equal": "^3.1.1", "functional-red-black-tree": "^1.0.1", - "google-gax": "^4.0.4", - "protobufjs": "^7.2.5" + "google-gax": "^4.3.3", + "protobufjs": "^7.2.6" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@google-cloud/paginator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.0.tgz", - "integrity": "sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", "dev": true, "optional": true, "dependencies": { @@ -3325,9 +3353,9 @@ } }, "node_modules/@google-cloud/storage": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.8.0.tgz", - "integrity": "sha512-4q8rKdLp35z8msAtrhr0pbos7BeD8T0tr6rMbBINewp9cfrwj7ROIElVwBluU8fZ596OvwQcjb6QCyBzTmkMRQ==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.11.2.tgz", + "integrity": "sha512-jJOrKyOdujfrSF8EJODW9yY6hqO4jSTk6eVITEj2gsD43BSXuDlnMlLOaBUQhXL29VGnSkxDgYl5tlFhA6LKSA==", "dev": true, "optional": true, "dependencies": { @@ -3336,14 +3364,12 @@ "@google-cloud/promisify": "^4.0.0", "abort-controller": "^3.0.0", "async-retry": "^1.3.3", - "compressible": "^2.0.12", "duplexify": "^4.1.3", - "ent": "^2.2.0", "fast-xml-parser": "^4.3.0", "gaxios": "^6.0.2", "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", "mime": "^3.0.0", - "mime-types": "^2.0.8", "p-limit": "^3.0.1", "retry-request": "^7.0.0", "teeny-request": "^9.0.0", @@ -4626,12 +4652,17 @@ "sparse-bitfield": "^3.0.3" } }, - "node_modules/@napi-rs/triples": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz", - "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.1.2.tgz", + "integrity": "sha512-8JuczewTFIZ/XIjHQ+YlQUydHvlKx2hkcxtuGwh+t/t5zWyZct6YG4+xjHcq8xyc/e7FmFwf42Zj2YgICwmlvA==", "dev": true, - "optional": true + "optional": true, + "dependencies": { + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.8.1" + } }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", @@ -4643,14 +4674,11 @@ } }, "node_modules/@node-rs/bcrypt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.1.0.tgz", - "integrity": "sha512-5vjztYYcPCyvamO3C+hrNaVplZC9yEMzGxJECliQR5hkUOQdrtulCpigNOr1POWpC1YsJH0ZL+ktWop+cl5Qqw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.10.1.tgz", + "integrity": "sha512-bF8xy616FED7iT8AF9fOsyKRHjJ0EKvUubL2WuZbui7khl9gJMTW+2udVxHSH4clPyxWRn6IaXFKbDoffuTxSQ==", "dev": true, "optional": true, - "dependencies": { - "@node-rs/helper": "^1.1.0" - }, "engines": { "node": ">= 10" }, @@ -4659,21 +4687,42 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@node-rs/bcrypt-android-arm64": "^1.1.0", - "@node-rs/bcrypt-darwin-arm64": "^1.1.0", - "@node-rs/bcrypt-darwin-x64": "^1.1.0", - "@node-rs/bcrypt-linux-arm-gnueabihf": "^1.1.0", - "@node-rs/bcrypt-linux-arm64-gnu": "^1.1.0", - "@node-rs/bcrypt-linux-x64-gnu": "^1.1.0", - "@node-rs/bcrypt-linux-x64-musl": "^1.1.0", - "@node-rs/bcrypt-win32-ia32-msvc": "^1.1.0", - "@node-rs/bcrypt-win32-x64-msvc": "^1.1.0" + "@node-rs/bcrypt-android-arm-eabi": "1.10.1", + "@node-rs/bcrypt-android-arm64": "1.10.1", + "@node-rs/bcrypt-darwin-arm64": "1.10.1", + "@node-rs/bcrypt-darwin-x64": "1.10.1", + "@node-rs/bcrypt-freebsd-x64": "1.10.1", + "@node-rs/bcrypt-linux-arm-gnueabihf": "1.10.1", + "@node-rs/bcrypt-linux-arm64-gnu": "1.10.1", + "@node-rs/bcrypt-linux-arm64-musl": "1.10.1", + "@node-rs/bcrypt-linux-x64-gnu": "1.10.1", + "@node-rs/bcrypt-linux-x64-musl": "1.10.1", + "@node-rs/bcrypt-wasm32-wasi": "1.10.1", + "@node-rs/bcrypt-win32-arm64-msvc": "1.10.1", + "@node-rs/bcrypt-win32-ia32-msvc": "1.10.1", + "@node-rs/bcrypt-win32-x64-msvc": "1.10.1" + } + }, + "node_modules/@node-rs/bcrypt-android-arm-eabi": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.10.1.tgz", + "integrity": "sha512-S/E7zl5KjcttzjYjyvY5YBXEVc8E2EB7u6QSmnRB2fsrscvyIKUMiiSaGbzOFGkCgCdry12WxyGF23JCm3n6ow==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" } }, "node_modules/@node-rs/bcrypt-android-arm64": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.6.2.tgz", - "integrity": "sha512-lCRCEjgp4z8qMMFQDdPzI7ratxyIQdDT+xE4k3x1dEDPyrqnSnNyJjCEZYsHg4ke23gFASzktae+2xNXPyhAQw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.10.1.tgz", + "integrity": "sha512-Bdrx+DhkOfRGf4z3CkEVNmTA/bmAS/6Zp4sDn8Po5Q5LqjgyV/6GdFC2lILMobX1axl8GUEhOnUMKO1sg9Annw==", "cpu": [ "arm64" ], @@ -4687,9 +4736,9 @@ } }, "node_modules/@node-rs/bcrypt-darwin-arm64": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.6.2.tgz", - "integrity": "sha512-a2e/FI6m26srGiogs1AnjzaLOeoX4BMNOM44cGUWjTrIMnpTjKjwsSYxHs79w4HDKtjMZgAneSEvB+TPfQWotw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.10.1.tgz", + "integrity": "sha512-IcEvzAsBHi/x8VmyxM4Zz6VcIDuqBfjV8RCHOIQgRKva5g3LO72ceNv5saAxt4ofp/FEcqMD4YlS+z3dq/AUjg==", "cpu": [ "arm64" ], @@ -4703,9 +4752,9 @@ } }, "node_modules/@node-rs/bcrypt-darwin-x64": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.6.2.tgz", - "integrity": "sha512-PKJxphtlHwtTV2/Wa1uSGDzAJFSle9mzInOBLc77U+XWrrjjYUAYex1GHf337Do1b8YeT54fHSF2tBhYz/vYew==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.10.1.tgz", + "integrity": "sha512-VXCOWFDYG/ZahkjmqBxlXsVufqRq1ydLoYLO+WmBZezQO1K12CJNRgPzlLmk5aBe/XdNtjcLG/Oq9nYWiFnYqA==", "cpu": [ "x64" ], @@ -4718,10 +4767,26 @@ "node": ">= 10" } }, + "node_modules/@node-rs/bcrypt-freebsd-x64": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.10.1.tgz", + "integrity": "sha512-3iUb+yayy3QQi8JNijkH1XLBxdSmHCPKqYd8yLfyLPBF36FJv1qpqaUghHaeNOLBn79fufFl7V8FpGeo8DuAgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.6.2.tgz", - "integrity": "sha512-r1c7K4c99mT1w7rr3SP1vZyxWM5H5kTYfC0haz4seSd+cE6CHla9kBxFYThq4gKY6Eau5ZNIb/l16DVC0srlvw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.10.1.tgz", + "integrity": "sha512-9Go6agCbgYElQ8B4yPMwgMMlK1HcIL7ItXnqETLOgSdHpQrccW3f/80tCP3sKKuf5is3q3lP96ZPKbwlV2k2Dw==", "cpu": [ "arm" ], @@ -4735,9 +4800,25 @@ } }, "node_modules/@node-rs/bcrypt-linux-arm64-gnu": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.6.2.tgz", - "integrity": "sha512-VtPcUprI/LZmRuuPVKsfD2TNmWWmfLOtf7Y92PSC71W7nFJnYq0RRAuahbojceQ1Ne7k5Ct4VfCNfMI8siHViQ==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.10.1.tgz", + "integrity": "sha512-RGuEQQk6tGRaobTNT2v+NO3eSncbiM7W2P36StNu/f4DfH0ZluMlg04SxASzCoXANgPh4KcGVck+xcACQkPc1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-linux-arm64-musl": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.10.1.tgz", + "integrity": "sha512-xfqPzURkVa/t/fdWnOnfP84p3udNpWadsdYaCG1VJ+qGxbQKccWQ+lHBzoH3qjl+Vsy1ov8OG1mYSD7QL7e1lQ==", "cpu": [ "arm64" ], @@ -4751,9 +4832,9 @@ } }, "node_modules/@node-rs/bcrypt-linux-x64-gnu": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.6.2.tgz", - "integrity": "sha512-zRbcsFqOXNeDpQqqemU1voZYnWMOrB8WjCyXulZoqZJieu3hWM4cAGmOSDpY/SNHV3/0Q4wk9MNecMtw9iFXOw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.10.1.tgz", + "integrity": "sha512-/kE+fHtPKH8ANkvJtdB+BAMAGzsrq0CS+nfyvba4x6zwJ1Vf/u6i4Uk2ql+tIKIpOlWTR68XezU550PMkKY3Bg==", "cpu": [ "x64" ], @@ -4767,9 +4848,9 @@ } }, "node_modules/@node-rs/bcrypt-linux-x64-musl": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.6.2.tgz", - "integrity": "sha512-dIyx30lhY26pBE0xNqKULhC4uncanbrz0ParjbRFIFpcCLfvw1g7JkRQG7VWWHTPIPNHPUBtxBQcdeA43HJ+Wg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.10.1.tgz", + "integrity": "sha512-r459c9UH/EWnNZpWzw76pmECrxRDGgSHJKovz6/sBWaCJ30LGZOGYghDtRQGQI3Ho5sasE4lC51WaWT0nkoHIg==", "cpu": [ "x64" ], @@ -4782,12 +4863,28 @@ "node": ">= 10" } }, - "node_modules/@node-rs/bcrypt-win32-ia32-msvc": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.6.2.tgz", - "integrity": "sha512-zoU5S+gZ5nQgTMm9PshIvnkn3V56FT0pHfrgjZzR1k1bbiKajEu3X2dkHJ7ajzc4gl2DVu713xur/FWPb2BU3Q==", + "node_modules/@node-rs/bcrypt-wasm32-wasi": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.10.1.tgz", + "integrity": "sha512-akw9cU1CQv5tythjvpFeNVGMxng5LCnurhiJFEwTLfhaw3R0J1OAyI/kaVe4mvDY42D/Ii+sy3q53H+03AzNeQ==", "cpu": [ - "ia32" + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@node-rs/bcrypt-win32-arm64-msvc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.10.1.tgz", + "integrity": "sha512-p/7FE/HeQr/1PcIQPgPH//hstEs6jlsJsAsbp5NXzEm9+v1RSNSpI/P45ZJ3ozZWNniwBdIm6bqYH+9F6fkVXQ==", + "cpu": [ + "arm64" ], "dev": true, "optional": true, @@ -4798,12 +4895,12 @@ "node": ">= 10" } }, - "node_modules/@node-rs/bcrypt-win32-x64-msvc": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.6.2.tgz", - "integrity": "sha512-PhnRszqL4U92Kfa1xmbJ0QiXLPlu1YIrx+n8u7oMPyRPgE+US9Ympn5rNiE0n2Nnz/0v50bl5u0dkfd2frKHcA==", + "node_modules/@node-rs/bcrypt-win32-ia32-msvc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.10.1.tgz", + "integrity": "sha512-gaN26MKOYpO3MqPj92ipIZgOAtE7pcz3GSAOD6xhiOwB2fufBswnd7U7mldsac+bpemDD2ScYvgVYmq1Hqr78w==", "cpu": [ - "x64" + "ia32" ], "dev": true, "optional": true, @@ -4814,14 +4911,20 @@ "node": ">= 10" } }, - "node_modules/@node-rs/helper": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.3.tgz", - "integrity": "sha512-p4OdfQObGN9YFy5WZaGwlPYICQSe7xZYyXB0sxREmvj1HzGKp5bPg2PlfgfMZEfnjIA882B9ZrnagYzZihIwjA==", + "node_modules/@node-rs/bcrypt-win32-x64-msvc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.10.1.tgz", + "integrity": "sha512-HlIAhNzjYlbRJC5vmloNhSHRBH90RlxSRW++EuteZoe8m20w91mIt0ULxFkGU4YUfPCHDPNaZofeDr7JZMlzcw==", + "cpu": [ + "x64" + ], "dev": true, "optional": true, - "dependencies": { - "@napi-rs/triples": "^1.1.0" + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, "node_modules/@nodelib/fs.scandir": { @@ -5019,9 +5122,9 @@ } }, "node_modules/@parse/fs-files-adapter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@parse/fs-files-adapter/-/fs-files-adapter-2.0.1.tgz", - "integrity": "sha512-9DY0T9lK73Ysw+wxxsBt9rpxWxJpMlHl/fTW175XSajusW0ZP5jERI3BTKeclV28eVmSU690EO2vnwCURsPZ7g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@parse/fs-files-adapter/-/fs-files-adapter-3.0.0.tgz", + "integrity": "sha512-Bb+qLtXQ/1SA2Ck6JLVhfD9JQf6cCwgeDZZJjcIdHzUtdPTFu1hj51xdD7tUCL47Ed2i3aAx6K/M6AjLWYVs3A==", "dev": true }, "node_modules/@parse/minami": { @@ -5071,6 +5174,55 @@ } } }, + "node_modules/@parse/node-apn/node_modules/jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/@parse/node-apn/node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@parse/node-apn/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@parse/node-apn/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@parse/node-apn/node_modules/verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", @@ -5173,54 +5325,38 @@ } }, "node_modules/@parse/push-adapter": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@parse/push-adapter/-/push-adapter-5.1.1.tgz", - "integrity": "sha512-gazpr/H8tnEhQtDPPYctsvNU0ICkkZAB0wIOnt5AOFANZ9rldl9vRX/BONtmrpewNinfCnqkGUvI9+tVO+rw4w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@parse/push-adapter/-/push-adapter-6.2.0.tgz", + "integrity": "sha512-WihGQ+5YxfEtuGIJtFv78e0+c3oKxyMKJvUV/rVZRG69ldgI/gsJq3bLGqFOPvq1/5bl6H37yPOIl3aLVhl1rQ==", "dev": true, "dependencies": { "@parse/node-apn": "6.0.1", "@parse/node-gcm": "1.0.2", - "firebase-admin": "12.0.0", + "expo-server-sdk": "3.10.0", + "firebase-admin": "12.1.0", "npmlog": "7.0.1", - "parse": "4.2.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@parse/push-adapter/node_modules/@babel/runtime-corejs3": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz", - "integrity": "sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==", - "dev": true, - "dependencies": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" + "parse": "5.0.0", + "web-push": "3.6.7" }, "engines": { - "node": ">=6.9.0" + "node": ">=18.0.0 <21" } }, "node_modules/@parse/push-adapter/node_modules/are-we-there-yet": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz", "integrity": "sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==", + "deprecated": "This package is no longer supported.", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@parse/push-adapter/node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", - "dev": true, - "optional": true - }, "node_modules/@parse/push-adapter/node_modules/gauge": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.1.tgz", - "integrity": "sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.2.tgz", + "integrity": "sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==", + "deprecated": "This package is no longer supported.", "dev": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", @@ -5236,19 +5372,11 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@parse/push-adapter/node_modules/idb-keyval": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.0.tgz", - "integrity": "sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng==", - "dev": true, - "dependencies": { - "safari-14-idb-fix": "^3.0.0" - } - }, "node_modules/@parse/push-adapter/node_modules/npmlog": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-7.0.1.tgz", "integrity": "sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==", + "deprecated": "This package is no longer supported.", "dev": true, "dependencies": { "are-we-there-yet": "^4.0.0", @@ -5260,32 +5388,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@parse/push-adapter/node_modules/parse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/parse/-/parse-4.2.0.tgz", - "integrity": "sha512-K8bWs0wM2qRhkSr6N16j8OvsF6Uallrynqng9e+tzR3RdKuB09vaJh48qrf9MbiJ1Ya4JZI7AfEHYF+ywEKs7Q==", - "dev": true, - "dependencies": { - "@babel/runtime-corejs3": "7.21.0", - "idb-keyval": "6.2.0", - "react-native-crypto-js": "1.0.0", - "uuid": "9.0.0", - "ws": "8.13.0", - "xmlhttprequest": "1.8.0" - }, - "engines": { - "node": ">=14.21.0 <17 || >=18 <20" - }, - "optionalDependencies": { - "crypto-js": "4.1.1" - } - }, - "node_modules/@parse/push-adapter/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, "node_modules/@parse/push-adapter/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -5298,36 +5400,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@parse/push-adapter/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@parse/push-adapter/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -5859,6 +5931,16 @@ "node": ">= 10" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.3.tgz", + "integrity": "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", @@ -8373,15 +8455,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -9253,19 +9326,6 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "optional": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -10003,6 +10063,21 @@ "node": ">=4" } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/decompress-tar": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", @@ -10748,6 +10823,15 @@ "node": ">=0.10.0" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -11202,13 +11286,6 @@ "node": ">=10.13.0" } }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true, - "optional": true - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -11235,6 +11312,12 @@ "node": ">=10.17" } }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -12138,6 +12221,15 @@ "node": ">=0.10.0" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -12166,6 +12258,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/expo-server-sdk": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/expo-server-sdk/-/expo-server-sdk-3.10.0.tgz", + "integrity": "sha512-isymUVz18Syp9G+TPs2MVZ6WdMoyLw8hDLhpywOd8JqM6iGTka6Dr8Dzq7mjGQ8C8486rxLawZx/W+ps+vkjLQ==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.0", + "promise-limit": "^2.7.0", + "promise-retry": "^2.0.1" + } + }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -12453,6 +12556,20 @@ "node": ">= 0.10" } }, + "node_modules/farmhash": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/farmhash/-/farmhash-3.3.1.tgz", + "integrity": "sha512-XUizHanzlr/v7suBr/o85HSakOoWh6HKXZjFYl5C2+Gj0f0rkw+XTUZzrd9odDsgI9G5tRUcF4wSbKaX04T0DQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^5.1.0", + "prebuild-install": "^7.1.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -12503,9 +12620,9 @@ } }, "node_modules/fast-xml-parser": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.5.tgz", - "integrity": "sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", + "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", "dev": true, "funding": [ { @@ -12895,17 +13012,19 @@ } }, "node_modules/firebase-admin": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.0.0.tgz", - "integrity": "sha512-wBrrSSsKV++/+O8E7O/C7/wL0nbG/x4Xv4yatz/+sohaZ+LsnWtYUcrd3gZutO86hLpDex7xgyrkKbgulmtVyQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.1.0.tgz", + "integrity": "sha512-bU7uPKMmIXAihWxntpY/Ma9zucn5y3ec+HQPqFQ/zcEfP9Avk9E/6D8u+yT/VwKHNZyg7yDVWOoJi73TIdR4Ww==", "dev": true, "dependencies": { - "@fastify/busboy": "^1.2.1", + "@fastify/busboy": "^2.1.0", "@firebase/database-compat": "^1.0.2", "@firebase/database-types": "^1.0.0", "@types/node": "^20.10.3", + "farmhash": "^3.3.0", "jsonwebtoken": "^9.0.0", "jwks-rsa": "^3.0.1", + "long": "^5.2.3", "node-forge": "^1.3.1", "uuid": "^9.0.0" }, @@ -12917,6 +13036,12 @@ "@google-cloud/storage": "^7.7.0" } }, + "node_modules/firebase-admin/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, "node_modules/firebase-admin/node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -13468,25 +13593,26 @@ } }, "node_modules/gaxios": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.3.0.tgz", - "integrity": "sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.6.0.tgz", + "integrity": "sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==", "dev": true, "optional": true, "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "is-stream": "^2.0.0", - "node-fetch": "^2.6.9" + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" }, "engines": { "node": ">=14" } }, "node_modules/gaxios/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "optional": true, "dependencies": { @@ -13510,6 +13636,20 @@ "node": ">= 14" } }, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/gcp-metadata": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", @@ -13745,6 +13885,12 @@ "xtend": "~4.0.1" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -14013,9 +14159,9 @@ } }, "node_modules/google-auth-library": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.6.3.tgz", - "integrity": "sha512-4CacM29MLC2eT9Cey5GDVK4Q8t+MMp8+OEdOaqD9MG6b0dOyLORaaeJMPQ7EESVgm/+z5EKYyFLxgzBJlJgyHQ==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.11.0.tgz", + "integrity": "sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==", "dev": true, "optional": true, "dependencies": { @@ -14031,22 +14177,22 @@ } }, "node_modules/google-gax": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.1.tgz", - "integrity": "sha512-qpSfslpwqToIgQ+Tf3MjWIDjYK4UFIZ0uz6nLtttlW9N1NQA4PhGf9tlGo6KDYJ4rgL2w4CjXVd0z5yeNpN/Iw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.7.tgz", + "integrity": "sha512-3bnD8RASQyaxOYTdWLgwpQco/aytTxFavoI/UN5QN5txDLp8QRrBHNtCUJ5+Ago+551GD92jG8jJduwvmaneUw==", "dev": true, "optional": true, "dependencies": { - "@grpc/grpc-js": "~1.10.0", - "@grpc/proto-loader": "^0.7.0", + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", "@types/long": "^4.0.0", "abort-controller": "^3.0.0", "duplexify": "^4.0.0", "google-auth-library": "^9.3.0", "node-fetch": "^2.6.1", "object-hash": "^3.0.0", - "proto3-json-serializer": "^2.0.0", - "protobufjs": "7.2.6", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", "retry-request": "^7.0.0", "uuid": "^9.0.1" }, @@ -14121,9 +14267,9 @@ "dev": true }, "node_modules/graphql-relay": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.0.tgz", - "integrity": "sha512-44yBuw2/DLNEiMypbNZBt1yMDbBmyVPVesPywnteGGALiBmdyy1JP8jSg8ClLePg8ZZxk0O4BLhd1a6U/1jDOQ==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.1.tgz", + "integrity": "sha512-8AtwSe6B0/b4+YzynHr38PP7S+zX5Vs5LEo0BEzGCPq/THAiHa5H5ZLf3bRbKbok15ADxDQSsGJmlqXeJDDPIw==", "dev": true, "engines": { "node": "^12.20.0 || ^14.15.0 || >= 15.9.0" @@ -15248,6 +15394,23 @@ "node": ">=12" } }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "optional": true + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -15263,6 +15426,15 @@ "node": ">=0.10" } }, + "node_modules/http_ece": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http_ece/-/http_ece-1.2.0.tgz", + "integrity": "sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -18149,9 +18321,9 @@ } }, "node_modules/jose": { - "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", + "version": "4.15.7", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.7.tgz", + "integrity": "sha512-L7ioP+JAuZe8v+T5+zVI9Tx8LtU8BL7NxkyDFVMv+Qr3JW0jSoYDedLtodaXwfqMpeCyx4WXFNyu9tJt4WvC1A==", "dev": true, "funding": { "url": "https://github.com/sponsors/panva" @@ -18539,15 +18711,21 @@ } }, "node_modules/jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "dev": true, "dependencies": { "jws": "^3.2.2", - "lodash": "^4.17.21", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", "ms": "^2.1.1", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">=12", @@ -18576,13 +18754,10 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -18625,7 +18800,6 @@ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", "dev": true, - "optional": true, "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -18654,7 +18828,6 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", "dev": true, - "optional": true, "dependencies": { "jwa": "^2.0.0", "safe-buffer": "^5.0.1" @@ -19277,12 +19450,36 @@ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", "dev": true }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true + }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true + }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -19307,6 +19504,12 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -19635,31 +19838,15 @@ } }, "node_modules/lru-memoizer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz", - "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", + "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", "dev": true, "dependencies": { "lodash.clonedeep": "^4.5.0", - "lru-cache": "~4.0.0" + "lru-cache": "6.0.0" } }, - "node_modules/lru-memoizer/node_modules/lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "node_modules/lru-memoizer/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, "node_modules/lru-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", @@ -20359,6 +20546,18 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -21021,6 +21220,12 @@ "node": ">=0.10.0" } }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -21069,12 +21274,42 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, + "node_modules/node-abi": { + "version": "3.65.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz", + "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", "dev": true }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "dev": true + }, "node_modules/node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -24433,12 +24668,6 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", - "dev": true - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -24608,9 +24837,9 @@ } }, "node_modules/parse-server": { - "version": "7.1.0-alpha.1", - "resolved": "https://registry.npmjs.org/parse-server/-/parse-server-7.1.0-alpha.1.tgz", - "integrity": "sha512-kHK5eHIraVL+kEvhug/hyjJkXxEFRz8py4t+B0yJBUMVajhsU4GYvN7SwY/IU5lRRZGJo8SjR8t+ThfORrHkpw==", + "version": "7.1.0-alpha.10", + "resolved": "https://registry.npmjs.org/parse-server/-/parse-server-7.1.0-alpha.10.tgz", + "integrity": "sha512-iv8MT9eNlBaeFsNDttdUkR9evahK5rF/9mXLJeFslIJnUumscD1bnLNn4Nhm+9fvbYRQqCz7j/M1mQeKY8dKgQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -24619,23 +24848,23 @@ "@graphql-tools/merge": "9.0.3", "@graphql-tools/schema": "10.0.3", "@graphql-tools/utils": "8.12.0", - "@parse/fs-files-adapter": "2.0.1", - "@parse/push-adapter": "5.1.1", + "@parse/fs-files-adapter": "3.0.0", + "@parse/push-adapter": "6.2.0", "bcryptjs": "2.4.3", "body-parser": "1.20.2", "commander": "12.0.0", "cors": "2.8.5", "deepcopy": "2.1.0", - "express": "4.18.2", + "express": "4.19.2", "express-rate-limit": "6.11.2", "follow-redirects": "1.15.6", "graphql": "16.8.1", "graphql-list-fields": "2.0.4", - "graphql-relay": "0.10.0", + "graphql-relay": "0.10.1", "graphql-tag": "2.12.6", "graphql-upload": "15.0.2", "intersect": "1.0.1", - "jsonwebtoken": "9.0.0", + "jsonwebtoken": "9.0.2", "jwks-rsa": "3.1.0", "ldapjs": "3.0.7", "lodash": "4.17.21", @@ -24647,9 +24876,9 @@ "parse": "5.0.0", "path-to-regexp": "6.2.1", "pg-monitor": "2.0.0", - "pg-promise": "11.5.5", + "pg-promise": "11.7.8", "pluralize": "8.0.0", - "rate-limit-redis": "3.0.2", + "rate-limit-redis": "4.2.0", "redis": "4.6.13", "semver": "7.6.0", "subscriptions-transport-ws": "0.11.0", @@ -24670,7 +24899,7 @@ "url": "https://opencollective.com/parse-server" }, "optionalDependencies": { - "@node-rs/bcrypt": "1.1.0" + "@node-rs/bcrypt": "1.10.1" } }, "node_modules/parse-server/node_modules/body-parser": { @@ -24706,6 +24935,15 @@ "node": ">=18" } }, + "node_modules/parse-server/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/parse-server/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -24715,6 +24953,54 @@ "ms": "2.0.0" } }, + "node_modules/parse-server/node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/parse-server/node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, "node_modules/parse-server/node_modules/lru-cache": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", @@ -24751,6 +25037,26 @@ "node": ">= 0.8" } }, + "node_modules/parse-server/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/parse-server/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", @@ -25039,16 +25345,14 @@ "dev": true }, "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", "dev": true, "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -25075,9 +25379,9 @@ "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", "dev": true }, "node_modules/pg-int8": { @@ -25090,12 +25394,12 @@ } }, "node_modules/pg-minify": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.3.tgz", - "integrity": "sha512-NoSsPqXxbkD8RIe+peQCqiea4QzXgosdTKY8p7PsbbGsh2F8TifDj/vJxfuR8qJwNYrijdSs7uf0tAe6WOyCsQ==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.4.tgz", + "integrity": "sha512-cf6hBt1YqzqPX0OznXKSv4U7e4o7eUU4zp2zQsbJ+4OCNNr7EnnAVWkIz4k0dv6UN4ouS1ZL4WlXxCrZHHl69g==", "dev": true, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/pg-monitor": { @@ -25111,23 +25415,23 @@ } }, "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "dev": true, "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-promise": { - "version": "11.5.5", - "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.5.5.tgz", - "integrity": "sha512-DpJkDDH7rG0wUwFRRHimdV6DtG/UTK2SBEKC7KGFR6a5Zuqf9eGThR7dqIaHXnEBDZuWxUfWC5zMRqyk4EP7Lw==", + "version": "11.7.8", + "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.7.8.tgz", + "integrity": "sha512-s5pcLp8QLIFNhnEsxaqBtDh7LsOG3hjJbVOVpYlWPqg/g1LIixGMtbNgbxW1HkTSY5rKT9tyE0J+dw2X7bD3rQ==", "dev": true, "dependencies": { "assert-options": "0.8.1", - "pg": "8.11.3", - "pg-minify": "1.6.3", + "pg": "8.11.5", + "pg-minify": "1.6.4", "spex": "3.3.0" }, "engines": { @@ -25135,9 +25439,9 @@ } }, "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", "dev": true }, "node_modules/pg-types": { @@ -25458,6 +25762,32 @@ "node": ">=0.10.0" } }, + "node_modules/prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/precinct": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.5.tgz", @@ -25606,6 +25936,34 @@ "node": ">=0.4.0" } }, + "node_modules/promise-limit": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/promise-limit/-/promise-limit-2.7.0.tgz", + "integrity": "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -25626,9 +25984,9 @@ "dev": true }, "node_modules/proto3-json-serializer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz", - "integrity": "sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", "dev": true, "optional": true, "dependencies": { @@ -25639,9 +25997,9 @@ } }, "node_modules/protobufjs": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", "dev": true, "hasInstallScript": true, "optional": true, @@ -25755,12 +26113,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -26080,15 +26432,15 @@ } }, "node_modules/rate-limit-redis": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rate-limit-redis/-/rate-limit-redis-3.0.2.tgz", - "integrity": "sha512-4SBK6AzIr9PKkCF4HmSDcJH2O2KKMF3fZEcsbNMXyaL5I9d6X71uOreUldFRiyrRyP+qkQrTxzJ38ZKKN+sScw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/rate-limit-redis/-/rate-limit-redis-4.2.0.tgz", + "integrity": "sha512-wV450NQyKC24NmPosJb2131RoczLdfIJdKCReNwtVpm5998U8SgKrAZrIHaN/NfQgqOHaan8Uq++B4sa5REwjA==", "dev": true, "engines": { - "node": ">= 14.5.0" + "node": ">= 16" }, "peerDependencies": { - "express-rate-limit": "^6" + "express-rate-limit": ">= 6" } }, "node_modules/raw-body": { @@ -27002,12 +27354,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safari-14-idb-fix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz", - "integrity": "sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==", - "dev": true - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -27433,6 +27779,31 @@ } ] }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -28718,12 +29089,6 @@ "node": ">=8" } }, - "node_modules/text-decoding": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz", - "integrity": "sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==", - "dev": true - }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -30098,6 +30463,50 @@ "defaults": "^1.0.3" } }, + "node_modules/web-push": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/web-push/-/web-push-3.6.7.tgz", + "integrity": "sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==", + "dev": true, + "dependencies": { + "asn1.js": "^5.3.0", + "http_ece": "1.2.0", + "https-proxy-agent": "^7.0.0", + "jws": "^4.0.0", + "minimist": "^1.2.5" + }, + "bin": { + "web-push": "src/cli.js" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/web-push/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/web-push/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -32664,6 +33073,37 @@ "node-source-walk": "^6.0.1" } }, + "@emnapi/core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.2.0.tgz", + "integrity": "sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==", + "dev": true, + "optional": true, + "requires": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "@emnapi/runtime": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", + "integrity": "sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==", + "dev": true, + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, "@es-joy/jsdoccomment": { "version": "0.43.1", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz", @@ -32763,116 +33203,113 @@ "dev": true }, "@fastify/busboy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-1.2.1.tgz", - "integrity": "sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q==", - "dev": true, - "requires": { - "text-decoding": "^1.0.0" - } + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true }, "@firebase/app-check-interop-types": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.0.tgz", - "integrity": "sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", "dev": true }, "@firebase/app-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", - "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", "dev": true }, "@firebase/auth-interop-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", - "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", "dev": true }, "@firebase/component": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.5.tgz", - "integrity": "sha512-2tVDk1ixi12sbDmmfITK8lxSjmcb73BMF6Qwc3U44hN/J1Fi1QY/Hnnb6klFlbB9/G16a3J3d4nXykye2EADTw==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.7.tgz", + "integrity": "sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA==", "dev": true, "requires": { - "@firebase/util": "1.9.4", + "@firebase/util": "1.9.6", "tslib": "^2.1.0" } }, "@firebase/database": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.3.tgz", - "integrity": "sha512-9fjqLt9JzL46gw9+NRqsgQEMjgRwfd8XtzcKqG+UYyhVeFCdVRQ0Wp6Dw/dvYHnbH5vNEKzNv36dcB4p+PIAAA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.5.tgz", + "integrity": "sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw==", "dev": true, "requires": { - "@firebase/app-check-interop-types": "0.3.0", - "@firebase/auth-interop-types": "0.2.1", - "@firebase/component": "0.6.5", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.4", + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.7", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.9.6", "faye-websocket": "0.11.4", "tslib": "^2.1.0" } }, "@firebase/database-compat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.3.tgz", - "integrity": "sha512-7tHEOcMbK5jJzHWyphPux4osogH/adWwncxdMxdBpB9g1DNIyY4dcz1oJdlkXGM/i/AjUBesZsd5CuwTRTBNTw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.5.tgz", + "integrity": "sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg==", "dev": true, "requires": { - "@firebase/component": "0.6.5", - "@firebase/database": "1.0.3", - "@firebase/database-types": "1.0.1", - "@firebase/logger": "0.4.0", - "@firebase/util": "1.9.4", + "@firebase/component": "0.6.7", + "@firebase/database": "1.0.5", + "@firebase/database-types": "1.0.3", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.9.6", "tslib": "^2.1.0" } }, "@firebase/database-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.1.tgz", - "integrity": "sha512-Tmcmx5XgiI7UVF/4oGg2P3AOTfq3WKEPsm2yf+uXtN7uG/a4WTWhVMrXGYRY2ZUL1xPxv9V33wQRJ+CcrUhVXw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.3.tgz", + "integrity": "sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA==", "dev": true, "requires": { - "@firebase/app-types": "0.9.0", - "@firebase/util": "1.9.4" + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.9.6" } }, "@firebase/logger": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", - "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", "dev": true, "requires": { "tslib": "^2.1.0" } }, "@firebase/util": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.4.tgz", - "integrity": "sha512-WLonYmS1FGHT97TsUmRN3qnTh5TeeoJp1Gg5fithzuAgdZOUtsYECfy7/noQ3llaguios8r5BuXSEiK82+UrxQ==", + "version": "1.9.6", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.6.tgz", + "integrity": "sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw==", "dev": true, "requires": { "tslib": "^2.1.0" } }, "@google-cloud/firestore": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.3.1.tgz", - "integrity": "sha512-YluLZbJK3dHXq6Ns5URCtr6hjBiG+6EM17QSivjaozPYDsv1R9a9mkWPz+jCQrb6Ewz6mxp3zavu6DXxvmSWLA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.8.0.tgz", + "integrity": "sha512-m21BWVZLz7H7NF8HZ5hCGUSCEJKNwYB5yzQqDTuE9YUzNDRMDei3BwVDht5k4xF636sGlnobyBL+dcbthSGONg==", "dev": true, "optional": true, "requires": { "fast-deep-equal": "^3.1.1", "functional-red-black-tree": "^1.0.1", - "google-gax": "^4.0.4", - "protobufjs": "^7.2.5" + "google-gax": "^4.3.3", + "protobufjs": "^7.2.6" } }, "@google-cloud/paginator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.0.tgz", - "integrity": "sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", "dev": true, "optional": true, "requires": { @@ -32904,9 +33341,9 @@ "optional": true }, "@google-cloud/storage": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.8.0.tgz", - "integrity": "sha512-4q8rKdLp35z8msAtrhr0pbos7BeD8T0tr6rMbBINewp9cfrwj7ROIElVwBluU8fZ596OvwQcjb6QCyBzTmkMRQ==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.11.2.tgz", + "integrity": "sha512-jJOrKyOdujfrSF8EJODW9yY6hqO4jSTk6eVITEj2gsD43BSXuDlnMlLOaBUQhXL29VGnSkxDgYl5tlFhA6LKSA==", "dev": true, "optional": true, "requires": { @@ -32915,14 +33352,12 @@ "@google-cloud/promisify": "^4.0.0", "abort-controller": "^3.0.0", "async-retry": "^1.3.3", - "compressible": "^2.0.12", "duplexify": "^4.1.3", - "ent": "^2.2.0", "fast-xml-parser": "^4.3.0", "gaxios": "^6.0.2", "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", "mime": "^3.0.0", - "mime-types": "^2.0.8", "p-limit": "^3.0.1", "retry-request": "^7.0.0", "teeny-request": "^9.0.0", @@ -33911,12 +34346,17 @@ "sparse-bitfield": "^3.0.3" } }, - "@napi-rs/triples": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz", - "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==", + "@napi-rs/wasm-runtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.1.2.tgz", + "integrity": "sha512-8JuczewTFIZ/XIjHQ+YlQUydHvlKx2hkcxtuGwh+t/t5zWyZct6YG4+xjHcq8xyc/e7FmFwf42Zj2YgICwmlvA==", "dev": true, - "optional": true + "optional": true, + "requires": { + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.8.1" + } }, "@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", @@ -33928,96 +34368,128 @@ } }, "@node-rs/bcrypt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.1.0.tgz", - "integrity": "sha512-5vjztYYcPCyvamO3C+hrNaVplZC9yEMzGxJECliQR5hkUOQdrtulCpigNOr1POWpC1YsJH0ZL+ktWop+cl5Qqw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.10.1.tgz", + "integrity": "sha512-bF8xy616FED7iT8AF9fOsyKRHjJ0EKvUubL2WuZbui7khl9gJMTW+2udVxHSH4clPyxWRn6IaXFKbDoffuTxSQ==", "dev": true, "optional": true, "requires": { - "@node-rs/bcrypt-android-arm64": "^1.1.0", - "@node-rs/bcrypt-darwin-arm64": "^1.1.0", - "@node-rs/bcrypt-darwin-x64": "^1.1.0", - "@node-rs/bcrypt-linux-arm-gnueabihf": "^1.1.0", - "@node-rs/bcrypt-linux-arm64-gnu": "^1.1.0", - "@node-rs/bcrypt-linux-x64-gnu": "^1.1.0", - "@node-rs/bcrypt-linux-x64-musl": "^1.1.0", - "@node-rs/bcrypt-win32-ia32-msvc": "^1.1.0", - "@node-rs/bcrypt-win32-x64-msvc": "^1.1.0", - "@node-rs/helper": "^1.1.0" - } + "@node-rs/bcrypt-android-arm-eabi": "1.10.1", + "@node-rs/bcrypt-android-arm64": "1.10.1", + "@node-rs/bcrypt-darwin-arm64": "1.10.1", + "@node-rs/bcrypt-darwin-x64": "1.10.1", + "@node-rs/bcrypt-freebsd-x64": "1.10.1", + "@node-rs/bcrypt-linux-arm-gnueabihf": "1.10.1", + "@node-rs/bcrypt-linux-arm64-gnu": "1.10.1", + "@node-rs/bcrypt-linux-arm64-musl": "1.10.1", + "@node-rs/bcrypt-linux-x64-gnu": "1.10.1", + "@node-rs/bcrypt-linux-x64-musl": "1.10.1", + "@node-rs/bcrypt-wasm32-wasi": "1.10.1", + "@node-rs/bcrypt-win32-arm64-msvc": "1.10.1", + "@node-rs/bcrypt-win32-ia32-msvc": "1.10.1", + "@node-rs/bcrypt-win32-x64-msvc": "1.10.1" + } + }, + "@node-rs/bcrypt-android-arm-eabi": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.10.1.tgz", + "integrity": "sha512-S/E7zl5KjcttzjYjyvY5YBXEVc8E2EB7u6QSmnRB2fsrscvyIKUMiiSaGbzOFGkCgCdry12WxyGF23JCm3n6ow==", + "dev": true, + "optional": true }, "@node-rs/bcrypt-android-arm64": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.6.2.tgz", - "integrity": "sha512-lCRCEjgp4z8qMMFQDdPzI7ratxyIQdDT+xE4k3x1dEDPyrqnSnNyJjCEZYsHg4ke23gFASzktae+2xNXPyhAQw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.10.1.tgz", + "integrity": "sha512-Bdrx+DhkOfRGf4z3CkEVNmTA/bmAS/6Zp4sDn8Po5Q5LqjgyV/6GdFC2lILMobX1axl8GUEhOnUMKO1sg9Annw==", "dev": true, "optional": true }, "@node-rs/bcrypt-darwin-arm64": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.6.2.tgz", - "integrity": "sha512-a2e/FI6m26srGiogs1AnjzaLOeoX4BMNOM44cGUWjTrIMnpTjKjwsSYxHs79w4HDKtjMZgAneSEvB+TPfQWotw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.10.1.tgz", + "integrity": "sha512-IcEvzAsBHi/x8VmyxM4Zz6VcIDuqBfjV8RCHOIQgRKva5g3LO72ceNv5saAxt4ofp/FEcqMD4YlS+z3dq/AUjg==", "dev": true, "optional": true }, "@node-rs/bcrypt-darwin-x64": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.6.2.tgz", - "integrity": "sha512-PKJxphtlHwtTV2/Wa1uSGDzAJFSle9mzInOBLc77U+XWrrjjYUAYex1GHf337Do1b8YeT54fHSF2tBhYz/vYew==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.10.1.tgz", + "integrity": "sha512-VXCOWFDYG/ZahkjmqBxlXsVufqRq1ydLoYLO+WmBZezQO1K12CJNRgPzlLmk5aBe/XdNtjcLG/Oq9nYWiFnYqA==", + "dev": true, + "optional": true + }, + "@node-rs/bcrypt-freebsd-x64": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.10.1.tgz", + "integrity": "sha512-3iUb+yayy3QQi8JNijkH1XLBxdSmHCPKqYd8yLfyLPBF36FJv1qpqaUghHaeNOLBn79fufFl7V8FpGeo8DuAgw==", "dev": true, "optional": true }, "@node-rs/bcrypt-linux-arm-gnueabihf": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.6.2.tgz", - "integrity": "sha512-r1c7K4c99mT1w7rr3SP1vZyxWM5H5kTYfC0haz4seSd+cE6CHla9kBxFYThq4gKY6Eau5ZNIb/l16DVC0srlvw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.10.1.tgz", + "integrity": "sha512-9Go6agCbgYElQ8B4yPMwgMMlK1HcIL7ItXnqETLOgSdHpQrccW3f/80tCP3sKKuf5is3q3lP96ZPKbwlV2k2Dw==", "dev": true, "optional": true }, "@node-rs/bcrypt-linux-arm64-gnu": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.6.2.tgz", - "integrity": "sha512-VtPcUprI/LZmRuuPVKsfD2TNmWWmfLOtf7Y92PSC71W7nFJnYq0RRAuahbojceQ1Ne7k5Ct4VfCNfMI8siHViQ==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.10.1.tgz", + "integrity": "sha512-RGuEQQk6tGRaobTNT2v+NO3eSncbiM7W2P36StNu/f4DfH0ZluMlg04SxASzCoXANgPh4KcGVck+xcACQkPc1w==", + "dev": true, + "optional": true + }, + "@node-rs/bcrypt-linux-arm64-musl": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.10.1.tgz", + "integrity": "sha512-xfqPzURkVa/t/fdWnOnfP84p3udNpWadsdYaCG1VJ+qGxbQKccWQ+lHBzoH3qjl+Vsy1ov8OG1mYSD7QL7e1lQ==", "dev": true, "optional": true }, "@node-rs/bcrypt-linux-x64-gnu": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.6.2.tgz", - "integrity": "sha512-zRbcsFqOXNeDpQqqemU1voZYnWMOrB8WjCyXulZoqZJieu3hWM4cAGmOSDpY/SNHV3/0Q4wk9MNecMtw9iFXOw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.10.1.tgz", + "integrity": "sha512-/kE+fHtPKH8ANkvJtdB+BAMAGzsrq0CS+nfyvba4x6zwJ1Vf/u6i4Uk2ql+tIKIpOlWTR68XezU550PMkKY3Bg==", "dev": true, "optional": true }, "@node-rs/bcrypt-linux-x64-musl": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.6.2.tgz", - "integrity": "sha512-dIyx30lhY26pBE0xNqKULhC4uncanbrz0ParjbRFIFpcCLfvw1g7JkRQG7VWWHTPIPNHPUBtxBQcdeA43HJ+Wg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.10.1.tgz", + "integrity": "sha512-r459c9UH/EWnNZpWzw76pmECrxRDGgSHJKovz6/sBWaCJ30LGZOGYghDtRQGQI3Ho5sasE4lC51WaWT0nkoHIg==", "dev": true, "optional": true }, - "@node-rs/bcrypt-win32-ia32-msvc": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.6.2.tgz", - "integrity": "sha512-zoU5S+gZ5nQgTMm9PshIvnkn3V56FT0pHfrgjZzR1k1bbiKajEu3X2dkHJ7ajzc4gl2DVu713xur/FWPb2BU3Q==", + "@node-rs/bcrypt-wasm32-wasi": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.10.1.tgz", + "integrity": "sha512-akw9cU1CQv5tythjvpFeNVGMxng5LCnurhiJFEwTLfhaw3R0J1OAyI/kaVe4mvDY42D/Ii+sy3q53H+03AzNeQ==", + "dev": true, + "optional": true, + "requires": { + "@napi-rs/wasm-runtime": "^0.1.1" + } + }, + "@node-rs/bcrypt-win32-arm64-msvc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.10.1.tgz", + "integrity": "sha512-p/7FE/HeQr/1PcIQPgPH//hstEs6jlsJsAsbp5NXzEm9+v1RSNSpI/P45ZJ3ozZWNniwBdIm6bqYH+9F6fkVXQ==", "dev": true, "optional": true }, - "@node-rs/bcrypt-win32-x64-msvc": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.6.2.tgz", - "integrity": "sha512-PhnRszqL4U92Kfa1xmbJ0QiXLPlu1YIrx+n8u7oMPyRPgE+US9Ympn5rNiE0n2Nnz/0v50bl5u0dkfd2frKHcA==", + "@node-rs/bcrypt-win32-ia32-msvc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.10.1.tgz", + "integrity": "sha512-gaN26MKOYpO3MqPj92ipIZgOAtE7pcz3GSAOD6xhiOwB2fufBswnd7U7mldsac+bpemDD2ScYvgVYmq1Hqr78w==", "dev": true, "optional": true }, - "@node-rs/helper": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.3.tgz", - "integrity": "sha512-p4OdfQObGN9YFy5WZaGwlPYICQSe7xZYyXB0sxREmvj1HzGKp5bPg2PlfgfMZEfnjIA882B9ZrnagYzZihIwjA==", + "@node-rs/bcrypt-win32-x64-msvc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.10.1.tgz", + "integrity": "sha512-HlIAhNzjYlbRJC5vmloNhSHRBH90RlxSRW++EuteZoe8m20w91mIt0ULxFkGU4YUfPCHDPNaZofeDr7JZMlzcw==", "dev": true, - "optional": true, - "requires": { - "@napi-rs/triples": "^1.1.0" - } + "optional": true }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -34170,9 +34642,9 @@ } }, "@parse/fs-files-adapter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@parse/fs-files-adapter/-/fs-files-adapter-2.0.1.tgz", - "integrity": "sha512-9DY0T9lK73Ysw+wxxsBt9rpxWxJpMlHl/fTW175XSajusW0ZP5jERI3BTKeclV28eVmSU690EO2vnwCURsPZ7g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@parse/fs-files-adapter/-/fs-files-adapter-3.0.0.tgz", + "integrity": "sha512-Bb+qLtXQ/1SA2Ck6JLVhfD9JQf6cCwgeDZZJjcIdHzUtdPTFu1hj51xdD7tUCL47Ed2i3aAx6K/M6AjLWYVs3A==", "dev": true }, "@parse/minami": { @@ -34210,6 +34682,45 @@ "ms": "2.1.2" } }, + "jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dev": true, + "requires": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + }, "verror": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", @@ -34296,45 +34807,30 @@ } }, "@parse/push-adapter": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@parse/push-adapter/-/push-adapter-5.1.1.tgz", - "integrity": "sha512-gazpr/H8tnEhQtDPPYctsvNU0ICkkZAB0wIOnt5AOFANZ9rldl9vRX/BONtmrpewNinfCnqkGUvI9+tVO+rw4w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@parse/push-adapter/-/push-adapter-6.2.0.tgz", + "integrity": "sha512-WihGQ+5YxfEtuGIJtFv78e0+c3oKxyMKJvUV/rVZRG69ldgI/gsJq3bLGqFOPvq1/5bl6H37yPOIl3aLVhl1rQ==", "dev": true, "requires": { "@parse/node-apn": "6.0.1", "@parse/node-gcm": "1.0.2", - "firebase-admin": "12.0.0", + "expo-server-sdk": "3.10.0", + "firebase-admin": "12.1.0", "npmlog": "7.0.1", - "parse": "4.2.0" + "parse": "5.0.0", + "web-push": "3.6.7" }, "dependencies": { - "@babel/runtime-corejs3": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz", - "integrity": "sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==", - "dev": true, - "requires": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" - } - }, "are-we-there-yet": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz", "integrity": "sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==", "dev": true }, - "crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", - "dev": true, - "optional": true - }, "gauge": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.1.tgz", - "integrity": "sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.2.tgz", + "integrity": "sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==", "dev": true, "requires": { "aproba": "^1.0.3 || ^2.0.0", @@ -34347,15 +34843,6 @@ "wide-align": "^1.1.5" } }, - "idb-keyval": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.0.tgz", - "integrity": "sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng==", - "dev": true, - "requires": { - "safari-14-idb-fix": "^3.0.0" - } - }, "npmlog": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-7.0.1.tgz", @@ -34368,45 +34855,11 @@ "set-blocking": "^2.0.0" } }, - "parse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/parse/-/parse-4.2.0.tgz", - "integrity": "sha512-K8bWs0wM2qRhkSr6N16j8OvsF6Uallrynqng9e+tzR3RdKuB09vaJh48qrf9MbiJ1Ya4JZI7AfEHYF+ywEKs7Q==", - "dev": true, - "requires": { - "@babel/runtime-corejs3": "7.21.0", - "crypto-js": "4.1.1", - "idb-keyval": "6.2.0", - "react-native-crypto-js": "1.0.0", - "uuid": "9.0.0", - "ws": "8.13.0", - "xmlhttprequest": "1.8.0" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, "signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "requires": {} } } }, @@ -34823,6 +35276,16 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, + "@tybys/wasm-util": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.3.tgz", + "integrity": "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==", + "dev": true, + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, "@types/babel__core": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", @@ -36905,12 +37368,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "dev": true - }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -37604,16 +38061,6 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "optional": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -38224,6 +38671,15 @@ } } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, "decompress-tar": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", @@ -38809,6 +39265,12 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, + "detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -39196,13 +39658,6 @@ "tapable": "^2.2.0" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true, - "optional": true - }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -39220,6 +39675,12 @@ "java-properties": "^1.0.0" } }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -39905,6 +40366,12 @@ } } }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -39927,6 +40394,17 @@ "jest-util": "^29.7.0" } }, + "expo-server-sdk": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/expo-server-sdk/-/expo-server-sdk-3.10.0.tgz", + "integrity": "sha512-isymUVz18Syp9G+TPs2MVZ6WdMoyLw8hDLhpywOd8JqM6iGTka6Dr8Dzq7mjGQ8C8486rxLawZx/W+ps+vkjLQ==", + "dev": true, + "requires": { + "node-fetch": "^2.6.0", + "promise-limit": "^2.7.0", + "promise-retry": "^2.0.1" + } + }, "express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -40155,6 +40633,16 @@ "time-stamp": "^1.0.0" } }, + "farmhash": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/farmhash/-/farmhash-3.3.1.tgz", + "integrity": "sha512-XUizHanzlr/v7suBr/o85HSakOoWh6HKXZjFYl5C2+Gj0f0rkw+XTUZzrd9odDsgI9G5tRUcF4wSbKaX04T0DQ==", + "dev": true, + "requires": { + "node-addon-api": "^5.1.0", + "prebuild-install": "^7.1.2" + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -40202,9 +40690,9 @@ } }, "fast-xml-parser": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.5.tgz", - "integrity": "sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", + "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", "dev": true, "optional": true, "requires": { @@ -40521,23 +41009,31 @@ } }, "firebase-admin": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.0.0.tgz", - "integrity": "sha512-wBrrSSsKV++/+O8E7O/C7/wL0nbG/x4Xv4yatz/+sohaZ+LsnWtYUcrd3gZutO86hLpDex7xgyrkKbgulmtVyQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.1.0.tgz", + "integrity": "sha512-bU7uPKMmIXAihWxntpY/Ma9zucn5y3ec+HQPqFQ/zcEfP9Avk9E/6D8u+yT/VwKHNZyg7yDVWOoJi73TIdR4Ww==", "dev": true, "requires": { - "@fastify/busboy": "^1.2.1", + "@fastify/busboy": "^2.1.0", "@firebase/database-compat": "^1.0.2", "@firebase/database-types": "^1.0.0", "@google-cloud/firestore": "^7.1.0", "@google-cloud/storage": "^7.7.0", "@types/node": "^20.10.3", + "farmhash": "^3.3.0", "jsonwebtoken": "^9.0.0", "jwks-rsa": "^3.0.1", + "long": "^5.2.3", "node-forge": "^1.3.1", "uuid": "^9.0.0" }, "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, "uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -40983,22 +41479,23 @@ } }, "gaxios": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.3.0.tgz", - "integrity": "sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.6.0.tgz", + "integrity": "sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==", "dev": true, "optional": true, "requires": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "is-stream": "^2.0.0", - "node-fetch": "^2.6.9" + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" }, "dependencies": { "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "optional": true, "requires": { @@ -41015,6 +41512,13 @@ "agent-base": "^7.0.2", "debug": "4" } + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "optional": true } } }, @@ -41212,6 +41716,12 @@ } } }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -41431,9 +41941,9 @@ } }, "google-auth-library": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.6.3.tgz", - "integrity": "sha512-4CacM29MLC2eT9Cey5GDVK4Q8t+MMp8+OEdOaqD9MG6b0dOyLORaaeJMPQ7EESVgm/+z5EKYyFLxgzBJlJgyHQ==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.11.0.tgz", + "integrity": "sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==", "dev": true, "optional": true, "requires": { @@ -41446,22 +41956,22 @@ } }, "google-gax": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.1.tgz", - "integrity": "sha512-qpSfslpwqToIgQ+Tf3MjWIDjYK4UFIZ0uz6nLtttlW9N1NQA4PhGf9tlGo6KDYJ4rgL2w4CjXVd0z5yeNpN/Iw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.7.tgz", + "integrity": "sha512-3bnD8RASQyaxOYTdWLgwpQco/aytTxFavoI/UN5QN5txDLp8QRrBHNtCUJ5+Ago+551GD92jG8jJduwvmaneUw==", "dev": true, "optional": true, "requires": { - "@grpc/grpc-js": "~1.10.0", - "@grpc/proto-loader": "^0.7.0", + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", "@types/long": "^4.0.0", "abort-controller": "^3.0.0", "duplexify": "^4.0.0", "google-auth-library": "^9.3.0", "node-fetch": "^2.6.1", "object-hash": "^3.0.0", - "proto3-json-serializer": "^2.0.0", - "protobufjs": "7.2.6", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", "retry-request": "^7.0.0", "uuid": "^9.0.1" }, @@ -41522,9 +42032,9 @@ "dev": true }, "graphql-relay": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.0.tgz", - "integrity": "sha512-44yBuw2/DLNEiMypbNZBt1yMDbBmyVPVesPywnteGGALiBmdyy1JP8jSg8ClLePg8ZZxk0O4BLhd1a6U/1jDOQ==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/graphql-relay/-/graphql-relay-0.10.1.tgz", + "integrity": "sha512-8AtwSe6B0/b4+YzynHr38PP7S+zX5Vs5LEo0BEzGCPq/THAiHa5H5ZLf3bRbKbok15ADxDQSsGJmlqXeJDDPIw==", "dev": true, "requires": {} }, @@ -42434,6 +42944,13 @@ "whatwg-encoding": "^2.0.0" } }, + "html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "optional": true + }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -42446,6 +42963,12 @@ "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", "dev": true }, + "http_ece": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http_ece/-/http_ece-1.2.0.tgz", + "integrity": "sha512-JrF8SSLVmcvc5NducxgyOrKXe3EsyHMgBFgSaIUGmArKe+rwr0uphRkRXvwiom3I+fpIfoItveHrfudL8/rxuA==", + "dev": true + }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -44577,9 +45100,9 @@ } }, "jose": { - "version": "4.15.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz", - "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==", + "version": "4.15.7", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.7.tgz", + "integrity": "sha512-L7ioP+JAuZe8v+T5+zVI9Tx8LtU8BL7NxkyDFVMv+Qr3JW0jSoYDedLtodaXwfqMpeCyx4WXFNyu9tJt4WvC1A==", "dev": true }, "js-tokens": { @@ -44874,15 +45397,21 @@ } }, "jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", "dev": true, "requires": { "jws": "^3.2.2", - "lodash": "^4.17.21", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", "ms": "^2.1.1", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "dependencies": { "jwa": { @@ -44907,13 +45436,10 @@ } }, "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true } } }, @@ -44946,7 +45472,6 @@ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", "dev": true, - "optional": true, "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -44972,7 +45497,6 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", "dev": true, - "optional": true, "requires": { "jwa": "^2.0.0", "safe-buffer": "^5.0.1" @@ -45445,12 +45969,36 @@ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", "dev": true }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true + }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true + }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -45475,6 +46023,12 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -45700,31 +46254,13 @@ } }, "lru-memoizer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz", - "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", + "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", "dev": true, "requires": { "lodash.clonedeep": "^4.5.0", - "lru-cache": "~4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==", - "dev": true, - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - } + "lru-cache": "6.0.0" } }, "lru-queue": { @@ -46276,6 +46812,12 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, "min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -46754,6 +47296,12 @@ "to-regex": "^3.0.1" } }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -46796,12 +47344,35 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, + "node-abi": { + "version": "3.65.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz", + "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==", + "dev": true, + "requires": { + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, "node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", "dev": true }, + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "dev": true + }, "node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -49198,12 +49769,6 @@ } } }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", - "dev": true - }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -49362,9 +49927,9 @@ "dev": true }, "parse-server": { - "version": "7.1.0-alpha.1", - "resolved": "https://registry.npmjs.org/parse-server/-/parse-server-7.1.0-alpha.1.tgz", - "integrity": "sha512-kHK5eHIraVL+kEvhug/hyjJkXxEFRz8py4t+B0yJBUMVajhsU4GYvN7SwY/IU5lRRZGJo8SjR8t+ThfORrHkpw==", + "version": "7.1.0-alpha.10", + "resolved": "https://registry.npmjs.org/parse-server/-/parse-server-7.1.0-alpha.10.tgz", + "integrity": "sha512-iv8MT9eNlBaeFsNDttdUkR9evahK5rF/9mXLJeFslIJnUumscD1bnLNn4Nhm+9fvbYRQqCz7j/M1mQeKY8dKgQ==", "dev": true, "requires": { "@apollo/server": "4.10.1", @@ -49372,24 +49937,24 @@ "@graphql-tools/merge": "9.0.3", "@graphql-tools/schema": "10.0.3", "@graphql-tools/utils": "8.12.0", - "@node-rs/bcrypt": "1.1.0", - "@parse/fs-files-adapter": "2.0.1", - "@parse/push-adapter": "5.1.1", + "@node-rs/bcrypt": "1.10.1", + "@parse/fs-files-adapter": "3.0.0", + "@parse/push-adapter": "6.2.0", "bcryptjs": "2.4.3", "body-parser": "1.20.2", "commander": "12.0.0", "cors": "2.8.5", "deepcopy": "2.1.0", - "express": "4.18.2", + "express": "4.19.2", "express-rate-limit": "6.11.2", "follow-redirects": "1.15.6", "graphql": "16.8.1", "graphql-list-fields": "2.0.4", - "graphql-relay": "0.10.0", + "graphql-relay": "0.10.1", "graphql-tag": "2.12.6", "graphql-upload": "15.0.2", "intersect": "1.0.1", - "jsonwebtoken": "9.0.0", + "jsonwebtoken": "9.0.2", "jwks-rsa": "3.1.0", "ldapjs": "3.0.7", "lodash": "4.17.21", @@ -49401,9 +49966,9 @@ "parse": "5.0.0", "path-to-regexp": "6.2.1", "pg-monitor": "2.0.0", - "pg-promise": "11.5.5", + "pg-promise": "11.7.8", "pluralize": "8.0.0", - "rate-limit-redis": "3.0.2", + "rate-limit-redis": "4.2.0", "redis": "4.6.13", "semver": "7.6.0", "subscriptions-transport-ws": "0.11.0", @@ -49440,6 +50005,12 @@ "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", "dev": true }, + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -49449,6 +50020,53 @@ "ms": "2.0.0" } }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + } + } + }, "lru-cache": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", @@ -49479,6 +50097,12 @@ "unpipe": "1.0.0" } }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, "semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", @@ -49654,17 +50278,15 @@ "dev": true }, "pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", "dev": true, "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", "pg-cloudflare": "^1.1.1", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" } @@ -49677,9 +50299,9 @@ "optional": true }, "pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", "dev": true }, "pg-int8": { @@ -49689,9 +50311,9 @@ "dev": true }, "pg-minify": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.3.tgz", - "integrity": "sha512-NoSsPqXxbkD8RIe+peQCqiea4QzXgosdTKY8p7PsbbGsh2F8TifDj/vJxfuR8qJwNYrijdSs7uf0tAe6WOyCsQ==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.4.tgz", + "integrity": "sha512-cf6hBt1YqzqPX0OznXKSv4U7e4o7eUU4zp2zQsbJ+4OCNNr7EnnAVWkIz4k0dv6UN4ouS1ZL4WlXxCrZHHl69g==", "dev": true }, "pg-monitor": { @@ -49704,28 +50326,28 @@ } }, "pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", "dev": true, "requires": {} }, "pg-promise": { - "version": "11.5.5", - "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.5.5.tgz", - "integrity": "sha512-DpJkDDH7rG0wUwFRRHimdV6DtG/UTK2SBEKC7KGFR6a5Zuqf9eGThR7dqIaHXnEBDZuWxUfWC5zMRqyk4EP7Lw==", + "version": "11.7.8", + "resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.7.8.tgz", + "integrity": "sha512-s5pcLp8QLIFNhnEsxaqBtDh7LsOG3hjJbVOVpYlWPqg/g1LIixGMtbNgbxW1HkTSY5rKT9tyE0J+dw2X7bD3rQ==", "dev": true, "requires": { "assert-options": "0.8.1", - "pg": "8.11.3", - "pg-minify": "1.6.3", + "pg": "8.11.5", + "pg-minify": "1.6.4", "spex": "3.3.0" } }, "pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", "dev": true }, "pg-types": { @@ -49954,6 +50576,26 @@ "xtend": "^4.0.0" } }, + "prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "dev": true, + "requires": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, "precinct": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.5.tgz", @@ -50056,6 +50698,30 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "promise-limit": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/promise-limit/-/promise-limit-2.7.0.tgz", + "integrity": "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "dependencies": { + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + } + } + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -50073,9 +50739,9 @@ "dev": true }, "proto3-json-serializer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz", - "integrity": "sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", "dev": true, "optional": true, "requires": { @@ -50083,9 +50749,9 @@ } }, "protobufjs": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", - "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.3.2.tgz", + "integrity": "sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==", "dev": true, "optional": true, "requires": { @@ -50181,12 +50847,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -50425,9 +51085,9 @@ "dev": true }, "rate-limit-redis": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rate-limit-redis/-/rate-limit-redis-3.0.2.tgz", - "integrity": "sha512-4SBK6AzIr9PKkCF4HmSDcJH2O2KKMF3fZEcsbNMXyaL5I9d6X71uOreUldFRiyrRyP+qkQrTxzJ38ZKKN+sScw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/rate-limit-redis/-/rate-limit-redis-4.2.0.tgz", + "integrity": "sha512-wV450NQyKC24NmPosJb2131RoczLdfIJdKCReNwtVpm5998U8SgKrAZrIHaN/NfQgqOHaan8Uq++B4sa5REwjA==", "dev": true, "requires": {} }, @@ -51173,12 +51833,6 @@ "queue-microtask": "^1.2.2" } }, - "safari-14-idb-fix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/safari-14-idb-fix/-/safari-14-idb-fix-3.0.0.tgz", - "integrity": "sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==", - "dev": true - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -51519,6 +52173,17 @@ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true }, + "simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -52563,12 +53228,6 @@ "minimatch": "^3.0.4" } }, - "text-decoding": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-decoding/-/text-decoding-1.0.0.tgz", - "integrity": "sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==", - "dev": true - }, "text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -53700,6 +54359,40 @@ "defaults": "^1.0.3" } }, + "web-push": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/web-push/-/web-push-3.6.7.tgz", + "integrity": "sha512-OpiIUe8cuGjrj3mMBFWY+e4MMIkW3SVT+7vEIjvD9kejGUypv8GPDf84JdPWskK8zMRIJ6xYGm+Kxr8YkPyA0A==", + "dev": true, + "requires": { + "asn1.js": "^5.3.0", + "http_ece": "1.2.0", + "https-proxy-agent": "^7.0.0", + "jws": "^4.0.0", + "minimist": "^1.2.5" + }, + "dependencies": { + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "requires": { + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + } + } + }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 37ed1b25b..40c36ecc5 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "madge": "7.0.0", "metro-react-native-babel-preset": "0.76.4", "mongodb-runner": "5.6.2", - "parse-server": "7.1.0-alpha.1", + "parse-server": "7.1.0-alpha.10", "prettier": "3.3.2", "puppeteer": "20.4.0", "regenerator-runtime": "0.14.1", From 71b4d17efa197f6f0bb94105809f32a9adc86ea6 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Mon, 24 Jun 2024 15:27:33 -0500 Subject: [PATCH 40/53] fix: `LiveQueryClient.resubscribe` with Parse Server 7 causes many open connections (#2184) --- integration/test/ParseLiveQueryTest.js | 29 ++++++++++++++++++++++++++ integration/test/helper.js | 1 - src/LiveQueryClient.ts | 12 +++++------ src/__tests__/LiveQueryClient-test.js | 8 +++++++ 4 files changed, 43 insertions(+), 7 deletions(-) diff --git a/integration/test/ParseLiveQueryTest.js b/integration/test/ParseLiveQueryTest.js index f7231b551..b81441579 100644 --- a/integration/test/ParseLiveQueryTest.js +++ b/integration/test/ParseLiveQueryTest.js @@ -90,6 +90,35 @@ describe('Parse LiveQuery', () => { await promise; }); + it('can resubscribe', async () => { + const client = new Parse.LiveQueryClient({ + applicationId: 'integration', + serverURL: 'ws://localhost:1337', + javascriptKey: null, + masterKey: null, + sessionToken: null, + }); + client.open(); + const resubscribeSpy = spyOn(client, 'resubscribe').and.callThrough(); + const subscribeRequest = { + op: 'subscribe', + requestId: 1, + query: { + className: 'TestObject', + where: { objectId: 'HEXkuHFm0D' }, + keys: ['foo', 'objectId'], + watch: undefined, + unknownField: 'throws Additional properties not allowed error', + }, + sessionToken: undefined, + }; + await client.connectPromise; + client.socket.send(JSON.stringify(subscribeRequest)); + await sleep(1000); + expect(resubscribeSpy).toHaveBeenCalled(); + await client.close(); + }); + it('can subscribe to multiple queries', async () => { const objectA = new TestObject(); const objectB = new TestObject(); diff --git a/integration/test/helper.js b/integration/test/helper.js index c60b173a0..acd11093a 100644 --- a/integration/test/helper.js +++ b/integration/test/helper.js @@ -5,7 +5,6 @@ jasmine.getEnv().addReporter(new SpecReporter()); const ParseServer = require('parse-server').default; const CustomAuth = require('./CustomAuth'); -const sleep = require('./sleep'); const { TestUtils } = require('parse-server'); const Parse = require('../../node'); const fs = require('fs'); diff --git a/src/LiveQueryClient.ts b/src/LiveQueryClient.ts index b497fb4e9..512d5ac6e 100644 --- a/src/LiveQueryClient.ts +++ b/src/LiveQueryClient.ts @@ -55,6 +55,7 @@ const SUBSCRIPTION_EMMITER_TYPES = { DELETE: 'delete', }; +// Exponentially-growing random delay const generateInterval = k => { return Math.random() * Math.min(30, Math.pow(2, k) - 1) * 1000; }; @@ -291,7 +292,8 @@ class LiveQueryClient { const query = subscription.query; const queryJSON = query.toJSON(); const where = queryJSON.where; - const fields = queryJSON.keys ? queryJSON.keys.split(',') : undefined; + const keys = queryJSON.keys?.split(','); + const watch = queryJSON.watch?.split(','); const className = query.className; const sessionToken = subscription.sessionToken; const subscribeRequest = { @@ -300,7 +302,8 @@ class LiveQueryClient { query: { className, where, - fields, + keys, + watch, }, sessionToken: undefined as string | undefined, }; @@ -347,7 +350,6 @@ class LiveQueryClient { } _handleWebSocketOpen() { - this.attempts = 1; const connectRequest = { op: OP_TYPES.CONNECT, applicationId: this.applicationId, @@ -387,6 +389,7 @@ class LiveQueryClient { break; case OP_EVENTS.SUBSCRIBED: if (subscription) { + this.attempts = 1; subscription.subscribed = true; subscription.subscribePromise.resolve(); setTimeout(() => subscription.emit(SUBSCRIPTION_EMMITER_TYPES.OPEN, response), 200); @@ -485,7 +488,6 @@ class LiveQueryClient { if (this.state === CLIENT_STATE.DISCONNECTED) { return; } - this.state = CLIENT_STATE.RECONNECTING; const time = generateInterval(this.attempts); @@ -493,11 +495,9 @@ class LiveQueryClient { // we're unable to distinguish different between close/error when we're unable to reconnect therefore // we try to reconnect in both cases // server side ws and browser WebSocket behave differently in when close/error get triggered - if (this.reconnectHandle) { clearTimeout(this.reconnectHandle); } - this.reconnectHandle = setTimeout( (() => { this.attempts++; diff --git a/src/__tests__/LiveQueryClient-test.js b/src/__tests__/LiveQueryClient-test.js index 4588cc1cc..be9c90fae 100644 --- a/src/__tests__/LiveQueryClient-test.js +++ b/src/__tests__/LiveQueryClient-test.js @@ -944,6 +944,8 @@ describe('LiveQueryClient', () => { }; const query = new ParseQuery('Test'); query.equalTo('key', 'value'); + query.select(['key']); + query.watch(['key']); liveQueryClient.subscribe(query); liveQueryClient.connectPromise.resolve(); @@ -961,6 +963,8 @@ describe('LiveQueryClient', () => { where: { key: 'value', }, + keys: ['key'], + watch: ['key'], }, }); }); @@ -978,6 +982,8 @@ describe('LiveQueryClient', () => { }; const query = new ParseQuery('Test'); query.equalTo('key', 'value'); + query.select(['key']); + query.watch(['key']); liveQueryClient.subscribe(query, 'mySessionToken'); liveQueryClient.connectPromise.resolve(); @@ -996,6 +1002,8 @@ describe('LiveQueryClient', () => { where: { key: 'value', }, + keys: ['key'], + watch: ['key'], }, }); }); From 430142aa3e6e4ec5e9eb04eadb9b4fd7744e5dd9 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 24 Jun 2024 20:28:45 +0000 Subject: [PATCH 41/53] chore(release): 5.2.0-alpha.3 [skip ci] # [5.2.0-alpha.3](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.2...5.2.0-alpha.3) (2024-06-24) ### Bug Fixes * `LiveQueryClient.resubscribe` with Parse Server 7 causes many open connections ([#2184](https://github.com/parse-community/Parse-SDK-JS/issues/2184)) ([71b4d17](https://github.com/parse-community/Parse-SDK-JS/commit/71b4d17efa197f6f0bb94105809f32a9adc86ea6)) --- changelogs/CHANGELOG_alpha.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index 9bf7a0b32..27bc1ffd7 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,10 @@ +# [5.2.0-alpha.3](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.2...5.2.0-alpha.3) (2024-06-24) + + +### Bug Fixes + +* `LiveQueryClient.resubscribe` with Parse Server 7 causes many open connections ([#2184](https://github.com/parse-community/Parse-SDK-JS/issues/2184)) ([71b4d17](https://github.com/parse-community/Parse-SDK-JS/commit/71b4d17efa197f6f0bb94105809f32a9adc86ea6)) + # [5.2.0-alpha.2](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.1...5.2.0-alpha.2) (2024-06-07) diff --git a/package-lock.json b/package-lock.json index 3ac711603..37c7c3c78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.2.0-alpha.2", + "version": "5.2.0-alpha.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.2.0-alpha.2", + "version": "5.2.0-alpha.3", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.24.6", diff --git a/package.json b/package.json index 40c36ecc5..7617db4c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.2.0-alpha.2", + "version": "5.2.0-alpha.3", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From dd4899255b882434ff88ea2387f0bf7a259f2f7d Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Mon, 24 Jun 2024 22:42:49 +0200 Subject: [PATCH 42/53] empty From 8b402898dd3a11379f227ae45ec6917092866c81 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 24 Jun 2024 20:49:33 +0000 Subject: [PATCH 43/53] chore(release): 5.2.0-beta.1 [skip ci] # [5.2.0-beta.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0...5.2.0-beta.1) (2024-06-24) ### Bug Fixes * `LiveQueryClient.resubscribe` with Parse Server 7 causes many open connections ([#2184](https://github.com/parse-community/Parse-SDK-JS/issues/2184)) ([71b4d17](https://github.com/parse-community/Parse-SDK-JS/commit/71b4d17efa197f6f0bb94105809f32a9adc86ea6)) * `Parse.Installation` not working when installation is deleted on server ([#2126](https://github.com/parse-community/Parse-SDK-JS/issues/2126)) ([22360b4](https://github.com/parse-community/Parse-SDK-JS/commit/22360b4dc96ca7ebfcc2441855456b241bf450ac)) * Duplicate pending operations on nested fields ([#2162](https://github.com/parse-community/Parse-SDK-JS/issues/2162)) ([df6df7c](https://github.com/parse-community/Parse-SDK-JS/commit/df6df7c68b9871f0b744958a489a54f1623943a9)) ### Features * Support dot notation on array fields ([#2120](https://github.com/parse-community/Parse-SDK-JS/issues/2120)) ([25ec684](https://github.com/parse-community/Parse-SDK-JS/commit/25ec684bf01cf9cd616ceff6f5d30e2e7fb83a5a)) --- changelogs/CHANGELOG_beta.md | 13 +++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_beta.md b/changelogs/CHANGELOG_beta.md index 557b3a44a..9b672cd6c 100644 --- a/changelogs/CHANGELOG_beta.md +++ b/changelogs/CHANGELOG_beta.md @@ -1,3 +1,16 @@ +# [5.2.0-beta.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0...5.2.0-beta.1) (2024-06-24) + + +### Bug Fixes + +* `LiveQueryClient.resubscribe` with Parse Server 7 causes many open connections ([#2184](https://github.com/parse-community/Parse-SDK-JS/issues/2184)) ([71b4d17](https://github.com/parse-community/Parse-SDK-JS/commit/71b4d17efa197f6f0bb94105809f32a9adc86ea6)) +* `Parse.Installation` not working when installation is deleted on server ([#2126](https://github.com/parse-community/Parse-SDK-JS/issues/2126)) ([22360b4](https://github.com/parse-community/Parse-SDK-JS/commit/22360b4dc96ca7ebfcc2441855456b241bf450ac)) +* Duplicate pending operations on nested fields ([#2162](https://github.com/parse-community/Parse-SDK-JS/issues/2162)) ([df6df7c](https://github.com/parse-community/Parse-SDK-JS/commit/df6df7c68b9871f0b744958a489a54f1623943a9)) + +### Features + +* Support dot notation on array fields ([#2120](https://github.com/parse-community/Parse-SDK-JS/issues/2120)) ([25ec684](https://github.com/parse-community/Parse-SDK-JS/commit/25ec684bf01cf9cd616ceff6f5d30e2e7fb83a5a)) + # [5.1.0-beta.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.0.0...5.1.0-beta.1) (2024-05-16) diff --git a/package-lock.json b/package-lock.json index 37c7c3c78..b76207ddc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.2.0-alpha.3", + "version": "5.2.0-beta.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.2.0-alpha.3", + "version": "5.2.0-beta.1", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.24.6", diff --git a/package.json b/package.json index 7617db4c7..f2053d262 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.2.0-alpha.3", + "version": "5.2.0-beta.1", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From 099b656ce623df920bb8737d3a1f2a4c012578c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:28:38 +0000 Subject: [PATCH 44/53] refactor: bump metro-react-native-babel-preset from 0.76.4 to 0.77.0 Bumps [metro-react-native-babel-preset](https://github.com/facebook/metro) from 0.76.4 to 0.77.0. - [Release notes](https://github.com/facebook/metro/releases) - [Changelog](https://github.com/facebook/metro/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/metro/compare/v0.76.4...v0.77.0) --- updated-dependencies: - dependency-name: metro-react-native-babel-preset dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 77 ++++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/package-lock.json b/package-lock.json index b76207ddc..6c1920c0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "jsdoc-babel": "0.5.0", "lint-staged": "15.2.7", "madge": "7.0.0", - "metro-react-native-babel-preset": "0.76.4", + "metro-react-native-babel-preset": "0.77.0", "mongodb-runner": "5.6.2", "parse-server": "7.1.0-alpha.10", "prettier": "3.3.2", @@ -1078,16 +1078,17 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -20420,32 +20421,32 @@ } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.76.4", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.4.tgz", - "integrity": "sha512-BKyfPz7mn3ncgRjqi8Z9nYLbzuuiBWns2AAEIGctQdz9OMMAisPlZmWscv09UjhPXkQc/XtToFETVN7fmHMfug==", + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.77.0.tgz", + "integrity": "sha512-HPPD+bTxADtoE4y/4t1txgTQ1LVR6imOBy7RMHUsqMVTbekoi8Ph5YI9vKX2VMPtVWeFt0w9YnCSLPa76GcXsA==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-default-from": "^7.0.0", "@babel/plugin-syntax-flow": "^7.18.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", "@babel/plugin-transform-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/plugin-transform-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", "@babel/plugin-transform-modules-commonjs": "^7.0.0", @@ -20466,7 +20467,7 @@ "react-refresh": "^0.4.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { "@babel/core": "*" @@ -31692,16 +31693,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" + "@babel/plugin-transform-parameters": "^7.20.7" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -46711,32 +46712,32 @@ "dev": true }, "metro-react-native-babel-preset": { - "version": "0.76.4", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.4.tgz", - "integrity": "sha512-BKyfPz7mn3ncgRjqi8Z9nYLbzuuiBWns2AAEIGctQdz9OMMAisPlZmWscv09UjhPXkQc/XtToFETVN7fmHMfug==", + "version": "0.77.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.77.0.tgz", + "integrity": "sha512-HPPD+bTxADtoE4y/4t1txgTQ1LVR6imOBy7RMHUsqMVTbekoi8Ph5YI9vKX2VMPtVWeFt0w9YnCSLPa76GcXsA==", "dev": true, "requires": { "@babel/core": "^7.20.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.18.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.20.0", "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-default-from": "^7.0.0", "@babel/plugin-syntax-flow": "^7.18.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0", "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.20.0", "@babel/plugin-transform-block-scoping": "^7.0.0", "@babel/plugin-transform-classes": "^7.0.0", "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.20.0", + "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/plugin-transform-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", "@babel/plugin-transform-modules-commonjs": "^7.0.0", diff --git a/package.json b/package.json index f2053d262..b24dfbb2c 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "jsdoc-babel": "0.5.0", "lint-staged": "15.2.7", "madge": "7.0.0", - "metro-react-native-babel-preset": "0.76.4", + "metro-react-native-babel-preset": "0.77.0", "mongodb-runner": "5.6.2", "parse-server": "7.1.0-alpha.10", "prettier": "3.3.2", From 450142cf8f51d46062a6023fb25b157d6638e96c Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Tue, 25 Jun 2024 18:16:38 -0500 Subject: [PATCH 45/53] ci: Fix flaky test `invalid server state: initialized` (#2183) --- integration/test/ParseEventuallyQueueTest.js | 8 +++++--- integration/test/ParseServerTest.js | 1 + integration/test/helper.js | 13 +++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/integration/test/ParseEventuallyQueueTest.js b/integration/test/ParseEventuallyQueueTest.js index 1e200c1e3..e05ffe182 100644 --- a/integration/test/ParseEventuallyQueueTest.js +++ b/integration/test/ParseEventuallyQueueTest.js @@ -193,6 +193,7 @@ describe('Parse EventuallyQueue', () => { it('can saveEventually', async () => { const parseServer = await reconfigureServer(); const object = new TestObject({ hash: 'saveSecret' }); + await parseServer.handleShutdown(); await new Promise(resolve => parseServer.server.close(resolve)); await object.saveEventually(); @@ -224,7 +225,7 @@ describe('Parse EventuallyQueue', () => { const acl = new Parse.ACL(user); const object = new TestObject({ hash: 'saveSecret' }); object.setACL(acl); - + await parseServer.handleShutdown(); await new Promise(resolve => parseServer.server.close(resolve)); await object.saveEventually(); @@ -232,7 +233,7 @@ describe('Parse EventuallyQueue', () => { assert(Parse.EventuallyQueue.isPolling()); assert.strictEqual(length, 1); - await reconfigureServer({}); + await reconfigureServer(); while (Parse.EventuallyQueue.isPolling()) { await sleep(100); @@ -250,6 +251,7 @@ describe('Parse EventuallyQueue', () => { const parseServer = await reconfigureServer(); const object = new TestObject({ hash: 'deleteSecret' }); await object.save(); + await parseServer.handleShutdown(); await new Promise(resolve => parseServer.server.close(resolve)); await object.destroyEventually(); const length = await Parse.EventuallyQueue.length(); @@ -257,7 +259,7 @@ describe('Parse EventuallyQueue', () => { assert(Parse.EventuallyQueue.isPolling()); assert.strictEqual(length, 1); - await reconfigureServer({}); + await reconfigureServer(); while (Parse.EventuallyQueue.isPolling()) { await sleep(100); } diff --git a/integration/test/ParseServerTest.js b/integration/test/ParseServerTest.js index 01aa285d7..1ae23a7b4 100644 --- a/integration/test/ParseServerTest.js +++ b/integration/test/ParseServerTest.js @@ -6,6 +6,7 @@ describe('ParseServer', () => { it('can reconfigure server', async () => { const parseServer = await reconfigureServer({ serverURL: 'www.google.com' }); assert.strictEqual(parseServer.config.serverURL, 'www.google.com'); + await parseServer.handleShutdown(); await new Promise(resolve => parseServer.server.close(resolve)); await reconfigureServer(); }); diff --git a/integration/test/helper.js b/integration/test/helper.js index acd11093a..e0af222ac 100644 --- a/integration/test/helper.js +++ b/integration/test/helper.js @@ -93,14 +93,12 @@ const defaultConfiguration = { const openConnections = {}; let parseServer; -let server; const reconfigureServer = async (changedConfiguration = {}) => { - if (server) { + if (parseServer) { await parseServer.handleShutdown(); - await new Promise(resolve => server.close(resolve)); + await new Promise(resolve => parseServer.server.close(resolve)); parseServer = undefined; - server = undefined; return reconfigureServer(changedConfiguration); } @@ -110,6 +108,10 @@ const reconfigureServer = async (changedConfiguration = {}) => { port, }); parseServer = await ParseServer.startApp(newConfiguration); + if (parseServer.config.state === 'initialized') { + console.error('Failed to initialize Parse Server'); + return reconfigureServer(newConfiguration); + } const app = parseServer.expressApp; for (const fileName of ['parse.js', 'parse.min.js']) { const file = fs.readFileSync(path.resolve(__dirname, `./../../dist/${fileName}`)).toString(); @@ -136,8 +138,7 @@ const reconfigureServer = async (changedConfiguration = {}) => { res.send('{}'); }); }); - server = parseServer.server; - server.on('connection', connection => { + parseServer.server.on('connection', connection => { const key = `${connection.remoteAddress}:${connection.remotePort}`; openConnections[key] = connection; connection.on('close', () => { From ad774b180c2d3bc2df5c53c357c9d73d609d6c76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 13:10:50 +0200 Subject: [PATCH 46/53] refactor: Bump eslint-plugin-jsdoc from 48.4.0 to 48.5.0 (#2192) --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6c1920c0a..c87585b9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", - "eslint-plugin-jsdoc": "48.4.0", + "eslint-plugin-jsdoc": "48.5.0", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", @@ -11555,9 +11555,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.4.0.tgz", - "integrity": "sha512-xBUxuAx03cKoEA7y+MYSUdwyN8AJyZHbAJ257sOFXgVgCScm574S4zEYJpBoARwaCu4chhCbvA+gdm+00whlxA==", + "version": "48.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.5.0.tgz", + "integrity": "sha512-ukXPNpGby3KjCveCizIS8t1EbuJEHYEu/tBg8GCbn/YbHcXwphyvYCdvRZ/oMRfTscGSSzfsWoZ+ZkAP0/6YMQ==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.43.1", @@ -40070,9 +40070,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "48.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.4.0.tgz", - "integrity": "sha512-xBUxuAx03cKoEA7y+MYSUdwyN8AJyZHbAJ257sOFXgVgCScm574S4zEYJpBoARwaCu4chhCbvA+gdm+00whlxA==", + "version": "48.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.5.0.tgz", + "integrity": "sha512-ukXPNpGby3KjCveCizIS8t1EbuJEHYEu/tBg8GCbn/YbHcXwphyvYCdvRZ/oMRfTscGSSzfsWoZ+ZkAP0/6YMQ==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.43.1", diff --git a/package.json b/package.json index b24dfbb2c..c18cc0e2a 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "core-js": "3.37.1", "cross-env": "7.0.2", "eslint": "8.56.0", - "eslint-plugin-jsdoc": "48.4.0", + "eslint-plugin-jsdoc": "48.5.0", "express": "4.18.2", "gulp": "4.0.2", "gulp-babel": "8.0.0", From f7c50e9b854ec5a496086eb39be1d864b7696b7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 01:17:33 +0200 Subject: [PATCH 47/53] refactor: Bump @babel/preset-typescript from 7.22.5 to 7.24.7 (#2193) --- package-lock.json | 94 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index c87585b9d..f17bb3aa9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.24.7", "@babel/preset-react": "7.22.5", - "@babel/preset-typescript": "7.22.5", + "@babel/preset-typescript": "7.24.7", "@definitelytyped/dtslint": "0.0.163", "@parse/minami": "git+https://github.com/parse-community/minami#main", "@saithodev/semantic-release-backmerge": "2.1.3", @@ -1302,12 +1302,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1419,12 +1419,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2298,15 +2298,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", - "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2517,16 +2517,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", - "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-typescript": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -31842,12 +31842,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -31923,12 +31923,12 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" } }, "@babel/plugin-syntax-unicode-sets-regex": { @@ -32477,15 +32477,15 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", - "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" } }, "@babel/plugin-transform-unicode-escapes": { @@ -32650,16 +32650,16 @@ } }, "@babel/preset-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", - "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-typescript": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" } }, "@babel/regjsgen": { diff --git a/package.json b/package.json index c18cc0e2a..4e54f473e 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.24.7", "@babel/preset-react": "7.22.5", - "@babel/preset-typescript": "7.22.5", + "@babel/preset-typescript": "7.24.7", "@definitelytyped/dtslint": "0.0.163", "@parse/minami": "git+https://github.com/parse-community/minami#main", "@saithodev/semantic-release-backmerge": "2.1.3", From e0eb6f04e086da4628a9706b17909d11e5f06210 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Fri, 28 Jun 2024 17:41:54 -0500 Subject: [PATCH 48/53] fix: Dot notation on JSON arrays doesn't work on `PushStatus` offset fields (#2194) --- src/ObjectStateMutations.ts | 3 ++- src/__tests__/ObjectStateMutations-test.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/ObjectStateMutations.ts b/src/ObjectStateMutations.ts index a22593d14..3292fb88e 100644 --- a/src/ObjectStateMutations.ts +++ b/src/ObjectStateMutations.ts @@ -191,7 +191,8 @@ export function commitServerChanges( typeof val === 'object' && !Array.isArray(val) && Object.keys(val).length > 0 && - Object.keys(val).some(k => !isNaN(parseInt(k))) + Object.keys(val).some(k => !isNaN(parseInt(k))) && + !['sentPerUTCOffset', 'failedPerUTCOffset'].includes(attr) ) { val = Object.values(val); } diff --git a/src/__tests__/ObjectStateMutations-test.js b/src/__tests__/ObjectStateMutations-test.js index 56fc7640d..b224ef326 100644 --- a/src/__tests__/ObjectStateMutations-test.js +++ b/src/__tests__/ObjectStateMutations-test.js @@ -323,6 +323,24 @@ describe('ObjectStateMutations', () => { expect(objectCache).toEqual({ items: '[{"count":20},{"count":5}]' }); }); + it('can commit json array with PushStatus offset fields', () => { + const serverData = {}; + const objectCache = {}; + ObjectStateMutations.commitServerChanges(serverData, objectCache, { + sentPerUTCOffset: { '1': { count: 20 } }, + failedPerUTCOffset: { '5': { count: 25 } }, + }); + // Should not transform to an array + expect(serverData).toEqual({ + sentPerUTCOffset: { '1': { count: 20 } }, + failedPerUTCOffset: { '5': { count: 25 } }, + }); + expect(objectCache).toEqual({ + sentPerUTCOffset: '{"1":{"count":20}}', + failedPerUTCOffset: '{"5":{"count":25}}', + }); + }); + it('can generate a default state for implementations', () => { expect(ObjectStateMutations.defaultState()).toEqual({ serverData: {}, From 709760b77cc45bf9a827c921825646664345d136 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 28 Jun 2024 22:43:01 +0000 Subject: [PATCH 49/53] chore(release): 5.2.0-alpha.4 [skip ci] # [5.2.0-alpha.4](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.3...5.2.0-alpha.4) (2024-06-28) ### Bug Fixes * Dot notation on JSON arrays doesn't work on `PushStatus` offset fields ([#2194](https://github.com/parse-community/Parse-SDK-JS/issues/2194)) ([e0eb6f0](https://github.com/parse-community/Parse-SDK-JS/commit/e0eb6f04e086da4628a9706b17909d11e5f06210)) --- changelogs/CHANGELOG_alpha.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index 27bc1ffd7..2225c13df 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,10 @@ +# [5.2.0-alpha.4](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.3...5.2.0-alpha.4) (2024-06-28) + + +### Bug Fixes + +* Dot notation on JSON arrays doesn't work on `PushStatus` offset fields ([#2194](https://github.com/parse-community/Parse-SDK-JS/issues/2194)) ([e0eb6f0](https://github.com/parse-community/Parse-SDK-JS/commit/e0eb6f04e086da4628a9706b17909d11e5f06210)) + # [5.2.0-alpha.3](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-alpha.2...5.2.0-alpha.3) (2024-06-24) diff --git a/package-lock.json b/package-lock.json index f17bb3aa9..fe129acbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.2.0-beta.1", + "version": "5.2.0-alpha.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.2.0-beta.1", + "version": "5.2.0-alpha.4", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.24.6", diff --git a/package.json b/package.json index 4e54f473e..2d9efd84d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.2.0-beta.1", + "version": "5.2.0-alpha.4", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From 14b800257752cb32478d998dba748439a5737d47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Jun 2024 10:30:07 +0200 Subject: [PATCH 50/53] refactor: Bump gulp from 4.0.2 to 5.0.0 (#2191) --- package-lock.json | 4313 +++++++++++++-------------------------------- package.json | 2 +- 2 files changed, 1251 insertions(+), 3064 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe129acbe..ec8533bfc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "eslint": "8.56.0", "eslint-plugin-jsdoc": "48.5.0", "express": "4.18.2", - "gulp": "4.0.2", + "gulp": "5.0.0", "gulp-babel": "8.0.0", "gulp-derequire": "3.0.0", "gulp-insert": "0.5.0", @@ -469,12 +469,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -3625,6 +3619,27 @@ "node": ">=12" } }, + "node_modules/@gulpjs/messages": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", + "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@gulpjs/to-absolute-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", + "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "dev": true, + "dependencies": { + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -4354,12 +4369,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6987,30 +6996,12 @@ "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", "dev": true }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -7091,18 +7082,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", @@ -7112,18 +7091,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -7154,49 +7121,6 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", @@ -7206,29 +7130,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -7363,18 +7264,17 @@ "dev": true }, "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", + "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", "dev": true, "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" + "end-of-stream": "^1.4.4", + "once": "^1.4.0", + "stream-exhaust": "^1.0.2" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/async-each": { @@ -7393,15 +7293,15 @@ } }, "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", + "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", "dev": true, "dependencies": { - "async-done": "^1.2.2" + "async-done": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/asynckit": { @@ -7449,6 +7349,12 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -7782,23 +7688,17 @@ } }, "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", + "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", "dev": true, "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" + "async-done": "^2.0.0", + "async-settle": "^2.0.0", + "now-and-later": "^3.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/backo2": { @@ -7825,6 +7725,13 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bare-events": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "dev": true, + "optional": true + }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", @@ -8429,15 +8336,6 @@ "node": "*" } }, - "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -9112,6 +9010,7 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -9155,20 +9054,6 @@ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -9520,13 +9405,10 @@ } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/cookie": { "version": "0.5.0", @@ -9553,13 +9435,16 @@ } }, "node_modules/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", + "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", "dev": true, "dependencies": { - "each-props": "^1.3.2", + "each-props": "^3.0.0", "is-plain-object": "^5.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, "node_modules/core-js": { @@ -10334,36 +10219,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-compare/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -10385,22 +10240,6 @@ "node": ">=0.8" } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -10818,7 +10657,7 @@ "node_modules/detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11116,62 +10955,17 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", + "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.1", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0" - } - }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/eastasianwidth": { @@ -12234,7 +12028,7 @@ "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, "dependencies": { "homedir-polyfill": "^1.0.1" @@ -12542,21 +12336,6 @@ "node >=0.6.0" ] }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/farmhash": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/farmhash/-/farmhash-3.3.1.tgz", @@ -12577,6 +12356,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -12643,6 +12428,15 @@ "fxparser": "src/cli/cli.js" } }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -12849,167 +12643,34 @@ } }, "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "dependencies": { "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "dev": true, "dependencies": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/firebase-admin": { @@ -13093,12 +12754,12 @@ } }, "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/flat-cache": { @@ -13120,40 +12781,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/flush-write-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", @@ -13201,7 +12828,7 @@ "node_modules/for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, "dependencies": { "for-in": "^1.0.1" @@ -13399,50 +13026,16 @@ } }, "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", + "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" + "graceful-fs": "^4.2.8", + "streamx": "^2.12.0" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">=10.13.0" } }, "node_modules/fs.realpath": { @@ -13968,88 +13561,144 @@ } }, "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", "dev": true, "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", + "@gulpjs/to-absolute-glob": "^4.0.0", + "anymatch": "^3.1.3", + "fastq": "^1.13.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "normalize-path": "^3.0.0", + "streamx": "^2.12.5" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "node_modules/glob-stream/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-extglob": "^2.1.0" + "is-glob": "^4.0.3" }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-stream/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/glob-watcher": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", + "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "async-done": "^2.0.0", + "chokidar": "^3.5.3" + }, + "engines": { + "node": ">= 10.13.0" } }, - "node_modules/glob-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/glob-watcher/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "node_modules/glob-watcher/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-watcher/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/glob-watcher/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-watcher/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/glob-watcher/node_modules/normalize-path": { @@ -14061,6 +13710,18 @@ "node": ">=0.10.0" } }, + "node_modules/glob-watcher/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -14078,7 +13739,7 @@ "node_modules/global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, "dependencies": { "expand-tilde": "^2.0.2", @@ -14343,21 +14004,21 @@ } }, "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", + "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", "dev": true, "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" + "glob-watcher": "^6.0.0", + "gulp-cli": "^3.0.0", + "undertaker": "^2.0.0", + "vinyl-fs": "^4.0.0" }, "bin": { "gulp": "bin/gulp.js" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/gulp-babel": { @@ -14412,6 +14073,135 @@ "xtend": "~4.0.1" } }, + "node_modules/gulp-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", + "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", + "dev": true, + "dependencies": { + "@gulpjs/messages": "^1.1.0", + "chalk": "^4.1.2", + "copy-props": "^4.0.0", + "gulplog": "^2.2.0", + "interpret": "^3.1.1", + "liftoff": "^5.0.0", + "mute-stdout": "^2.0.0", + "replace-homedir": "^2.0.0", + "semver-greatest-satisfied-range": "^2.0.0", + "string-width": "^4.2.3", + "v8flags": "^4.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/gulp-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/gulp-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/gulp-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/glogg": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", + "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", + "dev": true, + "dependencies": { + "sparkles": "^2.1.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp-cli/node_modules/gulplog": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", + "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", + "dev": true, + "dependencies": { + "glogg": "^2.2.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-cli/node_modules/sparkles": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", + "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", + "dev": true, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/gulp-derequire": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gulp-derequire/-/gulp-derequire-3.0.0.tgz", @@ -14753,300 +14543,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/gulp/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/gulp/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/gulp/node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/gulp/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/gulp/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/gulp/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/gulp/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, "node_modules/gulplog": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", @@ -15175,18 +14671,6 @@ "node": ">= 0.10" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -15746,12 +15230,12 @@ } }, "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/intersect": { @@ -15776,15 +15260,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -16050,7 +15525,7 @@ "node_modules/is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true, "engines": { "node": ">=0.10.0" @@ -16267,7 +15742,7 @@ "node_modules/is-valid-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -18790,12 +18265,6 @@ "node": "*" } }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, "node_modules/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -18878,64 +18347,12 @@ } }, "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", + "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/ldapjs": { @@ -18981,15 +18398,12 @@ } }, "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", "dev": true, - "dependencies": { - "flush-write-stream": "^1.0.2" - }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/leven": { @@ -19015,34 +18429,21 @@ } }, "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", + "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/lilconfig": { @@ -20017,18 +19418,6 @@ "make-error": "^1.2.0" } }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -20148,169 +19537,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", @@ -21166,12 +20392,12 @@ } }, "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", + "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/nan": { @@ -21428,15 +20654,15 @@ } }, "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", "dev": true, "dependencies": { - "once": "^1.3.2" + "once": "^1.4.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/npm": { @@ -24065,6 +23291,7 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -24149,15 +23376,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/object-path": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", @@ -24179,28 +23397,10 @@ "node": ">=0.10.0" } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, "dependencies": { "array-each": "^1.0.1", @@ -24212,19 +23412,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -24262,19 +23449,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -24430,57 +23604,12 @@ "node": ">=8" } }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/ordered-read-streams/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/ordered-read-streams/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/otpauth": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.2.2.tgz", @@ -24732,7 +23861,7 @@ "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, "dependencies": { "is-absolute": "^1.0.0", @@ -24819,19 +23948,10 @@ "node": ">=6" } }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -25259,7 +24379,7 @@ "node_modules/path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, "dependencies": { "path-root-regex": "^0.1.0" @@ -25271,7 +24391,7 @@ "node_modules/path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -25883,15 +25003,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", @@ -26150,27 +25261,6 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -26366,6 +25456,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -26769,15 +25865,15 @@ } }, "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { - "resolve": "^1.1.6" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/redent": { @@ -26911,67 +26007,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-bom-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/remove-bom-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/remove-bom-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -27006,17 +26041,12 @@ } }, "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", + "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/request": { @@ -27167,7 +26197,7 @@ "node_modules/resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, "dependencies": { "expand-tilde": "^2.0.0", @@ -27187,15 +26217,15 @@ } }, "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", + "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", "dev": true, "dependencies": { - "value-or-function": "^3.0.0" + "value-or-function": "^4.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/resolve-url": { @@ -27519,15 +26549,15 @@ } }, "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", + "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", "dev": true, "dependencies": { - "sver-compat": "^1.5.0" + "sver": "^1.8.3" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/semver-regex": { @@ -28405,6 +27435,15 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/stream-composer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", + "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", + "dev": true, + "dependencies": { + "streamx": "^2.13.2" + } + }, "node_modules/stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -28436,7 +27475,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "dev": true + "dev": true, + "optional": true }, "node_modules/stream-splicer": { "version": "2.0.1", @@ -28526,6 +27566,20 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", + "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -28860,14 +27914,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "node_modules/sver": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", + "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "optionalDependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/sver/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/symbol-observable": { @@ -29036,6 +28099,15 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + } + }, "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -29090,6 +28162,15 @@ "node": ">=8" } }, + "node_modules/text-decoder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", + "integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -29126,50 +28207,6 @@ "readable-stream": "3" } }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/through2-filter/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2-filter/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/through2-filter/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", @@ -29219,19 +28256,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", @@ -29299,49 +28323,15 @@ } }, "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", + "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", "dev": true, "dependencies": { - "through2": "^2.0.3" + "streamx": "^2.12.5" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/to-through/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/to-through/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/to-through/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">=10.13.0" } }, "node_modules/toidentifier": { @@ -29672,7 +28662,7 @@ "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -29701,40 +28691,37 @@ "dev": true }, "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", + "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", "dev": true, "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" + "bach": "^2.0.1", + "fast-levenshtein": "^3.0.0", + "last-run": "^2.0.0", + "undertaker-registry": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", + "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dev": true, + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } }, "node_modules/undici-types": { "version": "5.26.5", @@ -29797,16 +28784,6 @@ "node": ">=0.10.0" } }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -30060,22 +29037,13 @@ "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/validate-npm-package-license": { @@ -30098,12 +29066,12 @@ } }, "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", + "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/value-or-promise": { @@ -30173,6 +29141,79 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-contents": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", + "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", + "dev": true, + "dependencies": { + "bl": "^5.0.0", + "vinyl": "^3.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vinyl-contents/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/vinyl-contents/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/vinyl-contents/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/vinyl-contents/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/vinyl-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", @@ -30250,65 +29291,80 @@ } }, "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", "dev": true, "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", + "fs-mkdirp-stream": "^2.0.1", + "glob-stream": "^8.0.0", + "graceful-fs": "^4.2.11", + "iconv-lite": "^0.6.3", "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" + "lead": "^4.0.0", + "normalize-path": "3.0.0", + "resolve-options": "^2.0.0", + "stream-composer": "^1.0.2", + "streamx": "^2.14.0", + "to-through": "^3.0.0", + "value-or-function": "^4.0.0", + "vinyl": "^3.0.0", + "vinyl-sourcemap": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, - "node_modules/vinyl-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/vinyl-fs/node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/vinyl-fs/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/vinyl-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/vinyl-fs/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/vinyl-fs/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/vinyl-fs/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/vinyl-fs/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/vinyl-source-stream": { @@ -30356,21 +29412,45 @@ } }, "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", "dev": true, "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" + "convert-source-map": "^2.0.0", + "graceful-fs": "^4.2.10", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5", + "vinyl": "^3.0.0", + "vinyl-contents": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" + } + }, + "node_modules/vinyl-sourcemap/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/vinyl-sourcemaps-apply": { @@ -30595,12 +29675,6 @@ "node": ">= 8" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -31252,12 +30326,6 @@ "semver": "^6.3.1" }, "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -33554,6 +32622,21 @@ } } }, + "@gulpjs/messages": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", + "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", + "dev": true + }, + "@gulpjs/to-absolute-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", + "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "dev": true, + "requires": { + "is-negated-glob": "^1.0.0" + } + }, "@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -34088,12 +33171,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -36151,27 +35228,12 @@ "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", "dev": true }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -36244,30 +35306,12 @@ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -36292,66 +35336,12 @@ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -36466,15 +35456,14 @@ "dev": true }, "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", + "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" + "end-of-stream": "^1.4.4", + "once": "^1.4.0", + "stream-exhaust": "^1.0.2" } }, "async-each": { @@ -36493,12 +35482,12 @@ } }, "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", + "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", "dev": true, "requires": { - "async-done": "^1.2.2" + "async-done": "^2.0.0" } }, "asynckit": { @@ -36531,6 +35520,12 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, + "b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -36801,20 +35796,14 @@ } }, "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", + "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", "dev": true, "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" + "async-done": "^2.0.0", + "async-settle": "^2.0.0", + "now-and-later": "^3.0.0" } }, "backo2": { @@ -36838,6 +35827,13 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "bare-events": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", + "dev": true, + "optional": true + }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", @@ -37345,12 +36341,6 @@ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -37876,7 +36866,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "codecov": { "version": "3.8.3", @@ -37909,17 +36900,6 @@ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -38217,13 +37197,10 @@ } }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "cookie": { "version": "0.5.0", @@ -38244,12 +37221,12 @@ "dev": true }, "copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", + "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", "dev": true, "requires": { - "each-props": "^1.3.2", + "each-props": "^3.0.0", "is-plain-object": "^5.0.0" } }, @@ -38865,29 +37842,6 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, "defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -38905,16 +37859,6 @@ } } }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -39263,7 +38207,7 @@ "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true }, "detect-libc": { @@ -39497,63 +38441,14 @@ } } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", + "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", "dev": true, "requires": { - "is-plain-object": "^2.0.1", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } } }, "eastasianwidth": { @@ -40376,7 +39271,7 @@ "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" @@ -40622,18 +39517,6 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, "farmhash": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/farmhash/-/farmhash-3.3.1.tgz", @@ -40650,6 +39533,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -40700,6 +39589,12 @@ "strnum": "^1.0.5" } }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -40869,144 +39764,28 @@ } }, "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "requires": { "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } } }, "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "dev": true, "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" } }, "firebase-admin": { @@ -41079,9 +39858,9 @@ } }, "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", "dev": true }, "flat-cache": { @@ -41100,42 +39879,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", @@ -41166,7 +39909,7 @@ "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, "requires": { "for-in": "^1.0.1" @@ -41314,49 +40057,13 @@ } }, "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", + "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "graceful-fs": "^4.2.8", + "streamx": "^2.12.0" } }, "fs.realpath": { @@ -41783,88 +40490,120 @@ } }, "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", "dev": true, "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", + "@gulpjs/to-absolute-glob": "^4.0.0", + "anymatch": "^3.1.3", + "fastq": "^1.13.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "normalize-path": "^3.0.0", + "streamx": "^2.12.5" }, "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "is-glob": "^4.0.3" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true } } }, "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", + "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" + "async-done": "^2.0.0", + "chokidar": "^3.5.3" }, "dependencies": { + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } } } }, @@ -41882,7 +40621,7 @@ "global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, "requires": { "expand-tilde": "^2.0.2", @@ -42075,260 +40814,15 @@ } }, "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", + "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", "dev": true, "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } + "glob-watcher": "^6.0.0", + "gulp-cli": "^3.0.0", + "undertaker": "^2.0.0", + "vinyl-fs": "^4.0.0" } }, "gulp-babel": { @@ -42379,6 +40873,101 @@ } } }, + "gulp-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", + "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", + "dev": true, + "requires": { + "@gulpjs/messages": "^1.1.0", + "chalk": "^4.1.2", + "copy-props": "^4.0.0", + "gulplog": "^2.2.0", + "interpret": "^3.1.1", + "liftoff": "^5.0.0", + "mute-stdout": "^2.0.0", + "replace-homedir": "^2.0.0", + "semver-greatest-satisfied-range": "^2.0.0", + "string-width": "^4.2.3", + "v8flags": "^4.0.0", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glogg": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", + "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", + "dev": true, + "requires": { + "sparkles": "^2.1.0" + } + }, + "gulplog": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", + "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", + "dev": true, + "requires": { + "glogg": "^2.2.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "sparkles": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", + "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "gulp-derequire": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gulp-derequire/-/gulp-derequire-3.0.0.tgz", @@ -42781,15 +41370,6 @@ "sparkles": "^1.0.0" } }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -43206,9 +41786,9 @@ } }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true }, "intersect": { @@ -43227,12 +41807,6 @@ "p-is-promise": "^3.0.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -43432,7 +42006,7 @@ "is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true }, "is-number": { @@ -43586,7 +42160,7 @@ "is-valid-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", "dev": true }, "is-windows": { @@ -45462,12 +44036,6 @@ "integrity": "sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==", "dev": true }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, "jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -45541,58 +44109,10 @@ } }, "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", + "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", + "dev": true }, "ldapjs": { "version": "3.0.7", @@ -45636,13 +44156,10 @@ } }, "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", + "dev": true }, "leven": { "version": "3.1.0", @@ -45661,30 +44178,18 @@ } }, "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", + "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", "dev": true, "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" } }, "lilconfig": { @@ -46383,15 +44888,6 @@ "make-error": "^1.2.0" } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, "makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -46479,144 +44975,6 @@ } } }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, "math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", @@ -47260,9 +45618,9 @@ "dev": true }, "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", + "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", "dev": true }, "nan": { @@ -47458,12 +45816,12 @@ "dev": true }, "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", "dev": true, "requires": { - "once": "^1.3.2" + "once": "^1.4.0" } }, "npm": { @@ -49303,7 +47661,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "nwsapi": { "version": "2.2.2", @@ -49366,12 +47725,6 @@ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, "object-path": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", @@ -49387,22 +47740,10 @@ "isobject": "^3.0.0" } }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, "requires": { "array-each": "^1.0.1", @@ -49411,16 +47752,6 @@ "isobject": "^3.0.0" } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -49451,16 +47782,6 @@ "isobject": "^3.0.1" } }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -49579,56 +47900,12 @@ } } }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, "otpauth": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.2.2.tgz", @@ -49850,7 +48127,7 @@ "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, "requires": { "is-absolute": "^1.0.0", @@ -49915,16 +48192,10 @@ "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true }, "parse-server": { @@ -50211,7 +48482,7 @@ "path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, "requires": { "path-root-regex": "^0.1.0" @@ -50220,7 +48491,7 @@ "path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true }, "path-scurry": { @@ -50660,12 +48931,6 @@ } } }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, "pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", @@ -50886,29 +49151,6 @@ "once": "^1.3.1" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -51029,6 +49271,12 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -51377,12 +49625,12 @@ } }, "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "requires": { - "resolve": "^1.1.6" + "resolve": "^1.20.0" } }, "redent": { @@ -51497,63 +49745,6 @@ } } }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -51579,15 +49770,10 @@ "dev": true }, "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", + "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", + "dev": true }, "request": { "version": "2.88.2", @@ -51703,7 +49889,7 @@ "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, "requires": { "expand-tilde": "^2.0.0", @@ -51717,12 +49903,12 @@ "dev": true }, "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", + "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", "dev": true, "requires": { - "value-or-function": "^3.0.0" + "value-or-function": "^4.0.0" } }, "resolve-url": { @@ -51967,12 +50153,12 @@ } }, "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", + "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", "dev": true, "requires": { - "sver-compat": "^1.5.0" + "sver": "^1.8.3" } }, "semver-regex": { @@ -52684,6 +50870,15 @@ } } }, + "stream-composer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", + "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", + "dev": true, + "requires": { + "streamx": "^2.13.2" + } + }, "stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -52715,7 +50910,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "dev": true + "dev": true, + "optional": true }, "stream-splicer": { "version": "2.0.1", @@ -52803,6 +50999,18 @@ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "dev": true }, + "streamx": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", + "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "dev": true, + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -53047,14 +51255,22 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "sver": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", + "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", "dev": true, "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "optional": true + } } }, "symbol-observable": { @@ -53191,6 +51407,15 @@ } } }, + "teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "requires": { + "streamx": "^2.12.5" + } + }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -53229,6 +51454,15 @@ "minimatch": "^3.0.4" } }, + "text-decoder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", + "integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==", + "dev": true, + "requires": { + "b4a": "^1.6.4" + } + }, "text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -53262,52 +51496,6 @@ "readable-stream": "3" } }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", @@ -53348,16 +51536,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", @@ -53412,48 +51590,12 @@ } }, "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", + "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", "dev": true, "requires": { - "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "streamx": "^2.12.5" } }, "toidentifier": { @@ -53704,7 +51846,7 @@ "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true }, "undeclared-identifiers": { @@ -53727,35 +51869,32 @@ "dev": true }, "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", + "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", "dev": true, "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" + "bach": "^2.0.1", + "fast-levenshtein": "^3.0.0", + "last-run": "^2.0.0", + "undertaker-registry": "^2.0.0" }, "dependencies": { "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dev": true, + "requires": { + "fastest-levenshtein": "^1.0.7" + } } } }, "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", + "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", "dev": true }, "undici-types": { @@ -53804,16 +51943,6 @@ "set-value": "^2.0.1" } }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -54008,24 +52137,13 @@ "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - } } }, "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", @@ -54047,9 +52165,9 @@ } }, "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", + "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", "dev": true }, "value-or-promise": { @@ -54106,6 +52224,58 @@ "replace-ext": "^1.0.0" } }, + "vinyl-contents": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", + "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", + "dev": true, + "requires": { + "bl": "^5.0.0", + "vinyl": "^3.0.0" + }, + "dependencies": { + "bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, + "vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + } + } + } + }, "vinyl-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", @@ -54167,62 +52337,65 @@ } }, "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", "dev": true, "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", + "fs-mkdirp-stream": "^2.0.1", + "glob-stream": "^8.0.0", + "graceful-fs": "^4.2.11", + "iconv-lite": "^0.6.3", "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" + "lead": "^4.0.0", + "normalize-path": "3.0.0", + "resolve-options": "^2.0.0", + "stream-composer": "^1.0.2", + "streamx": "^2.14.0", + "to-through": "^3.0.0", + "value-or-function": "^4.0.0", + "vinyl": "^3.0.0", + "vinyl-sourcemap": "^2.0.0" }, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, + "vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" } } } @@ -54274,18 +52447,38 @@ } }, "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", "dev": true, "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" + "convert-source-map": "^2.0.0", + "graceful-fs": "^4.2.10", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5", + "vinyl": "^3.0.0", + "vinyl-contents": "^2.0.0" + }, + "dependencies": { + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true + }, + "vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + } + } } }, "vinyl-sourcemaps-apply": { @@ -54462,12 +52655,6 @@ "isexe": "^2.0.0" } }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, "which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", diff --git a/package.json b/package.json index 2d9efd84d..1ee353d80 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "eslint": "8.56.0", "eslint-plugin-jsdoc": "48.5.0", "express": "4.18.2", - "gulp": "4.0.2", + "gulp": "5.0.0", "gulp-babel": "8.0.0", "gulp-derequire": "3.0.0", "gulp-insert": "0.5.0", From 6a00e768bc5fb2de9fe444507b6b724a41c28d58 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 29 Jun 2024 14:52:33 +0200 Subject: [PATCH 51/53] empty From 82a5be417d4d5235a56dde32d2036003f07f7cb4 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 29 Jun 2024 14:06:04 +0000 Subject: [PATCH 52/53] chore(release): 5.2.0-beta.2 [skip ci] # [5.2.0-beta.2](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-beta.1...5.2.0-beta.2) (2024-06-29) ### Bug Fixes * Dot notation on JSON arrays doesn't work on `PushStatus` offset fields ([#2194](https://github.com/parse-community/Parse-SDK-JS/issues/2194)) ([e0eb6f0](https://github.com/parse-community/Parse-SDK-JS/commit/e0eb6f04e086da4628a9706b17909d11e5f06210)) --- changelogs/CHANGELOG_beta.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelogs/CHANGELOG_beta.md b/changelogs/CHANGELOG_beta.md index 9b672cd6c..5331c418f 100644 --- a/changelogs/CHANGELOG_beta.md +++ b/changelogs/CHANGELOG_beta.md @@ -1,3 +1,10 @@ +# [5.2.0-beta.2](https://github.com/parse-community/Parse-SDK-JS/compare/5.2.0-beta.1...5.2.0-beta.2) (2024-06-29) + + +### Bug Fixes + +* Dot notation on JSON arrays doesn't work on `PushStatus` offset fields ([#2194](https://github.com/parse-community/Parse-SDK-JS/issues/2194)) ([e0eb6f0](https://github.com/parse-community/Parse-SDK-JS/commit/e0eb6f04e086da4628a9706b17909d11e5f06210)) + # [5.2.0-beta.1](https://github.com/parse-community/Parse-SDK-JS/compare/5.1.0...5.2.0-beta.1) (2024-06-24) diff --git a/package-lock.json b/package-lock.json index ec8533bfc..8d7dfe3dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "parse", - "version": "5.2.0-alpha.4", + "version": "5.2.0-beta.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "parse", - "version": "5.2.0-alpha.4", + "version": "5.2.0-beta.2", "license": "Apache-2.0", "dependencies": { "@babel/runtime-corejs3": "7.24.6", diff --git a/package.json b/package.json index 1ee353d80..42ed04a27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse", - "version": "5.2.0-alpha.4", + "version": "5.2.0-beta.2", "description": "Parse JavaScript SDK", "homepage": "https://parseplatform.org", "keywords": [ From 26d9073925f5f678fb07787a6c7b2499ecb990a6 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sat, 29 Jun 2024 16:07:07 +0200 Subject: [PATCH 53/53] empty