From 0c10803cd9ca6b033f6d7eff400bfe9d5371d03e Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Thu, 30 Mar 2023 13:38:17 +0100 Subject: [PATCH 01/37] Create file and function to AddTenantToUrl --- .../tests/tenancy/tenancy.spec.ts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 packages/backend-core/tests/tenancy/tenancy.spec.ts diff --git a/packages/backend-core/tests/tenancy/tenancy.spec.ts b/packages/backend-core/tests/tenancy/tenancy.spec.ts new file mode 100644 index 0000000000..ed9bcba5df --- /dev/null +++ b/packages/backend-core/tests/tenancy/tenancy.spec.ts @@ -0,0 +1,50 @@ +import { + DEFAULT_TENANT_ID, + getTenantId, + getTenantIDFromAppID, + isMultiTenant, +} from "../../src/context" +import env from "../../src/environment" +import { + BBContext, + TenantResolutionStrategy, + GetTenantIdOptions, +} from "@budibase/types" +import { Header } from "../../src/constants" +import { + addTenantToUrl, + isUserInAppTenant, + getTenantIDFromCtx, +} from "../../src/tenancy" + +// mock the `getTenantId` and `isMultiTenant` functions +jest.mock("../../src/context", () => ({ + getTenantId: jest.fn(() => "budibase"), + isMultiTenant: jest.fn(() => true), +})) + +describe("addTenantToUrl", () => { + it("should append tenantId parameter to the URL", () => { + const url = "https://example.com" + const expectedUrl = "https://example.com?tenantId=budibase" + expect(addTenantToUrl(url)).toEqual(expectedUrl) + }) + + it("should append tenantId parameter to the URL query string", () => { + const url = "https://example.com?foo=bar" + const expectedUrl = "https://example.com?foo=bar&tenantId=default" + expect(addTenantToUrl(url)).toEqual(expectedUrl) + }) + + it("should not append tenantId parameter to the URL if isMultiTenant is false", () => { + // mock the `isMultiTenant` function to return false + jest.mock("../../src/context", () => ({ + getTenantId: jest.fn(() => "default"), + isMultiTenant: jest.fn(() => false), + })) + + const url = "https://example.com" + const expectedUrl = "https://example.com" + expect(addTenantToUrl(url)).toEqual(expectedUrl) + }) +}) From 02f33b59bb2a91259eccf2726c85d1fbb454ef4e Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Thu, 30 Mar 2023 13:42:04 +0100 Subject: [PATCH 02/37] changing url --- packages/backend-core/tests/tenancy/tenancy.spec.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/backend-core/tests/tenancy/tenancy.spec.ts b/packages/backend-core/tests/tenancy/tenancy.spec.ts index ed9bcba5df..60f789c045 100644 --- a/packages/backend-core/tests/tenancy/tenancy.spec.ts +++ b/packages/backend-core/tests/tenancy/tenancy.spec.ts @@ -25,14 +25,14 @@ jest.mock("../../src/context", () => ({ describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL", () => { - const url = "https://example.com" - const expectedUrl = "https://example.com?tenantId=budibase" + const url = "https://budibase.com" + const expectedUrl = "https://budibase.com?tenantId=budibase" expect(addTenantToUrl(url)).toEqual(expectedUrl) }) it("should append tenantId parameter to the URL query string", () => { - const url = "https://example.com?foo=bar" - const expectedUrl = "https://example.com?foo=bar&tenantId=default" + const url = "https://budibase.com?var=test" + const expectedUrl = "https://budibase.com?var=test&tenantId=default" expect(addTenantToUrl(url)).toEqual(expectedUrl) }) @@ -43,8 +43,8 @@ describe("addTenantToUrl", () => { isMultiTenant: jest.fn(() => false), })) - const url = "https://example.com" - const expectedUrl = "https://example.com" + const url = "https://budibase.com" + const expectedUrl = "https://budibase.com" expect(addTenantToUrl(url)).toEqual(expectedUrl) }) }) From 47897c8afa69b1dcdcbdc362833b21ecb7cae00a Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 30 Mar 2023 16:07:59 +0100 Subject: [PATCH 03/37] Basic moving around of assets. --- packages/backend-core/package.json | 5 +- .../backend-core/src/auth/tests/auth.spec.ts | 3 +- packages/backend-core/src/db/documents/ids.ts | 102 + .../backend-core/src/db/documents/index.ts | 2 + .../backend-core/src/db/documents/params.ts | 176 ++ packages/backend-core/src/db/utils.ts | 268 +-- .../__snapshots__/migrations.spec.ts.snap | 2 +- .../tenancy/tests}/tenancy.spec.ts | 29 +- .../backend-core/tests/{ => core}/index.ts | 0 .../backend-core/tests/{ => core}/jestEnv.ts | 0 .../tests/{ => core}/jestSetup.ts | 0 .../backend-core/tests/{ => core}/logging.ts | 0 .../tests/{ => core}/utilities/index.ts | 3 - .../tests/{ => core}/utilities/jestUtils.ts | 0 .../tests/{ => core}/utilities/mocks/date.ts | 0 .../tests/core/utilities/mocks/events.ts | 1 + .../tests/{ => core}/utilities/mocks/fetch.ts | 0 .../tests/{ => core}/utilities/mocks/index.ts | 0 .../{ => core}/utilities/mocks/licenses.ts | 0 .../{ => core}/utilities/mocks/posthog.ts | 0 .../utilities/structures/accounts.ts | 4 +- .../{ => core}/utilities/structures/apps.ts | 0 .../{ => core}/utilities/structures/common.ts | 0 .../{ => core}/utilities/structures/db.ts | 0 .../utilities/structures/generator.ts | 0 .../{ => core}/utilities/structures/index.ts | 0 .../{ => core}/utilities/structures/koa.ts | 0 .../utilities/structures/licenses.ts | 0 .../utilities/structures/plugins.ts | 0 .../{ => core}/utilities/structures/shared.ts | 0 .../{ => core}/utilities/structures/sso.ts | 0 .../utilities/structures/tenants.ts | 0 .../{ => core}/utilities/structures/users.ts | 0 .../utilities/testContainerUtils.ts | 0 .../DBTestConfiguration.ts | 0 packages/backend-core/tests/extra/index.ts | 2 + .../tests/{utilities => extra}/testEnv.ts | 2 +- .../tests/utilities/mocks/events.ts | 122 -- packages/backend-core/yarn.lock | 1928 +++++++++++++---- 39 files changed, 1799 insertions(+), 850 deletions(-) create mode 100644 packages/backend-core/src/db/documents/ids.ts create mode 100644 packages/backend-core/src/db/documents/index.ts create mode 100644 packages/backend-core/src/db/documents/params.ts rename packages/backend-core/{tests/tenancy => src/tenancy/tests}/tenancy.spec.ts (58%) rename packages/backend-core/tests/{ => core}/index.ts (100%) rename packages/backend-core/tests/{ => core}/jestEnv.ts (100%) rename packages/backend-core/tests/{ => core}/jestSetup.ts (100%) rename packages/backend-core/tests/{ => core}/logging.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/index.ts (65%) rename packages/backend-core/tests/{ => core}/utilities/jestUtils.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/mocks/date.ts (100%) create mode 100644 packages/backend-core/tests/core/utilities/mocks/events.ts rename packages/backend-core/tests/{ => core}/utilities/mocks/fetch.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/mocks/index.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/mocks/licenses.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/mocks/posthog.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/accounts.ts (95%) rename packages/backend-core/tests/{ => core}/utilities/structures/apps.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/common.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/db.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/generator.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/index.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/koa.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/licenses.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/plugins.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/shared.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/sso.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/tenants.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/structures/users.ts (100%) rename packages/backend-core/tests/{ => core}/utilities/testContainerUtils.ts (100%) rename packages/backend-core/tests/{utilities => extra}/DBTestConfiguration.ts (100%) create mode 100644 packages/backend-core/tests/extra/index.ts rename packages/backend-core/tests/{utilities => extra}/testEnv.ts (98%) delete mode 100644 packages/backend-core/tests/utilities/mocks/events.ts diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index fd7a416125..f0ea973b44 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -60,6 +60,7 @@ "@swc/core": "^1.3.25", "@swc/jest": "^0.2.24", "@trendyol/jest-testcontainers": "^2.1.1", + "@jest/test-sequencer": "29.5.0", "@types/chance": "1.1.3", "@types/ioredis": "4.28.0", "@types/jest": "28.1.1", @@ -76,13 +77,13 @@ "@types/uuid": "8.3.4", "chance": "1.1.8", "ioredis-mock": "5.8.0", - "jest": "28.1.1", + "jest": "29.5.0", "jest-serial-runner": "^1.2.1", "koa": "2.13.4", "nodemon": "2.0.16", "pouchdb-adapter-memory": "7.2.2", "timekeeper": "2.2.0", - "ts-jest": "28.0.4", + "ts-jest": "29.0.5", "ts-node": "10.8.1", "tsconfig-paths": "4.0.0", "typescript": "4.7.3" diff --git a/packages/backend-core/src/auth/tests/auth.spec.ts b/packages/backend-core/src/auth/tests/auth.spec.ts index 307f6a63c8..7cd393d862 100644 --- a/packages/backend-core/src/auth/tests/auth.spec.ts +++ b/packages/backend-core/src/auth/tests/auth.spec.ts @@ -1,4 +1,5 @@ -import { structures, testEnv } from "../../../tests" +import { structures } from "../../../tests/core" +import { testEnv } from "../../../tests/extra" import * as auth from "../auth" import * as events from "../../events" diff --git a/packages/backend-core/src/db/documents/ids.ts b/packages/backend-core/src/db/documents/ids.ts new file mode 100644 index 0000000000..28196c5318 --- /dev/null +++ b/packages/backend-core/src/db/documents/ids.ts @@ -0,0 +1,102 @@ +import { + APP_PREFIX, + DocumentType, + InternalTable, + SEPARATOR, +} from "../../constants" +import { newid } from "../../newid" + +/** + * Generates a new app ID. + * @returns {string} The new app ID which the app doc can be stored under. + */ +export const generateAppID = (tenantId?: string | null) => { + let id = APP_PREFIX + if (tenantId) { + id += `${tenantId}${SEPARATOR}` + } + return `${id}${newid()}` +} + +/** + * Gets a new row ID for the specified table. + * @param {string} tableId The table which the row is being created for. + * @param {string|null} id If an ID is to be used then the UUID can be substituted for this. + * @returns {string} The new ID which a row doc can be stored under. + */ +export function generateRowID(tableId: string, id?: string) { + id = id || newid() + return `${DocumentType.ROW}${SEPARATOR}${tableId}${SEPARATOR}${id}` +} + +/** + * Generates a new workspace ID. + * @returns {string} The new workspace ID which the workspace doc can be stored under. + */ +export function generateWorkspaceID() { + return `${DocumentType.WORKSPACE}${SEPARATOR}${newid()}` +} + +/** + * Generates a new global user ID. + * @returns {string} The new user ID which the user doc can be stored under. + */ +export function generateGlobalUserID(id?: any) { + return `${DocumentType.USER}${SEPARATOR}${id || newid()}` +} + +/** + * Generates a new user ID based on the passed in global ID. + * @param {string} globalId The ID of the global user. + * @returns {string} The new user ID which the user doc can be stored under. + */ +export function generateUserMetadataID(globalId: string) { + return generateRowID(InternalTable.USER_METADATA, globalId) +} + +/** + * Breaks up the ID to get the global ID. + */ +export function getGlobalIDFromUserMetadataID(id: string) { + const prefix = `${DocumentType.ROW}${SEPARATOR}${InternalTable.USER_METADATA}${SEPARATOR}` + if (!id || !id.includes(prefix)) { + return id + } + return id.split(prefix)[1] +} + +/** + * Generates a template ID. + * @param ownerId The owner/user of the template, this could be global or a workspace level. + */ +export function generateTemplateID(ownerId: any) { + return `${DocumentType.TEMPLATE}${SEPARATOR}${ownerId}${SEPARATOR}${newid()}` +} + +export function generateAppUserID(prodAppId: string, userId: string) { + return `${prodAppId}${SEPARATOR}${userId}` +} + +/** + * Generates a new role ID. + * @returns {string} The new role ID which the role doc can be stored under. + */ +export function generateRoleID(id?: any) { + return `${DocumentType.ROLE}${SEPARATOR}${id || newid()}` +} + +/** + * Generates a new dev info document ID - this is scoped to a user. + * @returns {string} The new dev info ID which info for dev (like api key) can be stored under. + */ +export const generateDevInfoID = (userId: any) => { + return `${DocumentType.DEV_INFO}${SEPARATOR}${userId}` +} + +/** + * Generates a new plugin ID - to be used in the global DB. + * @returns {string} The new plugin ID which a plugin metadata document can be stored under. + */ +export const generatePluginID = (name: string) => { + return `${DocumentType.PLUGIN}${SEPARATOR}${name}` +} diff --git a/packages/backend-core/src/db/documents/index.ts b/packages/backend-core/src/db/documents/index.ts new file mode 100644 index 0000000000..efa3b1f3f8 --- /dev/null +++ b/packages/backend-core/src/db/documents/index.ts @@ -0,0 +1,2 @@ +export * from "./ids" +export * from "./params" \ No newline at end of file diff --git a/packages/backend-core/src/db/documents/params.ts b/packages/backend-core/src/db/documents/params.ts new file mode 100644 index 0000000000..2594daac56 --- /dev/null +++ b/packages/backend-core/src/db/documents/params.ts @@ -0,0 +1,176 @@ +import { + DocumentType, + InternalTable, + SEPARATOR, + UNICODE_MAX, + ViewName, +} from "../../constants" +import { getProdAppID } from "../conversions" + +/** + * If creating DB allDocs/query params with only a single top level ID this can be used, this + * is usually the case as most of our docs are top level e.g. tables, automations, users and so on. + * More complex cases such as link docs and rows which have multiple levels of IDs that their + * ID consists of need their own functions to build the allDocs parameters. + * @param {string} docType The type of document which input params are being built for, e.g. user, + * link, app, table and so on. + * @param {string|null} docId The ID of the document minus its type - this is only needed if looking + * for a singular document. + * @param {object} otherProps Add any other properties onto the request, e.g. include_docs. + * @returns {object} Parameters which can then be used with an allDocs request. + */ +export function getDocParams( + docType: string, + docId?: string | null, + otherProps: any = {} +) { + if (docId == null) { + docId = "" + } + return { + ...otherProps, + startkey: `${docType}${SEPARATOR}${docId}`, + endkey: `${docType}${SEPARATOR}${docId}${UNICODE_MAX}`, + } +} + +/** + * Gets the DB allDocs/query params for retrieving a row. + * @param {string|null} tableId The table in which the rows have been stored. + * @param {string|null} rowId The ID of the row which is being specifically queried for. This can be + * left null to get all the rows in the table. + * @param {object} otherProps Any other properties to add to the request. + * @returns {object} Parameters which can then be used with an allDocs request. + */ +export function getRowParams( + tableId?: string | null, + rowId?: string | null, + otherProps = {} +) { + if (tableId == null) { + return getDocParams(DocumentType.ROW, null, otherProps) + } + + const endOfKey = rowId == null ? `${tableId}${SEPARATOR}` : rowId + + return getDocParams(DocumentType.ROW, endOfKey, otherProps) +} + +/** + * Retrieve the correct index for a view based on default design DB. + */ +export function getQueryIndex(viewName: ViewName) { + return `database/${viewName}` +} + + +/** + * Check if a given ID is that of a table. + * @returns {boolean} + */ +export const isTableId = (id: string) => { + // this includes datasource plus tables + return ( + id && + (id.startsWith(`${DocumentType.TABLE}${SEPARATOR}`) || + id.startsWith(`${DocumentType.DATASOURCE_PLUS}${SEPARATOR}`)) + ) +} + +/** + * Check if a given ID is that of a datasource or datasource plus. + * @returns {boolean} + */ +export const isDatasourceId = (id: string) => { + // this covers both datasources and datasource plus + return id && id.startsWith(`${DocumentType.DATASOURCE}${SEPARATOR}`) +} + +/** + * Gets parameters for retrieving workspaces. + */ +export function getWorkspaceParams(id = "", otherProps = {}) { + return { + ...otherProps, + startkey: `${DocumentType.WORKSPACE}${SEPARATOR}${id}`, + endkey: `${DocumentType.WORKSPACE}${SEPARATOR}${id}${UNICODE_MAX}`, + } +} + +/** + * Gets parameters for retrieving users. + */ +export function getGlobalUserParams(globalId: any, otherProps: any = {}) { + if (!globalId) { + globalId = "" + } + const startkey = otherProps?.startkey + return { + ...otherProps, + // need to include this incase pagination + startkey: startkey + ? startkey + : `${DocumentType.USER}${SEPARATOR}${globalId}`, + endkey: `${DocumentType.USER}${SEPARATOR}${globalId}${UNICODE_MAX}`, + } +} + +/** + * Gets parameters for retrieving users, this is a utility function for the getDocParams function. + */ +export function getUserMetadataParams(userId?: string | null, otherProps = {}) { + return getRowParams(InternalTable.USER_METADATA, userId, otherProps) +} + + +export function getUsersByAppParams(appId: any, otherProps: any = {}) { + const prodAppId = getProdAppID(appId) + return { + ...otherProps, + startkey: prodAppId, + endkey: `${prodAppId}${UNICODE_MAX}`, + } +} + +/** + * Gets parameters for retrieving templates. Owner ID must be specified, either global or a workspace level. + */ +export function getTemplateParams( + ownerId: any, + templateId: any, + otherProps = {} +) { + if (!templateId) { + templateId = "" + } + let final + if (templateId) { + final = templateId + } else { + final = `${DocumentType.TEMPLATE}${SEPARATOR}${ownerId}${SEPARATOR}` + } + return { + ...otherProps, + startkey: final, + endkey: `${final}${UNICODE_MAX}`, + } +} + +/** + * Gets parameters for retrieving a role, this is a utility function for the getDocParams function. + */ +export function getRoleParams(roleId?: string | null, otherProps = {}) { + return getDocParams(DocumentType.ROLE, roleId, otherProps) +} + +export function getStartEndKeyURL(baseKey: any, tenantId?: string) { + const tenancy = tenantId ? `${SEPARATOR}${tenantId}` : "" + return `startkey="${baseKey}${tenancy}"&endkey="${baseKey}${tenancy}${UNICODE_MAX}"` +} + +/** + * Gets parameters for retrieving automations, this is a utility function for the getDocParams function. + */ +export const getPluginParams = (pluginId?: string | null, otherProps = {}) => { + return getDocParams(DocumentType.PLUGIN, pluginId, otherProps) +} diff --git a/packages/backend-core/src/db/utils.ts b/packages/backend-core/src/db/utils.ts index 76c52d08ad..ce1990451b 100644 --- a/packages/backend-core/src/db/utils.ts +++ b/packages/backend-core/src/db/utils.ts @@ -1,257 +1,16 @@ -import { newid } from "../newid" import env from "../environment" import { DEFAULT_TENANT_ID, SEPARATOR, DocumentType, - UNICODE_MAX, - ViewName, - InternalTable, - APP_PREFIX, } from "../constants" import { getTenantId, getGlobalDBName } from "../context" import { doWithDB, directCouchAllDbs } from "./db" import { getAppMetadata } from "../cache/appMetadata" import { isDevApp, isDevAppID, getProdAppID } from "./conversions" import { App, Database } from "@budibase/types" - -/** - * Generates a new app ID. - * @returns {string} The new app ID which the app doc can be stored under. - */ -export const generateAppID = (tenantId?: string | null) => { - let id = APP_PREFIX - if (tenantId) { - id += `${tenantId}${SEPARATOR}` - } - return `${id}${newid()}` -} - -/** - * If creating DB allDocs/query params with only a single top level ID this can be used, this - * is usually the case as most of our docs are top level e.g. tables, automations, users and so on. - * More complex cases such as link docs and rows which have multiple levels of IDs that their - * ID consists of need their own functions to build the allDocs parameters. - * @param {string} docType The type of document which input params are being built for, e.g. user, - * link, app, table and so on. - * @param {string|null} docId The ID of the document minus its type - this is only needed if looking - * for a singular document. - * @param {object} otherProps Add any other properties onto the request, e.g. include_docs. - * @returns {object} Parameters which can then be used with an allDocs request. - */ -export function getDocParams( - docType: string, - docId?: string | null, - otherProps: any = {} -) { - if (docId == null) { - docId = "" - } - return { - ...otherProps, - startkey: `${docType}${SEPARATOR}${docId}`, - endkey: `${docType}${SEPARATOR}${docId}${UNICODE_MAX}`, - } -} - -/** - * Gets the DB allDocs/query params for retrieving a row. - * @param {string|null} tableId The table in which the rows have been stored. - * @param {string|null} rowId The ID of the row which is being specifically queried for. This can be - * left null to get all the rows in the table. - * @param {object} otherProps Any other properties to add to the request. - * @returns {object} Parameters which can then be used with an allDocs request. - */ -export function getRowParams( - tableId?: string | null, - rowId?: string | null, - otherProps = {} -) { - if (tableId == null) { - return getDocParams(DocumentType.ROW, null, otherProps) - } - - const endOfKey = rowId == null ? `${tableId}${SEPARATOR}` : rowId - - return getDocParams(DocumentType.ROW, endOfKey, otherProps) -} - -/** - * Retrieve the correct index for a view based on default design DB. - */ -export function getQueryIndex(viewName: ViewName) { - return `database/${viewName}` -} - -/** - * Gets a new row ID for the specified table. - * @param {string} tableId The table which the row is being created for. - * @param {string|null} id If an ID is to be used then the UUID can be substituted for this. - * @returns {string} The new ID which a row doc can be stored under. - */ -export function generateRowID(tableId: string, id?: string) { - id = id || newid() - return `${DocumentType.ROW}${SEPARATOR}${tableId}${SEPARATOR}${id}` -} - -/** - * Check if a given ID is that of a table. - * @returns {boolean} - */ -export const isTableId = (id: string) => { - // this includes datasource plus tables - return ( - id && - (id.startsWith(`${DocumentType.TABLE}${SEPARATOR}`) || - id.startsWith(`${DocumentType.DATASOURCE_PLUS}${SEPARATOR}`)) - ) -} - -/** - * Check if a given ID is that of a datasource or datasource plus. - * @returns {boolean} - */ -export const isDatasourceId = (id: string) => { - // this covers both datasources and datasource plus - return id && id.startsWith(`${DocumentType.DATASOURCE}${SEPARATOR}`) -} - -/** - * Generates a new workspace ID. - * @returns {string} The new workspace ID which the workspace doc can be stored under. - */ -export function generateWorkspaceID() { - return `${DocumentType.WORKSPACE}${SEPARATOR}${newid()}` -} - -/** - * Gets parameters for retrieving workspaces. - */ -export function getWorkspaceParams(id = "", otherProps = {}) { - return { - ...otherProps, - startkey: `${DocumentType.WORKSPACE}${SEPARATOR}${id}`, - endkey: `${DocumentType.WORKSPACE}${SEPARATOR}${id}${UNICODE_MAX}`, - } -} - -/** - * Generates a new global user ID. - * @returns {string} The new user ID which the user doc can be stored under. - */ -export function generateGlobalUserID(id?: any) { - return `${DocumentType.USER}${SEPARATOR}${id || newid()}` -} - -/** - * Gets parameters for retrieving users. - */ -export function getGlobalUserParams(globalId: any, otherProps: any = {}) { - if (!globalId) { - globalId = "" - } - const startkey = otherProps?.startkey - return { - ...otherProps, - // need to include this incase pagination - startkey: startkey - ? startkey - : `${DocumentType.USER}${SEPARATOR}${globalId}`, - endkey: `${DocumentType.USER}${SEPARATOR}${globalId}${UNICODE_MAX}`, - } -} - -/** - * Gets parameters for retrieving users, this is a utility function for the getDocParams function. - */ -export function getUserMetadataParams(userId?: string | null, otherProps = {}) { - return getRowParams(InternalTable.USER_METADATA, userId, otherProps) -} - -/** - * Generates a new user ID based on the passed in global ID. - * @param {string} globalId The ID of the global user. - * @returns {string} The new user ID which the user doc can be stored under. - */ -export function generateUserMetadataID(globalId: string) { - return generateRowID(InternalTable.USER_METADATA, globalId) -} - -/** - * Breaks up the ID to get the global ID. - */ -export function getGlobalIDFromUserMetadataID(id: string) { - const prefix = `${DocumentType.ROW}${SEPARATOR}${InternalTable.USER_METADATA}${SEPARATOR}` - if (!id || !id.includes(prefix)) { - return id - } - return id.split(prefix)[1] -} - -export function getUsersByAppParams(appId: any, otherProps: any = {}) { - const prodAppId = getProdAppID(appId) - return { - ...otherProps, - startkey: prodAppId, - endkey: `${prodAppId}${UNICODE_MAX}`, - } -} - -/** - * Generates a template ID. - * @param ownerId The owner/user of the template, this could be global or a workspace level. - */ -export function generateTemplateID(ownerId: any) { - return `${DocumentType.TEMPLATE}${SEPARATOR}${ownerId}${SEPARATOR}${newid()}` -} - -export function generateAppUserID(prodAppId: string, userId: string) { - return `${prodAppId}${SEPARATOR}${userId}` -} - -/** - * Gets parameters for retrieving templates. Owner ID must be specified, either global or a workspace level. - */ -export function getTemplateParams( - ownerId: any, - templateId: any, - otherProps = {} -) { - if (!templateId) { - templateId = "" - } - let final - if (templateId) { - final = templateId - } else { - final = `${DocumentType.TEMPLATE}${SEPARATOR}${ownerId}${SEPARATOR}` - } - return { - ...otherProps, - startkey: final, - endkey: `${final}${UNICODE_MAX}`, - } -} - -/** - * Generates a new role ID. - * @returns {string} The new role ID which the role doc can be stored under. - */ -export function generateRoleID(id?: any) { - return `${DocumentType.ROLE}${SEPARATOR}${id || newid()}` -} - -/** - * Gets parameters for retrieving a role, this is a utility function for the getDocParams function. - */ -export function getRoleParams(roleId?: string | null, otherProps = {}) { - return getDocParams(DocumentType.ROLE, roleId, otherProps) -} - -export function getStartEndKeyURL(baseKey: any, tenantId?: string) { - const tenancy = tenantId ? `${SEPARATOR}${tenantId}` : "" - return `startkey="${baseKey}${tenancy}"&endkey="${baseKey}${tenancy}${UNICODE_MAX}"` -} +import { getStartEndKeyURL } from "./documents" +export * from "./documents" /** * if in production this will use the CouchDB _all_dbs call to retrieve a list of databases. If testing @@ -411,29 +170,6 @@ export async function dbExists(dbName: any) { ) } -/** - * Generates a new dev info document ID - this is scoped to a user. - * @returns {string} The new dev info ID which info for dev (like api key) can be stored under. - */ -export const generateDevInfoID = (userId: any) => { - return `${DocumentType.DEV_INFO}${SEPARATOR}${userId}` -} - -/** - * Generates a new plugin ID - to be used in the global DB. - * @returns {string} The new plugin ID which a plugin metadata document can be stored under. - */ -export const generatePluginID = (name: string) => { - return `${DocumentType.PLUGIN}${SEPARATOR}${name}` -} - -/** - * Gets parameters for retrieving automations, this is a utility function for the getDocParams function. - */ -export const getPluginParams = (pluginId?: string | null, otherProps = {}) => { - return getDocParams(DocumentType.PLUGIN, pluginId, otherProps) -} - export function pagination( data: any[], pageSize: number, diff --git a/packages/backend-core/src/migrations/tests/__snapshots__/migrations.spec.ts.snap b/packages/backend-core/src/migrations/tests/__snapshots__/migrations.spec.ts.snap index 5129869232..377900b5d5 100644 --- a/packages/backend-core/src/migrations/tests/__snapshots__/migrations.spec.ts.snap +++ b/packages/backend-core/src/migrations/tests/__snapshots__/migrations.spec.ts.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`migrations should match snapshot 1`] = ` -Object { +{ "_id": "migrations", "_rev": "1-2f64479842a0513aa8b97f356b0b9127", "createdAt": "2020-01-01T00:00:00.000Z", diff --git a/packages/backend-core/tests/tenancy/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts similarity index 58% rename from packages/backend-core/tests/tenancy/tenancy.spec.ts rename to packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 60f789c045..9d67b677c4 100644 --- a/packages/backend-core/tests/tenancy/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -1,28 +1,11 @@ -import { - DEFAULT_TENANT_ID, - getTenantId, - getTenantIDFromAppID, - isMultiTenant, -} from "../../src/context" -import env from "../../src/environment" -import { - BBContext, - TenantResolutionStrategy, - GetTenantIdOptions, -} from "@budibase/types" -import { Header } from "../../src/constants" -import { - addTenantToUrl, - isUserInAppTenant, - getTenantIDFromCtx, -} from "../../src/tenancy" - // mock the `getTenantId` and `isMultiTenant` functions -jest.mock("../../src/context", () => ({ +jest.mock("../../context", () => ({ getTenantId: jest.fn(() => "budibase"), isMultiTenant: jest.fn(() => true), })) +import { addTenantToUrl } from "../" + describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL", () => { const url = "https://budibase.com" @@ -37,12 +20,6 @@ describe("addTenantToUrl", () => { }) it("should not append tenantId parameter to the URL if isMultiTenant is false", () => { - // mock the `isMultiTenant` function to return false - jest.mock("../../src/context", () => ({ - getTenantId: jest.fn(() => "default"), - isMultiTenant: jest.fn(() => false), - })) - const url = "https://budibase.com" const expectedUrl = "https://budibase.com" expect(addTenantToUrl(url)).toEqual(expectedUrl) diff --git a/packages/backend-core/tests/index.ts b/packages/backend-core/tests/core/index.ts similarity index 100% rename from packages/backend-core/tests/index.ts rename to packages/backend-core/tests/core/index.ts diff --git a/packages/backend-core/tests/jestEnv.ts b/packages/backend-core/tests/core/jestEnv.ts similarity index 100% rename from packages/backend-core/tests/jestEnv.ts rename to packages/backend-core/tests/core/jestEnv.ts diff --git a/packages/backend-core/tests/jestSetup.ts b/packages/backend-core/tests/core/jestSetup.ts similarity index 100% rename from packages/backend-core/tests/jestSetup.ts rename to packages/backend-core/tests/core/jestSetup.ts diff --git a/packages/backend-core/tests/logging.ts b/packages/backend-core/tests/core/logging.ts similarity index 100% rename from packages/backend-core/tests/logging.ts rename to packages/backend-core/tests/core/logging.ts diff --git a/packages/backend-core/tests/utilities/index.ts b/packages/backend-core/tests/core/utilities/index.ts similarity index 65% rename from packages/backend-core/tests/utilities/index.ts rename to packages/backend-core/tests/core/utilities/index.ts index 1c73216d76..eee41cc3d4 100644 --- a/packages/backend-core/tests/utilities/index.ts +++ b/packages/backend-core/tests/core/utilities/index.ts @@ -1,9 +1,6 @@ export * as mocks from "./mocks" export * as structures from "./structures" export { generator } from "./structures" -export * as testEnv from "./testEnv" export * as testContainerUtils from "./testContainerUtils" export * from "./jestUtils" - -export { default as DBTestConfiguration } from "./DBTestConfiguration" diff --git a/packages/backend-core/tests/utilities/jestUtils.ts b/packages/backend-core/tests/core/utilities/jestUtils.ts similarity index 100% rename from packages/backend-core/tests/utilities/jestUtils.ts rename to packages/backend-core/tests/core/utilities/jestUtils.ts diff --git a/packages/backend-core/tests/utilities/mocks/date.ts b/packages/backend-core/tests/core/utilities/mocks/date.ts similarity index 100% rename from packages/backend-core/tests/utilities/mocks/date.ts rename to packages/backend-core/tests/core/utilities/mocks/date.ts diff --git a/packages/backend-core/tests/core/utilities/mocks/events.ts b/packages/backend-core/tests/core/utilities/mocks/events.ts new file mode 100644 index 0000000000..306f7a6cd6 --- /dev/null +++ b/packages/backend-core/tests/core/utilities/mocks/events.ts @@ -0,0 +1 @@ +jest.mock("../../../src/events") diff --git a/packages/backend-core/tests/utilities/mocks/fetch.ts b/packages/backend-core/tests/core/utilities/mocks/fetch.ts similarity index 100% rename from packages/backend-core/tests/utilities/mocks/fetch.ts rename to packages/backend-core/tests/core/utilities/mocks/fetch.ts diff --git a/packages/backend-core/tests/utilities/mocks/index.ts b/packages/backend-core/tests/core/utilities/mocks/index.ts similarity index 100% rename from packages/backend-core/tests/utilities/mocks/index.ts rename to packages/backend-core/tests/core/utilities/mocks/index.ts diff --git a/packages/backend-core/tests/utilities/mocks/licenses.ts b/packages/backend-core/tests/core/utilities/mocks/licenses.ts similarity index 100% rename from packages/backend-core/tests/utilities/mocks/licenses.ts rename to packages/backend-core/tests/core/utilities/mocks/licenses.ts diff --git a/packages/backend-core/tests/utilities/mocks/posthog.ts b/packages/backend-core/tests/core/utilities/mocks/posthog.ts similarity index 100% rename from packages/backend-core/tests/utilities/mocks/posthog.ts rename to packages/backend-core/tests/core/utilities/mocks/posthog.ts diff --git a/packages/backend-core/tests/utilities/structures/accounts.ts b/packages/backend-core/tests/core/utilities/structures/accounts.ts similarity index 95% rename from packages/backend-core/tests/utilities/structures/accounts.ts rename to packages/backend-core/tests/core/utilities/structures/accounts.ts index 62a9ac19d1..f4ad0b9ab6 100644 --- a/packages/backend-core/tests/utilities/structures/accounts.ts +++ b/packages/backend-core/tests/core/utilities/structures/accounts.ts @@ -1,5 +1,5 @@ import { generator, uuid } from "." -import * as db from "../../../src/db/utils" +import { generateGlobalUserID } from "../../../src/db/documents" import { Account, AccountSSOProvider, @@ -39,7 +39,7 @@ export const cloudAccount = (): CloudAccount => { return { ...account(), hosting: Hosting.CLOUD, - budibaseUserId: db.generateGlobalUserID(), + budibaseUserId: generateGlobalUserID(), } } diff --git a/packages/backend-core/tests/utilities/structures/apps.ts b/packages/backend-core/tests/core/utilities/structures/apps.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/apps.ts rename to packages/backend-core/tests/core/utilities/structures/apps.ts diff --git a/packages/backend-core/tests/utilities/structures/common.ts b/packages/backend-core/tests/core/utilities/structures/common.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/common.ts rename to packages/backend-core/tests/core/utilities/structures/common.ts diff --git a/packages/backend-core/tests/utilities/structures/db.ts b/packages/backend-core/tests/core/utilities/structures/db.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/db.ts rename to packages/backend-core/tests/core/utilities/structures/db.ts diff --git a/packages/backend-core/tests/utilities/structures/generator.ts b/packages/backend-core/tests/core/utilities/structures/generator.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/generator.ts rename to packages/backend-core/tests/core/utilities/structures/generator.ts diff --git a/packages/backend-core/tests/utilities/structures/index.ts b/packages/backend-core/tests/core/utilities/structures/index.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/index.ts rename to packages/backend-core/tests/core/utilities/structures/index.ts diff --git a/packages/backend-core/tests/utilities/structures/koa.ts b/packages/backend-core/tests/core/utilities/structures/koa.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/koa.ts rename to packages/backend-core/tests/core/utilities/structures/koa.ts diff --git a/packages/backend-core/tests/utilities/structures/licenses.ts b/packages/backend-core/tests/core/utilities/structures/licenses.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/licenses.ts rename to packages/backend-core/tests/core/utilities/structures/licenses.ts diff --git a/packages/backend-core/tests/utilities/structures/plugins.ts b/packages/backend-core/tests/core/utilities/structures/plugins.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/plugins.ts rename to packages/backend-core/tests/core/utilities/structures/plugins.ts diff --git a/packages/backend-core/tests/utilities/structures/shared.ts b/packages/backend-core/tests/core/utilities/structures/shared.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/shared.ts rename to packages/backend-core/tests/core/utilities/structures/shared.ts diff --git a/packages/backend-core/tests/utilities/structures/sso.ts b/packages/backend-core/tests/core/utilities/structures/sso.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/sso.ts rename to packages/backend-core/tests/core/utilities/structures/sso.ts diff --git a/packages/backend-core/tests/utilities/structures/tenants.ts b/packages/backend-core/tests/core/utilities/structures/tenants.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/tenants.ts rename to packages/backend-core/tests/core/utilities/structures/tenants.ts diff --git a/packages/backend-core/tests/utilities/structures/users.ts b/packages/backend-core/tests/core/utilities/structures/users.ts similarity index 100% rename from packages/backend-core/tests/utilities/structures/users.ts rename to packages/backend-core/tests/core/utilities/structures/users.ts diff --git a/packages/backend-core/tests/utilities/testContainerUtils.ts b/packages/backend-core/tests/core/utilities/testContainerUtils.ts similarity index 100% rename from packages/backend-core/tests/utilities/testContainerUtils.ts rename to packages/backend-core/tests/core/utilities/testContainerUtils.ts diff --git a/packages/backend-core/tests/utilities/DBTestConfiguration.ts b/packages/backend-core/tests/extra/DBTestConfiguration.ts similarity index 100% rename from packages/backend-core/tests/utilities/DBTestConfiguration.ts rename to packages/backend-core/tests/extra/DBTestConfiguration.ts diff --git a/packages/backend-core/tests/extra/index.ts b/packages/backend-core/tests/extra/index.ts new file mode 100644 index 0000000000..bf4cc7c7f7 --- /dev/null +++ b/packages/backend-core/tests/extra/index.ts @@ -0,0 +1,2 @@ +export * as testEnv from "./testEnv" +export * as DBTestConfiguration from "./DBTestConfiguration" diff --git a/packages/backend-core/tests/utilities/testEnv.ts b/packages/backend-core/tests/extra/testEnv.ts similarity index 98% rename from packages/backend-core/tests/utilities/testEnv.ts rename to packages/backend-core/tests/extra/testEnv.ts index b138e019fc..df07f96c25 100644 --- a/packages/backend-core/tests/utilities/testEnv.ts +++ b/packages/backend-core/tests/extra/testEnv.ts @@ -1,6 +1,6 @@ import env from "../../src/environment" import * as context from "../../src/context" -import * as structures from "./structures" +import * as structures from "../core" // TENANCY diff --git a/packages/backend-core/tests/utilities/mocks/events.ts b/packages/backend-core/tests/utilities/mocks/events.ts deleted file mode 100644 index ab0aaa93a6..0000000000 --- a/packages/backend-core/tests/utilities/mocks/events.ts +++ /dev/null @@ -1,122 +0,0 @@ -import * as processors from "../../../src/events/processors" -import * as events from "../../../src/events" - -jest.spyOn(processors.analyticsProcessor, "processEvent") - -jest.spyOn(events.identification, "identifyTenantGroup") -jest.spyOn(events.identification, "identifyUser") - -jest.spyOn(events.backfill, "appSucceeded") -jest.spyOn(events.backfill, "tenantSucceeded") - -jest.spyOn(events.account, "created") -jest.spyOn(events.account, "deleted") -jest.spyOn(events.account, "verified") - -jest.spyOn(events.app, "created") -jest.spyOn(events.app, "updated") -jest.spyOn(events.app, "deleted") -jest.spyOn(events.app, "published") -jest.spyOn(events.app, "unpublished") -jest.spyOn(events.app, "templateImported") -jest.spyOn(events.app, "fileImported") -jest.spyOn(events.app, "versionUpdated") -jest.spyOn(events.app, "versionReverted") -jest.spyOn(events.app, "reverted") -jest.spyOn(events.app, "exported") - -jest.spyOn(events.auth, "login") -jest.spyOn(events.auth, "logout") -jest.spyOn(events.auth, "SSOCreated") -jest.spyOn(events.auth, "SSOUpdated") -jest.spyOn(events.auth, "SSOActivated") -jest.spyOn(events.auth, "SSODeactivated") - -jest.spyOn(events.automation, "created") -jest.spyOn(events.automation, "deleted") -jest.spyOn(events.automation, "tested") -jest.spyOn(events.automation, "stepCreated") -jest.spyOn(events.automation, "stepDeleted") -jest.spyOn(events.automation, "triggerUpdated") - -jest.spyOn(events.datasource, "created") -jest.spyOn(events.datasource, "updated") -jest.spyOn(events.datasource, "deleted") - -jest.spyOn(events.email, "SMTPCreated") -jest.spyOn(events.email, "SMTPUpdated") - -jest.spyOn(events.layout, "created") -jest.spyOn(events.layout, "deleted") - -jest.spyOn(events.org, "nameUpdated") -jest.spyOn(events.org, "logoUpdated") -jest.spyOn(events.org, "platformURLUpdated") -jest.spyOn(events.org, "analyticsOptOut") - -jest.spyOn(events.installation, "versionChecked") - -jest.spyOn(events.query, "created") -jest.spyOn(events.query, "updated") -jest.spyOn(events.query, "deleted") -jest.spyOn(events.query, "imported") -jest.spyOn(events.query, "previewed") - -jest.spyOn(events.role, "created") -jest.spyOn(events.role, "updated") -jest.spyOn(events.role, "deleted") -jest.spyOn(events.role, "assigned") -jest.spyOn(events.role, "unassigned") - -jest.spyOn(events.rows, "imported") -jest.spyOn(events.rows, "created") - -jest.spyOn(events.screen, "created") -jest.spyOn(events.screen, "deleted") - -jest.spyOn(events.user, "created") -jest.spyOn(events.user, "updated") -jest.spyOn(events.user, "deleted") -jest.spyOn(events.user, "permissionAdminAssigned") -jest.spyOn(events.user, "permissionAdminRemoved") -jest.spyOn(events.user, "permissionBuilderAssigned") -jest.spyOn(events.user, "permissionBuilderRemoved") -jest.spyOn(events.user, "invited") -jest.spyOn(events.user, "inviteAccepted") -jest.spyOn(events.user, "passwordForceReset") -jest.spyOn(events.user, "passwordUpdated") -jest.spyOn(events.user, "passwordResetRequested") -jest.spyOn(events.user, "passwordReset") - -jest.spyOn(events.group, "created") -jest.spyOn(events.group, "updated") -jest.spyOn(events.group, "deleted") -jest.spyOn(events.group, "usersAdded") -jest.spyOn(events.group, "usersDeleted") -jest.spyOn(events.group, "createdOnboarding") -jest.spyOn(events.group, "permissionsEdited") - -jest.spyOn(events.serve, "servedBuilder") -jest.spyOn(events.serve, "servedApp") -jest.spyOn(events.serve, "servedAppPreview") - -jest.spyOn(events.table, "created") -jest.spyOn(events.table, "updated") -jest.spyOn(events.table, "deleted") -jest.spyOn(events.table, "exported") -jest.spyOn(events.table, "imported") - -jest.spyOn(events.view, "created") -jest.spyOn(events.view, "updated") -jest.spyOn(events.view, "deleted") -jest.spyOn(events.view, "exported") -jest.spyOn(events.view, "filterCreated") -jest.spyOn(events.view, "filterUpdated") -jest.spyOn(events.view, "filterDeleted") -jest.spyOn(events.view, "calculationCreated") -jest.spyOn(events.view, "calculationUpdated") -jest.spyOn(events.view, "calculationDeleted") - -jest.spyOn(events.plugin, "init") -jest.spyOn(events.plugin, "imported") -jest.spyOn(events.plugin, "deleted") diff --git a/packages/backend-core/yarn.lock b/packages/backend-core/yarn.lock index 91c5c6c9f3..f186737f13 100644 --- a/packages/backend-core/yarn.lock +++ b/packages/backend-core/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0": +"@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== @@ -24,6 +24,11 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" + integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== + "@babel/compat-data@^7.17.10": version "7.17.10" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" @@ -34,6 +39,48 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== +"@babel/core@7.17.4": + version "7.17.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.4.tgz#a22f1ae8999122873b3d18865e98c7a3936b8c8b" + integrity sha512-R9x5r4t4+hBqZTmioSnkrW+I6NmbojwjGT8p4G2Gw1thWbXIHGDnmGdLdFw0/7ljucdIrNRp7Npgb4CyBYzzJg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.3" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + +"@babel/core@^7.1.0": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" + integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.3" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.3" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.3" + "@babel/types" "^7.21.3" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + "@babel/core@^7.11.6": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" @@ -76,6 +123,16 @@ json5 "^2.2.1" semver "^6.3.0" +"@babel/generator@^7.17.3", "@babel/generator@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" + integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== + dependencies: + "@babel/types" "^7.21.3" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/generator@^7.18.2", "@babel/generator@^7.7.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" @@ -94,6 +151,32 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + "@babel/helper-compilation-targets@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" @@ -114,6 +197,40 @@ browserslist "^4.21.3" semver "^6.3.0" +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" + integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" + integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + +"@babel/helper-define-polyfill-provider@^0.3.1", "@babel/helper-define-polyfill-provider@^0.3.2", "@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + "@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" @@ -124,6 +241,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-function-name@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" @@ -132,6 +256,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.17.0" +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + "@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" @@ -154,6 +286,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" + integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== + dependencies: + "@babel/types" "^7.21.0" + "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" @@ -168,6 +307,20 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" + "@babel/helper-module-transforms@^7.18.0": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" @@ -196,11 +349,45 @@ "@babel/traverse" "^7.20.1" "@babel/types" "^7.20.2" +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0": version "7.17.12" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== +"@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.3": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + 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-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + "@babel/helper-simple-access@^7.17.7": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" @@ -215,6 +402,13 @@ dependencies: "@babel/types" "^7.20.2" +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" @@ -254,6 +448,25 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/helpers@^7.17.2", "@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" + "@babel/helpers@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" @@ -295,11 +508,161 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== +"@babel/parser@^7.17.3", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" + integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== + "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": version "7.20.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== + 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/plugin-proposal-async-generator-functions@^7.16.8": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== + 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/plugin-proposal-class-properties@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" + integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== + 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/plugin-proposal-dynamic-import@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + 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/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.16.7", "@babel/plugin-proposal-optional-chaining@^7.20.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" + integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== + 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" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -314,13 +677,34 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -335,7 +719,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -349,7 +740,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -377,7 +768,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -391,6 +789,353 @@ dependencies: "@babel/helper-plugin-utils" "^7.17.12" +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== + 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/plugin-transform-block-scoped-functions@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.16.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + 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" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" + integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.16.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" + integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-function-name@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" + integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== + dependencies: + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" + +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== + 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/plugin-transform-modules-umd@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-new-target@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.16.7", "@babel/plugin-transform-parameters@^7.20.7": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" + integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.16.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@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-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.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + 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" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + "@babel/runtime@^7.15.4": version "7.18.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" @@ -398,6 +1143,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.8.4": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -416,6 +1168,31 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" +"@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.17.3", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" + integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.3" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.3" + "@babel/types" "^7.21.3" + debug "^4.1.0" + globals "^11.1.0" + "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.7.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" @@ -456,6 +1233,15 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.16.8", "@babel/types@^7.18.9", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.4.4": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" + integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" @@ -535,50 +1321,49 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== +"@jest/console@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" + integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" -"@jest/core@^28.1.1", "@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== +"@jest/core@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" + integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@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" "@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 "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" + 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" micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" + pretty-format "^29.5.0" slash "^3.0.0" strip-ansi "^6.0.0" @@ -589,63 +1374,64 @@ dependencies: "@jest/types" "^27.5.1" -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== +"@jest/environment@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" + integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^28.1.3" + jest-mock "^29.5.0" -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== +"@jest/expect-utils@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" + integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== dependencies: - jest-get-type "^28.0.2" + jest-get-type "^29.4.3" -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== +"@jest/expect@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" + integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" + expect "^29.5.0" + jest-snapshot "^29.5.0" -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== +"@jest/fake-timers@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" + integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== dependencies: - "@jest/types" "^28.1.3" - "@sinonjs/fake-timers" "^9.1.2" + "@jest/types" "^29.5.0" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" + jest-util "^29.5.0" -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== +"@jest/globals@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" + integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/types" "^29.5.0" + jest-mock "^29.5.0" -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== +"@jest/reporters@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" + integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@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" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -657,71 +1443,91 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" + jest-worker "^29.5.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" - terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== dependencies: - "@sinclair/typebox" "^0.24.1" + "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== +"@jest/source-map@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" + integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== dependencies: - "@jridgewell/trace-mapping" "^0.3.13" + "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== +"@jest/test-result@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" + integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/console" "^29.5.0" + "@jest/types" "^29.5.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== +"@jest/test-sequencer@29.5.0", "@jest/test-sequencer@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" + integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== dependencies: - "@jest/test-result" "^28.1.3" + "@jest/test-result" "^29.5.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" + jest-haste-map "^29.5.0" slash "^3.0.0" -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/transform@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" + integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.5.0" + "@jridgewell/trace-mapping" "^0.3.15" + 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" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" "@jest/types@^27.5.1": version "27.5.1" @@ -734,12 +1540,12 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^28.1.1", "@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== dependencies: - "@jest/schemas" "^28.1.3" + "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -810,7 +1616,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -896,29 +1702,29 @@ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== +"@sinonjs/fake-timers@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" + integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^2.0.0" "@swc/core-darwin-arm64@1.3.25": version "1.3.25" @@ -1048,6 +1854,17 @@ dependencies: "@types/node" "*" +"@types/babel__core@^7.0.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -1154,6 +1971,13 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/graceful-fs@^4.1.2": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + dependencies: + "@types/node" "*" + "@types/graceful-fs@^4.1.3": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" @@ -1784,15 +2608,29 @@ axios@^1.1.3: form-data "^4.0.0" proxy-from-env "^1.1.0" -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== +babel-jest@27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== dependencies: - "@jest/transform" "^28.1.3" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" + integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== + dependencies: + "@jest/transform" "^29.5.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.5.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -1808,16 +2646,50 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-jest-hoist@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" + integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.2" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -1836,12 +2708,20 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== dependencies: - babel-plugin-jest-hoist "^28.1.3" + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" + integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== + dependencies: + babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1955,6 +2835,16 @@ browserslist@^4.21.3: node-releases "^2.0.6" update-browserslist-db "^1.0.9" +browserslist@^4.21.5: + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== + dependencies: + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -2088,6 +2978,11 @@ caniuse-lite@^1.0.30001400: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== +caniuse-lite@^1.0.30001449: + version "1.0.30001473" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001473.tgz#3859898b3cab65fc8905bb923df36ad35058153c" + integrity sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg== + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -2286,13 +3181,23 @@ content-type@^1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookies@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" @@ -2301,6 +3206,13 @@ cookies@~0.8.0: depd "~2.0.0" keygrip "~1.1.0" +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.29.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.1.tgz#15c0fb812ea27c973c18d425099afa50b934b41b" + integrity sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA== + dependencies: + browserslist "^4.21.5" + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2481,10 +3393,10 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== diff@^4.0.1: version "4.0.2" @@ -2569,6 +3481,11 @@ electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== +electron-to-chromium@^1.4.284: + version "1.4.345" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.345.tgz#c90b7183b39245cddf0e990337469063bfced6f0" + integrity sha512-znGhOQK2TUYLICgS25uaM0a7pHy66rSxbre7l762vg9AUoCcJK+Bu+HCPWpjL/U/kK8/Hf+6E0szAUJSyVYb3Q== + emitter-listener@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" @@ -2576,10 +3493,10 @@ emitter-listener@1.1.2: dependencies: shimmer "^1.2.0" -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^8.0.0: version "8.0.0" @@ -2659,6 +3576,11 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -2701,16 +3623,16 @@ expand-tilde@^1.2.2: dependencies: os-homedir "^1.0.1" -expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== +expect@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" + integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + "@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" extend@~3.0.2: version "3.0.2" @@ -2737,7 +3659,7 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -3319,6 +4241,13 @@ is-core-module@^2.8.1: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3463,82 +4392,83 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== +jest-changed-files@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" + integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== +jest-circus@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" + integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" + 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" p-limit "^3.1.0" - pretty-format "^28.1.3" + pretty-format "^29.5.0" + pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^28.1.1: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== +jest-cli@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" + integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/core" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-config "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== +jest-config@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" + integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.3" - "@jest/types" "^28.1.3" - babel-jest "^28.1.3" + "@jest/test-sequencer" "^29.5.0" + "@jest/types" "^29.5.0" + babel-jest "^29.5.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 "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + 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" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -3552,82 +4482,102 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== +jest-diff@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" + integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== dependencies: chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== +jest-docblock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" + integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== dependencies: detect-newline "^3.0.0" -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== +jest-each@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" + integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.5.0" chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" + jest-get-type "^29.4.3" + jest-util "^29.5.0" + pretty-format "^29.5.0" -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== +jest-environment-node@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" + integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" + jest-mock "^29.5.0" + jest-util "^29.5.0" jest-get-type@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-haste-map@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" + integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== + dependencies: + "@jest/types" "^29.5.0" "@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 "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-regex-util "^29.4.3" + jest-util "^29.5.0" + jest-worker "^29.5.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== +jest-leak-detector@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" + integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" jest-matcher-utils@^27.0.0: version "27.5.1" @@ -3639,124 +4589,130 @@ jest-matcher-utils@^27.0.0: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== +jest-matcher-utils@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" + integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-diff "^29.5.0" + jest-get-type "^29.4.3" + pretty-format "^29.5.0" -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== +jest-message-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" + integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" + "@jest/types" "^29.5.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.3" + pretty-format "^29.5.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== +jest-mock@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" + integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.5.0" "@types/node" "*" + jest-util "^29.5.0" jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== +jest-regex-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" + integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== + +jest-resolve-dependencies@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" + integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" + jest-regex-util "^29.4.3" + jest-snapshot "^29.5.0" -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== +jest-resolve@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" + integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" + jest-haste-map "^29.5.0" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-util "^29.5.0" + jest-validate "^29.5.0" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== +jest-runner@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" + integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@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" "@types/node" "*" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" + 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" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== +jest-runtime@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" + integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@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" + "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" + 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" slash "^3.0.0" strip-bom "^4.0.0" @@ -3765,91 +4721,121 @@ jest-serial-runner@^1.2.1: resolved "https://registry.yarnpkg.com/jest-serial-runner/-/jest-serial-runner-1.2.1.tgz#0f5f8dbe6f077119bd1fdd7e8518f92353c194d5" integrity sha512-d59fF+7HdjNvQEL7B4WyFE+f8q5tGzlNUqtOnxTrT1ofun7O6/Lgm/j255BBgCY2fmSue/34M7Xy9+VWRByP0Q== -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" + integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== 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" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.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" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.3" + expect "^29.5.0" graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + 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" natural-compare "^1.4.0" - pretty-format "^28.1.3" + pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^28.0.0, jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== +jest-util@^29.0.0, jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.5.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" + integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== + dependencies: + "@jest/types" "^29.5.0" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^28.0.2" + jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^28.1.3" + pretty-format "^29.5.0" -jest-watcher@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== +jest-watcher@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" + integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" + emittery "^0.13.1" + jest-util "^29.5.0" string-length "^4.0.1" -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.1.tgz#3c39a3a09791e16e9ef283597d24ab19a0df701e" - integrity sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA== +jest-worker@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== dependencies: - "@jest/core" "^28.1.1" - "@jest/types" "^28.1.1" + "@types/node" "*" + jest-util "^29.5.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" + integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== + dependencies: + "@jest/core" "^29.5.0" + "@jest/types" "^29.5.0" import-local "^3.0.2" - jest-cli "^28.1.1" + jest-cli "^29.5.0" jmespath@0.15.0: version "0.15.0" @@ -3900,6 +4886,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" @@ -3925,6 +4916,11 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" @@ -4176,6 +5172,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -4256,6 +5257,13 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4546,6 +5554,11 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== + nodemon@2.0.16: version "2.0.16" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.16.tgz#d71b31bfdb226c25de34afea53486c8ef225fdef" @@ -5141,13 +6154,12 @@ pretty-format@^27.0.0, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== +pretty-format@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" + integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" + "@jest/schemas" "^29.4.3" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -5219,6 +6231,11 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" +pure-rand@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" + integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== + qs@^6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -5359,11 +6376,47 @@ redlock@4.2.0: dependencies: bluebird "^3.7.2" +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + 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" + registry-auth-token@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" @@ -5378,6 +6431,13 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + remove-trailing-slash@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz#be2285a59f39c74d1bce4f825950061915e3780d" @@ -5439,10 +6499,19 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.14.2: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" resolve@^1.20.0: version "1.22.0" @@ -5460,7 +6529,7 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -5526,7 +6595,7 @@ semver@^5.6.0, semver@^5.7.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -5793,7 +6862,7 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -5807,14 +6876,6 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -5863,14 +6924,6 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -5998,19 +7051,19 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -ts-jest@28.0.4: - version "28.0.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.4.tgz#0ab705a60fc4b9f3506f35e26edfa9e9c915c31b" - integrity sha512-S6uRDDdCJBvnZqyGjB4VCnwbQrbgdL8WPeP4jevVSpYsBaeGRQAIS08o3Svav2Ex+oXwLgJ/m7F24TNq62kA1A== +ts-jest@29.0.5: + version "29.0.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.5.tgz#c5557dcec8fe434fcb8b70c3e21c6b143bfce066" + integrity sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" - jest-util "^28.0.0" - json5 "^2.2.1" + jest-util "^29.0.0" + json5 "^2.2.3" lodash.memoize "4.x" make-error "1.x" semver "7.x" - yargs-parser "^20.x" + yargs-parser "^21.0.1" ts-node@10.8.1: version "10.8.1" @@ -6102,6 +7155,29 @@ undefsafe@^2.0.5: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -6119,7 +7195,7 @@ universalify@^0.2.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -update-browserslist-db@^1.0.9: +update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== @@ -6240,7 +7316,7 @@ vuvuzela@1.0.3: resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" integrity sha1-O+FF5YJxxzylUnndhR8SpoIRSws= -walker@^1.0.8: +walker@^1.0.7, walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== @@ -6320,7 +7396,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.1: +write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== @@ -6370,6 +7446,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -6380,12 +7461,7 @@ yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^20.x: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.1.1: +yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== From 24fc72657ddd6bff35fa3651ff9a406359d54da5 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 30 Mar 2023 16:35:25 +0100 Subject: [PATCH 04/37] Fixing all broken test cases after breaking out context fully from jestSetup/backend-core jest loading. --- packages/backend-core/src/auth/tests/auth.spec.ts | 2 +- .../src/cache/tests/writethrough.spec.ts | 7 ++----- .../backend-core/src/configs/tests/configs.spec.ts | 8 ++------ packages/backend-core/src/context/mainContext.ts | 2 +- .../backend-core/src/context/tests/index.spec.ts | 2 +- packages/backend-core/src/db/couch/DatabaseImpl.ts | 2 +- packages/backend-core/src/db/documents/index.ts | 2 -- packages/backend-core/src/db/index.ts | 2 +- packages/backend-core/src/db/tests/lucene.spec.ts | 2 +- packages/backend-core/src/db/tests/utils.spec.ts | 2 +- packages/backend-core/src/db/utils.ts | 12 ++++-------- .../backend-core/src/{db => docIds}/conversions.ts | 0 .../backend-core/src/{db/documents => docIds}/ids.ts | 4 ++-- packages/backend-core/src/docIds/index.ts | 2 ++ packages/backend-core/src/{ => docIds}/newid.ts | 0 .../src/{db/documents => docIds}/params.ts | 6 ++---- .../posthog/tests/PosthogProcessor.spec.ts | 2 +- .../src/middleware/passport/sso/tests/sso.spec.ts | 3 ++- .../src/migrations/tests/migrations.spec.ts | 2 +- .../src/objectStore/buckets/tests/app.spec.ts | 2 +- .../src/objectStore/buckets/tests/global.spec.ts | 2 +- .../src/objectStore/buckets/tests/plugins.spec.ts | 3 ++- .../backend-core/src/platform/tests/tenants.spec.ts | 3 ++- packages/backend-core/src/utils/hashing.ts | 2 +- packages/backend-core/src/utils/tests/utils.spec.ts | 3 ++- packages/backend-core/tests/core/index.ts | 1 - .../tests/core/utilities/mocks/events.ts | 2 +- .../backend-core/tests/core/utilities/mocks/fetch.ts | 9 ++++++++- .../backend-core/tests/core/utilities/mocks/index.ts | 4 ++-- .../tests/core/utilities/structures/accounts.ts | 2 +- .../tests/core/utilities/structures/apps.ts | 2 +- .../tests/core/utilities/structures/db.ts | 2 +- .../tests/core/utilities/structures/tenants.ts | 2 +- .../backend-core/tests/extra/DBTestConfiguration.ts | 4 ++-- packages/backend-core/tests/extra/index.ts | 2 +- packages/backend-core/tests/extra/testEnv.ts | 2 +- packages/backend-core/tests/index.ts | 1 + packages/backend-core/tests/{core => }/jestEnv.ts | 0 packages/backend-core/tests/{core => }/jestSetup.ts | 4 ++-- 39 files changed, 56 insertions(+), 58 deletions(-) delete mode 100644 packages/backend-core/src/db/documents/index.ts rename packages/backend-core/src/{db => docIds}/conversions.ts (100%) rename packages/backend-core/src/{db/documents => docIds}/ids.ts (98%) create mode 100644 packages/backend-core/src/docIds/index.ts rename packages/backend-core/src/{ => docIds}/newid.ts (100%) rename packages/backend-core/src/{db/documents => docIds}/params.ts (98%) delete mode 100644 packages/backend-core/tests/core/index.ts create mode 100644 packages/backend-core/tests/index.ts rename packages/backend-core/tests/{core => }/jestEnv.ts (100%) rename packages/backend-core/tests/{core => }/jestSetup.ts (87%) diff --git a/packages/backend-core/src/auth/tests/auth.spec.ts b/packages/backend-core/src/auth/tests/auth.spec.ts index 7cd393d862..3ae691be58 100644 --- a/packages/backend-core/src/auth/tests/auth.spec.ts +++ b/packages/backend-core/src/auth/tests/auth.spec.ts @@ -1,4 +1,4 @@ -import { structures } from "../../../tests/core" +import { structures } from "../../../tests" import { testEnv } from "../../../tests/extra" import * as auth from "../auth" import * as events from "../../events" diff --git a/packages/backend-core/src/cache/tests/writethrough.spec.ts b/packages/backend-core/src/cache/tests/writethrough.spec.ts index a34f05e881..b4ae4624f8 100644 --- a/packages/backend-core/src/cache/tests/writethrough.spec.ts +++ b/packages/backend-core/src/cache/tests/writethrough.spec.ts @@ -1,8 +1,5 @@ -import { - structures, - DBTestConfiguration, - expectFunctionWasCalledTimesWith, -} from "../../../tests" +import { structures, expectFunctionWasCalledTimesWith } from "../../../tests" +import { DBTestConfiguration } from "../../../tests/extra" import { Writethrough } from "../writethrough" import { getDB } from "../../db" import tk from "timekeeper" diff --git a/packages/backend-core/src/configs/tests/configs.spec.ts b/packages/backend-core/src/configs/tests/configs.spec.ts index 45e56a2581..2c6a1948ec 100644 --- a/packages/backend-core/src/configs/tests/configs.spec.ts +++ b/packages/backend-core/src/configs/tests/configs.spec.ts @@ -1,9 +1,5 @@ -import { - DBTestConfiguration, - generator, - testEnv, - structures, -} from "../../../tests" +import { generator, structures } from "../../../tests" +import { DBTestConfiguration, testEnv } from "../../../tests/extra" import { ConfigType } from "@budibase/types" import env from "../../environment" import * as configs from "../configs" diff --git a/packages/backend-core/src/context/mainContext.ts b/packages/backend-core/src/context/mainContext.ts index 02ba16aa8c..7e02e60133 100644 --- a/packages/backend-core/src/context/mainContext.ts +++ b/packages/backend-core/src/context/mainContext.ts @@ -2,7 +2,7 @@ // store an app ID to pretend there is a context import env from "../environment" import Context from "./Context" -import * as conversions from "../db/conversions" +import * as conversions from "../docIds/conversions" import { getDB } from "../db/db" import { DocumentType, diff --git a/packages/backend-core/src/context/tests/index.spec.ts b/packages/backend-core/src/context/tests/index.spec.ts index 5c8ce6fc19..df1f319cab 100644 --- a/packages/backend-core/src/context/tests/index.spec.ts +++ b/packages/backend-core/src/context/tests/index.spec.ts @@ -1,4 +1,4 @@ -import { testEnv } from "../../../tests" +import { testEnv } from "../../../tests/extra" const context = require("../") const { DEFAULT_TENANT_ID } = require("../../constants") diff --git a/packages/backend-core/src/db/couch/DatabaseImpl.ts b/packages/backend-core/src/db/couch/DatabaseImpl.ts index a3a398950b..94d78e94ff 100644 --- a/packages/backend-core/src/db/couch/DatabaseImpl.ts +++ b/packages/backend-core/src/db/couch/DatabaseImpl.ts @@ -15,7 +15,7 @@ import { getCouchInfo } from "./connections" import { directCouchCall } from "./utils" import { getPouchDB } from "./pouchDB" import { WriteStream, ReadStream } from "fs" -import { newid } from "../../newid" +import { newid } from "../../docIds/newid" function buildNano(couchInfo: { url: string; cookie: string }) { return Nano({ diff --git a/packages/backend-core/src/db/documents/index.ts b/packages/backend-core/src/db/documents/index.ts deleted file mode 100644 index efa3b1f3f8..0000000000 --- a/packages/backend-core/src/db/documents/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./ids" -export * from "./params" \ No newline at end of file diff --git a/packages/backend-core/src/db/index.ts b/packages/backend-core/src/db/index.ts index a569b17b36..7ac6b53323 100644 --- a/packages/backend-core/src/db/index.ts +++ b/packages/backend-core/src/db/index.ts @@ -2,7 +2,7 @@ export * from "./couch" export * from "./db" export * from "./utils" export * from "./views" -export * from "./conversions" +export * from "../docIds/conversions" export { default as Replication } from "./Replication" // exports to support old export structure export * from "../constants/db" diff --git a/packages/backend-core/src/db/tests/lucene.spec.ts b/packages/backend-core/src/db/tests/lucene.spec.ts index 52017cc94c..cedfc9ee56 100644 --- a/packages/backend-core/src/db/tests/lucene.spec.ts +++ b/packages/backend-core/src/db/tests/lucene.spec.ts @@ -1,4 +1,4 @@ -import { newid } from "../../newid" +import { newid } from "../../docIds/newid" import { getDB } from "../db" import { Database } from "@budibase/types" import { QueryBuilder, paginatedSearch, fullSearch } from "../lucene" diff --git a/packages/backend-core/src/db/tests/utils.spec.ts b/packages/backend-core/src/db/tests/utils.spec.ts index 138457c65e..d9cb09a791 100644 --- a/packages/backend-core/src/db/tests/utils.spec.ts +++ b/packages/backend-core/src/db/tests/utils.spec.ts @@ -3,7 +3,7 @@ import { getProdAppID, isDevAppID, isProdAppID, -} from "../conversions" +} from "../../docIds/conversions" import { generateAppID } from "../utils" describe("utils", () => { diff --git a/packages/backend-core/src/db/utils.ts b/packages/backend-core/src/db/utils.ts index ce1990451b..3c32d5709e 100644 --- a/packages/backend-core/src/db/utils.ts +++ b/packages/backend-core/src/db/utils.ts @@ -1,16 +1,12 @@ import env from "../environment" -import { - DEFAULT_TENANT_ID, - SEPARATOR, - DocumentType, -} from "../constants" +import { DEFAULT_TENANT_ID, SEPARATOR, DocumentType } from "../constants" import { getTenantId, getGlobalDBName } from "../context" import { doWithDB, directCouchAllDbs } from "./db" import { getAppMetadata } from "../cache/appMetadata" -import { isDevApp, isDevAppID, getProdAppID } from "./conversions" +import { isDevApp, isDevAppID, getProdAppID } from "../docIds/conversions" import { App, Database } from "@budibase/types" -import { getStartEndKeyURL } from "./documents" -export * from "./documents" +import { getStartEndKeyURL } from "../docIds" +export * from "../docIds" /** * if in production this will use the CouchDB _all_dbs call to retrieve a list of databases. If testing diff --git a/packages/backend-core/src/db/conversions.ts b/packages/backend-core/src/docIds/conversions.ts similarity index 100% rename from packages/backend-core/src/db/conversions.ts rename to packages/backend-core/src/docIds/conversions.ts diff --git a/packages/backend-core/src/db/documents/ids.ts b/packages/backend-core/src/docIds/ids.ts similarity index 98% rename from packages/backend-core/src/db/documents/ids.ts rename to packages/backend-core/src/docIds/ids.ts index 28196c5318..152977b3af 100644 --- a/packages/backend-core/src/db/documents/ids.ts +++ b/packages/backend-core/src/docIds/ids.ts @@ -3,8 +3,8 @@ import { DocumentType, InternalTable, SEPARATOR, -} from "../../constants" -import { newid } from "../../newid" +} from "../constants" +import { newid } from "./newid" /** * Generates a new app ID. diff --git a/packages/backend-core/src/docIds/index.ts b/packages/backend-core/src/docIds/index.ts new file mode 100644 index 0000000000..1d22b375be --- /dev/null +++ b/packages/backend-core/src/docIds/index.ts @@ -0,0 +1,2 @@ +export * from "./ids" +export * from "./params" diff --git a/packages/backend-core/src/newid.ts b/packages/backend-core/src/docIds/newid.ts similarity index 100% rename from packages/backend-core/src/newid.ts rename to packages/backend-core/src/docIds/newid.ts diff --git a/packages/backend-core/src/db/documents/params.ts b/packages/backend-core/src/docIds/params.ts similarity index 98% rename from packages/backend-core/src/db/documents/params.ts rename to packages/backend-core/src/docIds/params.ts index 2594daac56..5d563952f7 100644 --- a/packages/backend-core/src/db/documents/params.ts +++ b/packages/backend-core/src/docIds/params.ts @@ -4,8 +4,8 @@ import { SEPARATOR, UNICODE_MAX, ViewName, -} from "../../constants" -import { getProdAppID } from "../conversions" +} from "../constants" +import { getProdAppID } from "./conversions" /** * If creating DB allDocs/query params with only a single top level ID this can be used, this @@ -63,7 +63,6 @@ export function getQueryIndex(viewName: ViewName) { return `database/${viewName}` } - /** * Check if a given ID is that of a table. * @returns {boolean} @@ -122,7 +121,6 @@ export function getUserMetadataParams(userId?: string | null, otherProps = {}) { return getRowParams(InternalTable.USER_METADATA, userId, otherProps) } - export function getUsersByAppParams(appId: any, otherProps: any = {}) { const prodAppId = getProdAppID(appId) return { diff --git a/packages/backend-core/src/events/processors/posthog/tests/PosthogProcessor.spec.ts b/packages/backend-core/src/events/processors/posthog/tests/PosthogProcessor.spec.ts index 8df4e40bcf..0722fc3293 100644 --- a/packages/backend-core/src/events/processors/posthog/tests/PosthogProcessor.spec.ts +++ b/packages/backend-core/src/events/processors/posthog/tests/PosthogProcessor.spec.ts @@ -1,4 +1,4 @@ -import { testEnv } from "../../../../../tests" +import { testEnv } from "../../../../../tests/extra" import PosthogProcessor from "../PosthogProcessor" import { Event, IdentityType, Hosting } from "@budibase/types" const tk = require("timekeeper") diff --git a/packages/backend-core/src/middleware/passport/sso/tests/sso.spec.ts b/packages/backend-core/src/middleware/passport/sso/tests/sso.spec.ts index ae42fc01ea..484a118cbd 100644 --- a/packages/backend-core/src/middleware/passport/sso/tests/sso.spec.ts +++ b/packages/backend-core/src/middleware/passport/sso/tests/sso.spec.ts @@ -1,4 +1,5 @@ -import { structures, testEnv, mocks } from "../../../../../tests" +import { structures, mocks } from "../../../../../tests" +import { testEnv } from "../../../../../tests/extra" import { SSOAuthDetails, User } from "@budibase/types" import { HTTPError } from "../../../../errors" diff --git a/packages/backend-core/src/migrations/tests/migrations.spec.ts b/packages/backend-core/src/migrations/tests/migrations.spec.ts index c74ab816c1..af2eb33cf5 100644 --- a/packages/backend-core/src/migrations/tests/migrations.spec.ts +++ b/packages/backend-core/src/migrations/tests/migrations.spec.ts @@ -1,4 +1,4 @@ -import { testEnv, DBTestConfiguration } from "../../../tests" +import { testEnv, DBTestConfiguration } from "../../../tests/extra" import * as migrations from "../index" import * as context from "../../context" import { MigrationType } from "@budibase/types" diff --git a/packages/backend-core/src/objectStore/buckets/tests/app.spec.ts b/packages/backend-core/src/objectStore/buckets/tests/app.spec.ts index 0375e97cbc..aaa07ec9d3 100644 --- a/packages/backend-core/src/objectStore/buckets/tests/app.spec.ts +++ b/packages/backend-core/src/objectStore/buckets/tests/app.spec.ts @@ -1,6 +1,6 @@ import * as app from "../app" import { getAppFileUrl } from "../app" -import { testEnv } from "../../../../tests" +import { testEnv } from "../../../../tests/extra" describe("app", () => { beforeEach(() => { diff --git a/packages/backend-core/src/objectStore/buckets/tests/global.spec.ts b/packages/backend-core/src/objectStore/buckets/tests/global.spec.ts index b495812356..148a4c80bf 100644 --- a/packages/backend-core/src/objectStore/buckets/tests/global.spec.ts +++ b/packages/backend-core/src/objectStore/buckets/tests/global.spec.ts @@ -1,5 +1,5 @@ import * as global from "../global" -import { testEnv } from "../../../../tests" +import { testEnv } from "../../../../tests/extra" describe("global", () => { describe("getGlobalFileUrl", () => { diff --git a/packages/backend-core/src/objectStore/buckets/tests/plugins.spec.ts b/packages/backend-core/src/objectStore/buckets/tests/plugins.spec.ts index affb8d8318..fc2822314e 100644 --- a/packages/backend-core/src/objectStore/buckets/tests/plugins.spec.ts +++ b/packages/backend-core/src/objectStore/buckets/tests/plugins.spec.ts @@ -1,5 +1,6 @@ import * as plugins from "../plugins" -import { structures, testEnv } from "../../../../tests" +import { structures } from "../../../../tests" +import { testEnv } from "../../../../tests/extra" describe("plugins", () => { describe("enrichPluginURLs", () => { diff --git a/packages/backend-core/src/platform/tests/tenants.spec.ts b/packages/backend-core/src/platform/tests/tenants.spec.ts index 92e999cb2d..b2ab75c954 100644 --- a/packages/backend-core/src/platform/tests/tenants.spec.ts +++ b/packages/backend-core/src/platform/tests/tenants.spec.ts @@ -1,4 +1,5 @@ -import { DBTestConfiguration, structures } from "../../../tests" +import { structures } from "../../../tests" +import { DBTestConfiguration } from "../../../tests/extra" import * as tenants from "../tenants" describe("tenants", () => { diff --git a/packages/backend-core/src/utils/hashing.ts b/packages/backend-core/src/utils/hashing.ts index 220ffea47f..aba11f38e6 100644 --- a/packages/backend-core/src/utils/hashing.ts +++ b/packages/backend-core/src/utils/hashing.ts @@ -1,5 +1,5 @@ import env from "../environment" -export * from "../newid" +export * from "../docIds/newid" const bcrypt = env.JS_BCRYPT ? require("bcryptjs") : require("bcrypt") const SALT_ROUNDS = env.SALT_ROUNDS || 10 diff --git a/packages/backend-core/src/utils/tests/utils.spec.ts b/packages/backend-core/src/utils/tests/utils.spec.ts index 7d6c5561e8..ededa48628 100644 --- a/packages/backend-core/src/utils/tests/utils.spec.ts +++ b/packages/backend-core/src/utils/tests/utils.spec.ts @@ -1,4 +1,5 @@ -import { structures, DBTestConfiguration } from "../../../tests" +import { structures } from "../../../tests" +import { DBTestConfiguration } from "../../../tests/extra" import * as utils from "../../utils" import * as db from "../../db" import { Header } from "../../constants" diff --git a/packages/backend-core/tests/core/index.ts b/packages/backend-core/tests/core/index.ts deleted file mode 100644 index b23d52e6e0..0000000000 --- a/packages/backend-core/tests/core/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./utilities" diff --git a/packages/backend-core/tests/core/utilities/mocks/events.ts b/packages/backend-core/tests/core/utilities/mocks/events.ts index 306f7a6cd6..2ff5f380e6 100644 --- a/packages/backend-core/tests/core/utilities/mocks/events.ts +++ b/packages/backend-core/tests/core/utilities/mocks/events.ts @@ -1 +1 @@ -jest.mock("../../../src/events") +jest.mock("../../../../src/events") diff --git a/packages/backend-core/tests/core/utilities/mocks/fetch.ts b/packages/backend-core/tests/core/utilities/mocks/fetch.ts index eeb0ccda45..287280067a 100644 --- a/packages/backend-core/tests/core/utilities/mocks/fetch.ts +++ b/packages/backend-core/tests/core/utilities/mocks/fetch.ts @@ -1,4 +1,11 @@ -const mockFetch = jest.fn() +const mockFetch = jest.fn((url: any, opts: any) => { + const fetch = jest.requireActual("node-fetch") + const env = jest.requireActual("../../../../src/environment").default + if (url.includes(env.COUCH_DB_URL)) { + return fetch(url, opts) + } + return undefined +}) const enable = () => { jest.mock("node-fetch", () => mockFetch) diff --git a/packages/backend-core/tests/core/utilities/mocks/index.ts b/packages/backend-core/tests/core/utilities/mocks/index.ts index f5f45c0342..ea84d6b7a0 100644 --- a/packages/backend-core/tests/core/utilities/mocks/index.ts +++ b/packages/backend-core/tests/core/utilities/mocks/index.ts @@ -1,5 +1,5 @@ -jest.mock("../../../src/accounts") -import * as _accounts from "../../../src/accounts" +jest.mock("../../../../src/accounts") +import * as _accounts from "../../../../src/accounts" export const accounts = jest.mocked(_accounts) export * as date from "./date" diff --git a/packages/backend-core/tests/core/utilities/structures/accounts.ts b/packages/backend-core/tests/core/utilities/structures/accounts.ts index f4ad0b9ab6..30ef6e4192 100644 --- a/packages/backend-core/tests/core/utilities/structures/accounts.ts +++ b/packages/backend-core/tests/core/utilities/structures/accounts.ts @@ -1,5 +1,5 @@ import { generator, uuid } from "." -import { generateGlobalUserID } from "../../../src/db/documents" +import { generateGlobalUserID } from "../../../../src/docIds" import { Account, AccountSSOProvider, diff --git a/packages/backend-core/tests/core/utilities/structures/apps.ts b/packages/backend-core/tests/core/utilities/structures/apps.ts index f3743d99b2..812d6d8177 100644 --- a/packages/backend-core/tests/core/utilities/structures/apps.ts +++ b/packages/backend-core/tests/core/utilities/structures/apps.ts @@ -1,6 +1,6 @@ import { generator } from "." import { App } from "@budibase/types" -import { DEFAULT_TENANT_ID, DocumentType } from "../../../src/constants" +import { DEFAULT_TENANT_ID, DocumentType } from "../../../../src/constants" export function app(id: string): App { return { diff --git a/packages/backend-core/tests/core/utilities/structures/db.ts b/packages/backend-core/tests/core/utilities/structures/db.ts index f4a677e777..31a52dce8b 100644 --- a/packages/backend-core/tests/core/utilities/structures/db.ts +++ b/packages/backend-core/tests/core/utilities/structures/db.ts @@ -1,5 +1,5 @@ import { structures } from ".." -import { newid } from "../../../src/newid" +import { newid } from "../../../../src/docIds/newid" export function id() { return `db_${newid()}` diff --git a/packages/backend-core/tests/core/utilities/structures/tenants.ts b/packages/backend-core/tests/core/utilities/structures/tenants.ts index b23bc8be75..ec2e67109b 100644 --- a/packages/backend-core/tests/core/utilities/structures/tenants.ts +++ b/packages/backend-core/tests/core/utilities/structures/tenants.ts @@ -1,4 +1,4 @@ -import { newid } from "../../../src/newid" +import { newid } from "../../../../src/docIds/newid" export function id() { return `tenant-${newid()}` diff --git a/packages/backend-core/tests/extra/DBTestConfiguration.ts b/packages/backend-core/tests/extra/DBTestConfiguration.ts index e5e57a99a3..a2550a6e24 100644 --- a/packages/backend-core/tests/extra/DBTestConfiguration.ts +++ b/packages/backend-core/tests/extra/DBTestConfiguration.ts @@ -1,5 +1,5 @@ -import "./mocks" -import * as structures from "./structures" +import "../core/utilities/mocks" +import * as structures from "../core/utilities/structures" import * as testEnv from "./testEnv" import * as context from "../../src/context" diff --git a/packages/backend-core/tests/extra/index.ts b/packages/backend-core/tests/extra/index.ts index bf4cc7c7f7..b5d734090c 100644 --- a/packages/backend-core/tests/extra/index.ts +++ b/packages/backend-core/tests/extra/index.ts @@ -1,2 +1,2 @@ export * as testEnv from "./testEnv" -export * as DBTestConfiguration from "./DBTestConfiguration" +export { default as DBTestConfiguration } from "./DBTestConfiguration" diff --git a/packages/backend-core/tests/extra/testEnv.ts b/packages/backend-core/tests/extra/testEnv.ts index df07f96c25..2b9628e44d 100644 --- a/packages/backend-core/tests/extra/testEnv.ts +++ b/packages/backend-core/tests/extra/testEnv.ts @@ -1,6 +1,6 @@ import env from "../../src/environment" import * as context from "../../src/context" -import * as structures from "../core" +import * as structures from "../core/utilities/structures" // TENANCY diff --git a/packages/backend-core/tests/index.ts b/packages/backend-core/tests/index.ts new file mode 100644 index 0000000000..50fc1dc431 --- /dev/null +++ b/packages/backend-core/tests/index.ts @@ -0,0 +1 @@ +export * from "./core/utilities" diff --git a/packages/backend-core/tests/core/jestEnv.ts b/packages/backend-core/tests/jestEnv.ts similarity index 100% rename from packages/backend-core/tests/core/jestEnv.ts rename to packages/backend-core/tests/jestEnv.ts diff --git a/packages/backend-core/tests/core/jestSetup.ts b/packages/backend-core/tests/jestSetup.ts similarity index 87% rename from packages/backend-core/tests/core/jestSetup.ts rename to packages/backend-core/tests/jestSetup.ts index be81fbff75..42a24ce733 100644 --- a/packages/backend-core/tests/core/jestSetup.ts +++ b/packages/backend-core/tests/jestSetup.ts @@ -1,7 +1,7 @@ -import "./logging" +import "./core/logging" import env from "../src/environment" import { cleanup } from "../src/timers" -import { mocks, testContainerUtils } from "./utilities" +import { mocks, testContainerUtils } from "./core/utilities" // must explicitly enable fetch mock mocks.fetch.enable() From d03b27f79f5bc35aa70152587238f93b30c43232 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Thu, 30 Mar 2023 17:08:18 +0100 Subject: [PATCH 05/37] first 2 tests passing --- packages/backend-core/src/tenancy/tests/tenancy.spec.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 9d67b677c4..c6f4a9b212 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -15,11 +15,16 @@ describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL query string", () => { const url = "https://budibase.com?var=test" - const expectedUrl = "https://budibase.com?var=test&tenantId=default" + const expectedUrl = "https://budibase.com?var=test&tenantId=budibase" expect(addTenantToUrl(url)).toEqual(expectedUrl) }) it("should not append tenantId parameter to the URL if isMultiTenant is false", () => { + // mock the `isMultiTenant` function to return false + jest.mock("../../src/context", () => ({ + isMultiTenant: jest.fn(() => false), + })) + const url = "https://budibase.com" const expectedUrl = "https://budibase.com" expect(addTenantToUrl(url)).toEqual(expectedUrl) From b19df9da22ac8975a247eec0eaa7b95179be04a5 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 30 Mar 2023 17:15:49 +0100 Subject: [PATCH 06/37] Some final updates to get event spyOn working again. --- .../tests/core/utilities/mocks/events.ts | 124 +++++++++++++++++- .../tests/core/utilities/mocks/index.ts | 2 +- .../server/src/api/routes/tests/user.spec.js | 2 +- .../usageQuotas/tests/syncRows.spec.ts | 4 +- 4 files changed, 127 insertions(+), 5 deletions(-) diff --git a/packages/backend-core/tests/core/utilities/mocks/events.ts b/packages/backend-core/tests/core/utilities/mocks/events.ts index 2ff5f380e6..17e35a5d0c 100644 --- a/packages/backend-core/tests/core/utilities/mocks/events.ts +++ b/packages/backend-core/tests/core/utilities/mocks/events.ts @@ -1 +1,123 @@ -jest.mock("../../../../src/events") +beforeAll(async () => { + const processors = await import("../../../../src/events/processors") + const events = await import("../../../../src/events") + jest.spyOn(processors.analyticsProcessor, "processEvent") + + jest.spyOn(events.identification, "identifyTenantGroup") + jest.spyOn(events.identification, "identifyUser") + + jest.spyOn(events.backfill, "appSucceeded") + jest.spyOn(events.backfill, "tenantSucceeded") + + jest.spyOn(events.account, "created") + jest.spyOn(events.account, "deleted") + jest.spyOn(events.account, "verified") + + jest.spyOn(events.app, "created") + jest.spyOn(events.app, "updated") + jest.spyOn(events.app, "deleted") + jest.spyOn(events.app, "published") + jest.spyOn(events.app, "unpublished") + jest.spyOn(events.app, "templateImported") + jest.spyOn(events.app, "fileImported") + jest.spyOn(events.app, "versionUpdated") + jest.spyOn(events.app, "versionReverted") + jest.spyOn(events.app, "reverted") + jest.spyOn(events.app, "exported") + + jest.spyOn(events.auth, "login") + jest.spyOn(events.auth, "logout") + jest.spyOn(events.auth, "SSOCreated") + jest.spyOn(events.auth, "SSOUpdated") + jest.spyOn(events.auth, "SSOActivated") + jest.spyOn(events.auth, "SSODeactivated") + + jest.spyOn(events.automation, "created") + jest.spyOn(events.automation, "deleted") + jest.spyOn(events.automation, "tested") + jest.spyOn(events.automation, "stepCreated") + jest.spyOn(events.automation, "stepDeleted") + jest.spyOn(events.automation, "triggerUpdated") + + jest.spyOn(events.datasource, "created") + jest.spyOn(events.datasource, "updated") + jest.spyOn(events.datasource, "deleted") + + jest.spyOn(events.email, "SMTPCreated") + jest.spyOn(events.email, "SMTPUpdated") + + jest.spyOn(events.layout, "created") + jest.spyOn(events.layout, "deleted") + + jest.spyOn(events.org, "nameUpdated") + jest.spyOn(events.org, "logoUpdated") + jest.spyOn(events.org, "platformURLUpdated") + jest.spyOn(events.org, "analyticsOptOut") + + jest.spyOn(events.installation, "versionChecked") + + jest.spyOn(events.query, "created") + jest.spyOn(events.query, "updated") + jest.spyOn(events.query, "deleted") + jest.spyOn(events.query, "imported") + jest.spyOn(events.query, "previewed") + + jest.spyOn(events.role, "created") + jest.spyOn(events.role, "updated") + jest.spyOn(events.role, "deleted") + jest.spyOn(events.role, "assigned") + jest.spyOn(events.role, "unassigned") + + jest.spyOn(events.rows, "imported") + jest.spyOn(events.rows, "created") + + jest.spyOn(events.screen, "created") + jest.spyOn(events.screen, "deleted") + + jest.spyOn(events.user, "created") + jest.spyOn(events.user, "updated") + jest.spyOn(events.user, "deleted") + jest.spyOn(events.user, "permissionAdminAssigned") + jest.spyOn(events.user, "permissionAdminRemoved") + jest.spyOn(events.user, "permissionBuilderAssigned") + jest.spyOn(events.user, "permissionBuilderRemoved") + jest.spyOn(events.user, "invited") + jest.spyOn(events.user, "inviteAccepted") + jest.spyOn(events.user, "passwordForceReset") + jest.spyOn(events.user, "passwordUpdated") + jest.spyOn(events.user, "passwordResetRequested") + jest.spyOn(events.user, "passwordReset") + + jest.spyOn(events.group, "created") + jest.spyOn(events.group, "updated") + jest.spyOn(events.group, "deleted") + jest.spyOn(events.group, "usersAdded") + jest.spyOn(events.group, "usersDeleted") + jest.spyOn(events.group, "createdOnboarding") + jest.spyOn(events.group, "permissionsEdited") + + jest.spyOn(events.serve, "servedBuilder") + jest.spyOn(events.serve, "servedApp") + jest.spyOn(events.serve, "servedAppPreview") + + jest.spyOn(events.table, "created") + jest.spyOn(events.table, "updated") + jest.spyOn(events.table, "deleted") + jest.spyOn(events.table, "exported") + jest.spyOn(events.table, "imported") + + jest.spyOn(events.view, "created") + jest.spyOn(events.view, "updated") + jest.spyOn(events.view, "deleted") + jest.spyOn(events.view, "exported") + jest.spyOn(events.view, "filterCreated") + jest.spyOn(events.view, "filterUpdated") + jest.spyOn(events.view, "filterDeleted") + jest.spyOn(events.view, "calculationCreated") + jest.spyOn(events.view, "calculationUpdated") + jest.spyOn(events.view, "calculationDeleted") + + jest.spyOn(events.plugin, "init") + jest.spyOn(events.plugin, "imported") + jest.spyOn(events.plugin, "deleted") +}) diff --git a/packages/backend-core/tests/core/utilities/mocks/index.ts b/packages/backend-core/tests/core/utilities/mocks/index.ts index ea84d6b7a0..c0d1904bfc 100644 --- a/packages/backend-core/tests/core/utilities/mocks/index.ts +++ b/packages/backend-core/tests/core/utilities/mocks/index.ts @@ -5,5 +5,5 @@ export const accounts = jest.mocked(_accounts) export * as date from "./date" export * as licenses from "./licenses" export { default as fetch } from "./fetch" -import "./posthog" import "./events" +import "./posthog" diff --git a/packages/server/src/api/routes/tests/user.spec.js b/packages/server/src/api/routes/tests/user.spec.js index 6b674a8479..dfa7805bae 100644 --- a/packages/server/src/api/routes/tests/user.spec.js +++ b/packages/server/src/api/routes/tests/user.spec.js @@ -55,7 +55,7 @@ describe("/users", () => { describe("update", () => { it("should be able to update the user", async () => { - const user = await config.createUser({ id: `us_update${Math.random()}` }) + const user = await config.createUser({ id: `us_update${Math.random() * Math.random()}` }) user.roleId = BUILTIN_ROLE_IDS.BASIC const res = await request .put(`/api/users/metadata`) diff --git a/packages/server/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts b/packages/server/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts index 51f6c2d301..fc0f9e1aa9 100644 --- a/packages/server/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +++ b/packages/server/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts @@ -24,7 +24,7 @@ describe("syncRows", () => { // app 1 const app1 = config.app - await context.doInAppContext(app1.appId, async () => { + await context.doInAppContext(app1!.appId, async () => { await config.createTable() await config.createRow() }) @@ -43,7 +43,7 @@ describe("syncRows", () => { usageDoc = await quotas.getQuotaUsage() expect(usageDoc.usageQuota.rows).toEqual(3) expect( - usageDoc.apps?.[dbCore.getProdAppID(app1.appId)].usageQuota.rows + usageDoc.apps?.[dbCore.getProdAppID(app1!.appId)].usageQuota.rows ).toEqual(1) expect( usageDoc.apps?.[dbCore.getProdAppID(app2.appId)].usageQuota.rows From 6404f07cfe5b8ef0b462ab7e2e710a3eeefe8e43 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Thu, 30 Mar 2023 17:27:13 +0100 Subject: [PATCH 07/37] first tenancy tests working --- packages/backend-core/src/context/mainContext.ts | 2 +- .../backend-core/src/tenancy/tests/tenancy.spec.ts | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/backend-core/src/context/mainContext.ts b/packages/backend-core/src/context/mainContext.ts index 7e02e60133..550d033073 100644 --- a/packages/backend-core/src/context/mainContext.ts +++ b/packages/backend-core/src/context/mainContext.ts @@ -44,7 +44,7 @@ export function baseGlobalDBName(tenantId: string | undefined | null) { } export function isMultiTenant() { - return env.MULTI_TENANCY + return !!env.MULTI_TENANCY } export function isTenantIdSet() { diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index c6f4a9b212..1d98f760c8 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -5,7 +5,10 @@ jest.mock("../../context", () => ({ })) import { addTenantToUrl } from "../" - +import { isMultiTenant } from "../../context" +const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< + typeof isMultiTenant +> describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL", () => { const url = "https://budibase.com" @@ -21,9 +24,8 @@ describe("addTenantToUrl", () => { it("should not append tenantId parameter to the URL if isMultiTenant is false", () => { // mock the `isMultiTenant` function to return false - jest.mock("../../src/context", () => ({ - isMultiTenant: jest.fn(() => false), - })) + + mockedIsMultiTenant.mockImplementation(() => false) const url = "https://budibase.com" const expectedUrl = "https://budibase.com" From e6ac534fca658caadf9c413bcc017d9d3e87378c Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Fri, 31 Mar 2023 15:07:28 +0100 Subject: [PATCH 08/37] isUserInAppTenant tests working --- .../src/tenancy/tests/tenancy.spec.ts | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 1d98f760c8..f6dda3037f 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -4,11 +4,14 @@ jest.mock("../../context", () => ({ isMultiTenant: jest.fn(() => true), })) -import { addTenantToUrl } from "../" -import { isMultiTenant } from "../../context" +import { addTenantToUrl, isUserInAppTenant, getTenantIDFromCtx } from "../" +import { isMultiTenant, getTenantIDFromAppID } from "../../context" const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< typeof isMultiTenant > +const mockedGetTenantIDFromAppID = getTenantIDFromAppID as jest.MockedFunction< + typeof getTenantIDFromAppID +> describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL", () => { const url = "https://budibase.com" @@ -32,3 +35,38 @@ describe("addTenantToUrl", () => { expect(addTenantToUrl(url)).toEqual(expectedUrl) }) }) + +jest.mock("../../context", () => ({ + getTenantId: jest.fn(() => "budibase"), + getTenantIDFromAppID: jest.fn(() => "budibase"), +})) +describe("isUserInAppTenant", () => { + const mockUser = { tenantId: "budibase" } + + it("returns true if user tenant ID matches app tenant ID", () => { + const appId = "app-budibase" + const result = isUserInAppTenant(appId, mockUser) + expect(result).toBe(true) + }) + + it("uses default tenant ID if user is not provided", () => { + const appId = "app-budibase" + const result = isUserInAppTenant(appId) + expect(result).toBe(true) + }) + + it("uses default tenant ID if app tenant ID is not found", () => { + const appId = "not-budibase-app" + const result = isUserInAppTenant(appId, mockUser) + expect(result).toBe(true) + }) + + it("returns false if user tenant ID does not match app tenant ID", () => { + const appId = "app-budibase" + mockedGetTenantIDFromAppID.mockImplementation(() => "not-budibase") + const result = isUserInAppTenant(appId, mockUser) + expect(result).toBe(false) + }) +}) + +describe("getTenantIDFromCtx", () => {}) From b6fd3b7cf77ea26f9c80556a0b7d16fa9658963a Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Mon, 3 Apr 2023 11:28:20 +0100 Subject: [PATCH 09/37] primary tests cases --- .../src/security/tests/encryption.spec.ts | 32 +++++++ .../src/security/tests/permissions.spec.ts | 84 ++++++++++++++++ .../src/security/tests/roles.spec.ts | 33 +++++++ .../src/tenancy/tests/tenancy.spec.ts | 95 ++++++++++++++++++- 4 files changed, 243 insertions(+), 1 deletion(-) create mode 100644 packages/backend-core/src/security/tests/encryption.spec.ts create mode 100644 packages/backend-core/src/security/tests/permissions.spec.ts create mode 100644 packages/backend-core/src/security/tests/roles.spec.ts diff --git a/packages/backend-core/src/security/tests/encryption.spec.ts b/packages/backend-core/src/security/tests/encryption.spec.ts new file mode 100644 index 0000000000..d48f73a87e --- /dev/null +++ b/packages/backend-core/src/security/tests/encryption.spec.ts @@ -0,0 +1,32 @@ +import { encrypt, decrypt, SecretOption, getSecret } from "../encryption" +jest.mock("../../environment", () => ({ + API_ENCRYPTION_KEY: "mock-api-encryption-key", + ENCRYPTION_KEY: "mock-encryption-key", +})) +describe("encryption", () => { + const plaintext = "budibase" + const apiEncrypted = encrypt(plaintext, SecretOption.API) + const encryptionEncrypted = encrypt(plaintext, SecretOption.ENCRYPTION) + + it("should encrypt and decrypt a string using API encryption key", () => { + const decrypted = decrypt(apiEncrypted, SecretOption.API) + expect(decrypted).toEqual(plaintext) + }) + + it("should encrypt and decrypt a string using encryption key", () => { + const decrypted = decrypt(encryptionEncrypted, SecretOption.ENCRYPTION) + expect(decrypted).toEqual(plaintext) + }) + + it("should throw an error if encryption key is not set", () => { + expect(() => getSecret(SecretOption.ENCRYPTION)).toThrow( + 'Secret "ENCRYPTION_KEY" has not been set in environment.' + ) + }) + + it("should throw an error if API encryption key is not set", () => { + expect(() => getSecret(SecretOption.API)).toThrow( + 'Secret "API_ENCRYPTION_KEY" has not been set in environment.' + ) + }) +}) diff --git a/packages/backend-core/src/security/tests/permissions.spec.ts b/packages/backend-core/src/security/tests/permissions.spec.ts new file mode 100644 index 0000000000..bf13c11ee0 --- /dev/null +++ b/packages/backend-core/src/security/tests/permissions.spec.ts @@ -0,0 +1,84 @@ +import { + getBuiltinPermissions, + getBuiltinPermissionByID, + doesHaveBasePermission, + isPermissionLevelHigherThanRead, +} from "./permissions" + +describe("getBuiltinPermissions", () => { + it("should return a deep clone of BUILTIN_PERMISSIONS", () => { + const permissions = getBuiltinPermissions() + expect(permissions).toEqual(BUILTIN_PERMISSIONS) + expect(permissions).not.toBe(BUILTIN_PERMISSIONS) + }) +}) + +describe("getBuiltinPermissionByID", () => { + it("should return the correct permission object", () => { + const id = "123" + const permission = { _id: id, name: "Test Permission" } + const permissions = { "0": permission } + expect(getBuiltinPermissionByID(id)).toEqual(permission) + expect(getBuiltinPermissionByID("456")).toBeUndefined() + }) +}) + +describe("doesHaveBasePermission", () => { + it("should return true if base permission has the required level", () => { + const permType = "someType" + const permLevel = "write" + const rolesHierarchy = [ + { roleId: "role1", permissionId: "permission1" }, + { roleId: "role2", permissionId: "permission2" }, + ] + const permissions = [{ type: permType, level: permLevel }] + const builtinPermissions = { + permission1: { _id: "permission1", permissions: permissions }, + permission2: { _id: "permission2", permissions: [] }, + permission3: { _id: "permission3", permissions: [] }, + } + expect( + doesHaveBasePermission( + permType, + permLevel, + rolesHierarchy, + builtinPermissions + ) + ).toBeTruthy() + }) + + it("should return false if base permission does not have the required level", () => { + const permType = "someType" + const permLevel = "write" + const rolesHierarchy = [ + { roleId: "role1", permissionId: "permission1" }, + { roleId: "role2", permissionId: "permission2" }, + ] + const permissions = [{ type: permType, level: "read" }] + const builtinPermissions = { + permission1: { _id: "permission1", permissions: permissions }, + permission2: { _id: "permission2", permissions: [] }, + permission3: { _id: "permission3", permissions: [] }, + } + expect( + doesHaveBasePermission( + permType, + permLevel, + rolesHierarchy, + builtinPermissions + ) + ).toBeFalsy() + }) +}) + +describe("isPermissionLevelHigherThanRead", () => { + it("should return true if level is higher than read", () => { + expect(isPermissionLevelHigherThanRead("write")).toBeTruthy() + expect(isPermissionLevelHigherThanRead("admin")).toBeTruthy() + }) + + it("should return false if level is read or lower", () => { + expect(isPermissionLevelHigherThanRead("read")).toBeFalsy() + expect(isPermissionLevelHigherThanRead("none")).toBeFalsy() + }) +}) diff --git a/packages/backend-core/src/security/tests/roles.spec.ts b/packages/backend-core/src/security/tests/roles.spec.ts new file mode 100644 index 0000000000..a5fcb5098b --- /dev/null +++ b/packages/backend-core/src/security/tests/roles.spec.ts @@ -0,0 +1,33 @@ +import { PermissionLevel } from "../permissions" +import { Role, getBuiltinRoles } from "../roles" + +describe("Role", () => { + describe("constructor", () => { + test("it should initialize _id, name, and permissionId", () => { + const role = new Role("my-role", "My Role", PermissionLevel.READ) + expect(role._id).toEqual("my-role") + expect(role.name).toEqual("My Role") + expect(role.permissionId).toEqual(PermissionLevel.READ) + }) + }) + + describe("addInheritance", () => { + test("it should add the inheritance property to the role", () => { + const role = new Role("my-role", "My Role", PermissionLevel.READ) + const newRole = role.addInheritance("other-role") + expect(newRole).toEqual(role) + expect(role.inherits).toEqual("other-role") + }) + }) + + describe("getBuiltinRoles", () => { + test("it should return an object of builtin roles", () => { + const builtinRoles = getBuiltinRoles() + expect(builtinRoles).toHaveProperty("ADMIN") + expect(builtinRoles).toHaveProperty("POWER") + expect(builtinRoles).toHaveProperty("BASIC") + expect(builtinRoles).toHaveProperty("PUBLIC") + expect(builtinRoles).not.toHaveProperty("BUILDER") + }) + }) +}) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index f6dda3037f..3f249d5164 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -69,4 +69,97 @@ describe("isUserInAppTenant", () => { }) }) -describe("getTenantIDFromCtx", () => {}) +const mockCtx = { + user: { tenantId: "123" }, + request: { + headers: { "X-Tenant-ID": "456" }, + query: { tenantId: "789" }, + }, + host: "tenant.budibase.app", + originalUrl: "/tenant/123", + matched: [ + { + paramNames: [{ name: "tenantId" }], + params: (url: any, captures: any, ctx: any) => ({ tenantId: "456" }), + }, + ], +} +const mockOpts = { + allowNoTenant: false, + includeStrategies: ["USER", "HEADER", "QUERY", "SUBDOMAIN", "PATH"], + excludeStrategies: ["QUERY"], +} +// mock the `getTenantId` and `isMultiTenant` functions +jest.mock("../../context", () => ({ + isMultiTenant: jest.fn(() => true), +})) +describe("getTenantIDFromCtx", () => { + describe("when isMultiTenant() returns true", () => { + beforeEach(() => { + jest.spyOn(global, "isMultiTenant").mockReturnValue(true) + }) + + afterEach(() => { + jest.restoreAllMocks() + }) + + describe("when tenant can be found", () => { + it("returns the tenant ID from the user object", () => { + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("123") + }) + + it("returns the tenant ID from the header", () => { + mockCtx.user = null + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("456") + }) + + it("returns the tenant ID from the query param", () => { + mockCtx.user = null + mockCtx.request.headers = {} + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("789") + }) + + it("returns the tenant ID from the subdomain", () => { + mockCtx.user = null + mockCtx.request.headers = {} + mockCtx.request.query = {} + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("tenant") + }) + + it("returns the tenant ID from the path", () => { + mockCtx.user = null + mockCtx.request.headers = {} + mockCtx.request.query = {} + mockCtx.host = "budibase.app" + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("123") + }) + }) + + describe("when tenant cannot be found", () => { + it("throws a 403 error if allowNoTenant is false", () => { + mockCtx.user = null + mockCtx.request.headers = {} + mockCtx.request.query = {} + mockCtx.host = "budibase.app" + mockOpts.allowNoTenant = false + expect(() => getTenantIDFromCtx(mockCtx, mockOpts)).toThrowError( + "Tenant id not set" + ) + }) + + it("returns null if allowNoTenant is true", () => { + mockCtx.user = null + mockCtx.request.headers = {} + mockCtx.request.query = {} + mockCtx.host = "budibase.app" + mockOpts.allowNoTenant = true + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toBeNull() + }) + }) + }) + + it("returns the default tenant ID when isMultiTenant() returns false", () => { + mockedIsMultiTenant.mockImplementation(() => false) + expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("default") + }) +}) From 6bd950717cb7d7cf38231a00b67072ef6bd348ff Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Wed, 5 Apr 2023 14:14:55 +0100 Subject: [PATCH 10/37] mocked correctly --- .../src/tenancy/tests/tenancy.spec.ts | 153 +++++++++--------- 1 file changed, 76 insertions(+), 77 deletions(-) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 3f249d5164..9608580522 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -4,8 +4,11 @@ jest.mock("../../context", () => ({ isMultiTenant: jest.fn(() => true), })) +import { TenantResolutionStrategy } from "@budibase/types" import { addTenantToUrl, isUserInAppTenant, getTenantIDFromCtx } from "../" import { isMultiTenant, getTenantIDFromAppID } from "../../context" +import { any } from "joi" +import { DEFAULT_TENANT_ID } from "../../../src/constants/misc" const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< typeof isMultiTenant > @@ -26,8 +29,6 @@ describe("addTenantToUrl", () => { }) it("should not append tenantId parameter to the URL if isMultiTenant is false", () => { - // mock the `isMultiTenant` function to return false - mockedIsMultiTenant.mockImplementation(() => false) const url = "https://budibase.com" @@ -69,97 +70,95 @@ describe("isUserInAppTenant", () => { }) }) -const mockCtx = { - user: { tenantId: "123" }, - request: { - headers: { "X-Tenant-ID": "456" }, - query: { tenantId: "789" }, - }, - host: "tenant.budibase.app", - originalUrl: "/tenant/123", - matched: [ - { - paramNames: [{ name: "tenantId" }], - params: (url: any, captures: any, ctx: any) => ({ tenantId: "456" }), - }, - ], -} -const mockOpts = { - allowNoTenant: false, - includeStrategies: ["USER", "HEADER", "QUERY", "SUBDOMAIN", "PATH"], - excludeStrategies: ["QUERY"], -} +let mockOpts: any = {} // mock the `getTenantId` and `isMultiTenant` functions jest.mock("../../context", () => ({ isMultiTenant: jest.fn(() => true), })) + +jest.mock("../../../src/constants/misc", () => ({ + DEFAULT_TENANT_ID: "default", +})) + +function createCtx(opts: { + originalUrl?: string + headers?: string[] + qsTenantId?: string + userTenantId?: string +}) { + const createdCtx: any = { + originalUrl: opts.originalUrl || "budibase.com", + matched: [{ name: "name" }], + throw: jest.fn(), + request: { headers: {} }, + } + if (opts.headers) { + createdCtx.request.headers = opts.headers + } + if (opts.qsTenantId) { + createdCtx.request.query = { tenantId: opts.qsTenantId } + } + if (opts.userTenantId) { + createdCtx.user = { tenantId: opts.userTenantId } + } + + return createdCtx as any +} describe("getTenantIDFromCtx", () => { - describe("when isMultiTenant() returns true", () => { - beforeEach(() => { - jest.spyOn(global, "isMultiTenant").mockReturnValue(true) + describe("when tenant can be found", () => { + it("returns the tenant ID from the user object", () => { + const ctx = createCtx({ userTenantId: "budibase" }) + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) - afterEach(() => { - jest.restoreAllMocks() + it("returns the tenant ID from the header", () => { + const ctx = createCtx({ headers: ["TENANT_ID:budibase"] }) + mockOpts = { includeStrategies: [TenantResolutionStrategy.HEADERS] } + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) - describe("when tenant can be found", () => { - it("returns the tenant ID from the user object", () => { - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("123") - }) - - it("returns the tenant ID from the header", () => { - mockCtx.user = null - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("456") - }) - - it("returns the tenant ID from the query param", () => { - mockCtx.user = null - mockCtx.request.headers = {} - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("789") - }) - - it("returns the tenant ID from the subdomain", () => { - mockCtx.user = null - mockCtx.request.headers = {} - mockCtx.request.query = {} - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("tenant") - }) - - it("returns the tenant ID from the path", () => { - mockCtx.user = null - mockCtx.request.headers = {} - mockCtx.request.query = {} - mockCtx.host = "budibase.app" - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("123") - }) + it("returns the tenant ID from the query param", () => { + const ctx = createCtx({ qsTenantId: "budibase" }) + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) - describe("when tenant cannot be found", () => { - it("throws a 403 error if allowNoTenant is false", () => { - mockCtx.user = null - mockCtx.request.headers = {} - mockCtx.request.query = {} - mockCtx.host = "budibase.app" - mockOpts.allowNoTenant = false - expect(() => getTenantIDFromCtx(mockCtx, mockOpts)).toThrowError( - "Tenant id not set" - ) - }) + it("returns the tenant ID from the subdomain", () => { + const ctx = createCtx({ host: "bb" }) + mockOpts = { includeStrategies: [TenantResolutionStrategy.SUBDOMAIN] } + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("bb") + }) - it("returns null if allowNoTenant is true", () => { - mockCtx.user = null - mockCtx.request.headers = {} - mockCtx.request.query = {} - mockCtx.host = "budibase.app" - mockOpts.allowNoTenant = true - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toBeNull() - }) + it("returns the tenant ID from the path", () => { + const ctx = createCtx({ host: "bb" }) + mockOpts = { includeStrategies: [TenantResolutionStrategy.PATH] } + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("123") + }) + }) + + describe("when tenant cannot be found", () => { + it("throws a 403 error if allowNoTenant is false", () => { + mockCtx.user = null + mockCtx.request.headers = {} + mockCtx.request.query = {} + mockCtx.host = "budibase.app" + mockOpts.allowNoTenant = false + expect(() => getTenantIDFromCtx(mockCtx, mockOpts)).toThrowError( + "Tenant id not set" + ) + }) + + it("returns null if allowNoTenant is true", () => { + mockedIsMultiTenant.mockImplementation(() => false) + const ctx = createCtx({}) + mockOpts = { allowNoTenant: true } + console.log(mockOpts) + expect(getTenantIDFromCtx(ctx, mockOpts)).toBeNull() }) }) it("returns the default tenant ID when isMultiTenant() returns false", () => { mockedIsMultiTenant.mockImplementation(() => false) - expect(getTenantIDFromCtx(mockCtx, mockOpts)).toEqual("default") + const ctx = createCtx({}) + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("default") }) }) From b0df710a2a00259aade9d4b0ba2e5d75fd79642b Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Wed, 5 Apr 2023 16:13:39 +0100 Subject: [PATCH 11/37] tweaks on some tests --- .../src/tenancy/tests/tenancy.spec.ts | 53 ++++++++++++------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 9608580522..7323934bb3 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -6,9 +6,12 @@ jest.mock("../../context", () => ({ import { TenantResolutionStrategy } from "@budibase/types" import { addTenantToUrl, isUserInAppTenant, getTenantIDFromCtx } from "../" -import { isMultiTenant, getTenantIDFromAppID } from "../../context" +import { + isMultiTenant, + getTenantIDFromAppID, + DEFAULT_TENANT_ID, +} from "../../context" import { any } from "joi" -import { DEFAULT_TENANT_ID } from "../../../src/constants/misc" const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< typeof isMultiTenant > @@ -71,20 +74,16 @@ describe("isUserInAppTenant", () => { }) let mockOpts: any = {} -// mock the `getTenantId` and `isMultiTenant` functions jest.mock("../../context", () => ({ isMultiTenant: jest.fn(() => true), })) -jest.mock("../../../src/constants/misc", () => ({ - DEFAULT_TENANT_ID: "default", -})) - function createCtx(opts: { originalUrl?: string headers?: string[] qsTenantId?: string userTenantId?: string + host?: string }) { const createdCtx: any = { originalUrl: opts.originalUrl || "budibase.com", @@ -101,9 +100,15 @@ function createCtx(opts: { if (opts.userTenantId) { createdCtx.user = { tenantId: opts.userTenantId } } + if (opts.host) { + createdCtx.host = opts.host + } return createdCtx as any } +jest.mock("../../../src/constants/misc", () => ({ + DEFAULT_TENANT_ID: "default", +})) describe("getTenantIDFromCtx", () => { describe("when tenant can be found", () => { it("returns the tenant ID from the user object", () => { @@ -112,18 +117,19 @@ describe("getTenantIDFromCtx", () => { }) it("returns the tenant ID from the header", () => { - const ctx = createCtx({ headers: ["TENANT_ID:budibase"] }) - mockOpts = { includeStrategies: [TenantResolutionStrategy.HEADERS] } + const ctx = createCtx({ headers: ["TENANT_ID=budibase"] }) + mockOpts = { includeStrategies: [TenantResolutionStrategy.HEADER] } expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) it("returns the tenant ID from the query param", () => { + mockOpts = { includeStrategies: [TenantResolutionStrategy.QUERY] } const ctx = createCtx({ qsTenantId: "budibase" }) expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) it("returns the tenant ID from the subdomain", () => { - const ctx = createCtx({ host: "bb" }) + const ctx = createCtx({ host: "bb.app.com" }) mockOpts = { includeStrategies: [TenantResolutionStrategy.SUBDOMAIN] } expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("bb") }) @@ -137,21 +143,30 @@ describe("getTenantIDFromCtx", () => { describe("when tenant cannot be found", () => { it("throws a 403 error if allowNoTenant is false", () => { - mockCtx.user = null - mockCtx.request.headers = {} - mockCtx.request.query = {} - mockCtx.host = "budibase.app" - mockOpts.allowNoTenant = false - expect(() => getTenantIDFromCtx(mockCtx, mockOpts)).toThrowError( + const ctx = createCtx({}) + mockOpts = { + allowNoTenant: false, + excludeStrategies: [ + TenantResolutionStrategy.QUERY, + TenantResolutionStrategy.SUBDOMAIN, + TenantResolutionStrategy.PATH, + ], + } + expect(() => getTenantIDFromCtx(ctx, mockOpts)).rejects.toThrowError( "Tenant id not set" ) }) it("returns null if allowNoTenant is true", () => { - mockedIsMultiTenant.mockImplementation(() => false) const ctx = createCtx({}) - mockOpts = { allowNoTenant: true } - console.log(mockOpts) + mockOpts = { + allowNoTenant: true, + excludeStrategies: [ + TenantResolutionStrategy.QUERY, + TenantResolutionStrategy.SUBDOMAIN, + TenantResolutionStrategy.PATH, + ], + } expect(getTenantIDFromCtx(ctx, mockOpts)).toBeNull() }) }) From f1b7ff0f7c2a9f38077a7d86174f0467d8fb7938 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Wed, 5 Apr 2023 16:30:00 +0100 Subject: [PATCH 12/37] fixing expect on throw --- packages/backend-core/src/tenancy/tests/tenancy.spec.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 7323934bb3..05dc6e93cb 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -152,9 +152,9 @@ describe("getTenantIDFromCtx", () => { TenantResolutionStrategy.PATH, ], } - expect(() => getTenantIDFromCtx(ctx, mockOpts)).rejects.toThrowError( - "Tenant id not set" - ) + expect(getTenantIDFromCtx(ctx, mockOpts)).toBeNull() + expect(ctx.throw).toBeCalledTimes(1) + expect(ctx.throw).toBeCalledWith(403, "Tenant id not set") }) it("returns null if allowNoTenant is true", () => { From de613d2b2864be56a9fe245540d2675a1202c7e4 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Tue, 11 Apr 2023 10:22:47 +0100 Subject: [PATCH 13/37] latest version --- .../backend-core/src/tenancy/tests/tenancy.spec.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 05dc6e93cb..8df1427fa5 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -1,15 +1,10 @@ -// mock the `getTenantId` and `isMultiTenant` functions -jest.mock("../../context", () => ({ - getTenantId: jest.fn(() => "budibase"), - isMultiTenant: jest.fn(() => true), -})) - import { TenantResolutionStrategy } from "@budibase/types" import { addTenantToUrl, isUserInAppTenant, getTenantIDFromCtx } from "../" import { isMultiTenant, getTenantIDFromAppID, DEFAULT_TENANT_ID, + getTenantId, } from "../../context" import { any } from "joi" const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< @@ -18,6 +13,11 @@ const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< const mockedGetTenantIDFromAppID = getTenantIDFromAppID as jest.MockedFunction< typeof getTenantIDFromAppID > +// mock the `getTenantId` and `isMultiTenant` functions +jest.mock("../../context", () => ({ + getTenantId: jest.fn(() => "budibase"), + isMultiTenant: jest.fn(() => true), +})) describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL", () => { const url = "https://budibase.com" From c4a4bdc9da781566c1779a28993dc8746dc7b589 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 11 Apr 2023 10:54:04 +0100 Subject: [PATCH 14/37] Fixing tenancy.spec.ts - mocking was a bit messed up, moving it all around to work as expected. --- .../backend-core/src/context/mainContext.ts | 4 + packages/backend-core/src/tenancy/tenancy.ts | 4 +- .../src/tenancy/tests/tenancy.spec.ts | 59 +- packages/backend-core/yarn.lock | 1099 +---------------- 4 files changed, 53 insertions(+), 1113 deletions(-) diff --git a/packages/backend-core/src/context/mainContext.ts b/packages/backend-core/src/context/mainContext.ts index 550d033073..4b95ad4cba 100644 --- a/packages/backend-core/src/context/mainContext.ts +++ b/packages/backend-core/src/context/mainContext.ts @@ -43,6 +43,10 @@ export function baseGlobalDBName(tenantId: string | undefined | null) { } } +export function getPlatformURL() { + return env.PLATFORM_URL +} + export function isMultiTenant() { return !!env.MULTI_TENANCY } diff --git a/packages/backend-core/src/tenancy/tenancy.ts b/packages/backend-core/src/tenancy/tenancy.ts index e8ddf88226..7b17bdbe18 100644 --- a/packages/backend-core/src/tenancy/tenancy.ts +++ b/packages/backend-core/src/tenancy/tenancy.ts @@ -3,8 +3,8 @@ import { getTenantId, getTenantIDFromAppID, isMultiTenant, + getPlatformURL, } from "../context" -import env from "../environment" import { BBContext, TenantResolutionStrategy, @@ -93,7 +93,7 @@ export const getTenantIDFromCtx = ( // subdomain if (isAllowed(TenantResolutionStrategy.SUBDOMAIN)) { // e.g. budibase.app or local.com:10000 - const platformHost = new URL(env.PLATFORM_URL).host.split(":")[0] + const platformHost = new URL(getPlatformURL()).host.split(":")[0] // e.g. tenant.budibase.app or tenant.local.com const requestHost = ctx.host // parse the tenant id from the difference diff --git a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts index 8df1427fa5..ebeaca074c 100644 --- a/packages/backend-core/src/tenancy/tests/tenancy.spec.ts +++ b/packages/backend-core/src/tenancy/tests/tenancy.spec.ts @@ -1,23 +1,22 @@ import { TenantResolutionStrategy } from "@budibase/types" import { addTenantToUrl, isUserInAppTenant, getTenantIDFromCtx } from "../" -import { - isMultiTenant, - getTenantIDFromAppID, - DEFAULT_TENANT_ID, - getTenantId, -} from "../../context" -import { any } from "joi" +import { isMultiTenant, getTenantIDFromAppID } from "../../context" + +jest.mock("../../context", () => ({ + getTenantId: jest.fn(() => "budibase"), + isMultiTenant: jest.fn(() => true), + getTenantIDFromAppID: jest.fn(), + getPlatformURL: jest.fn(() => "https://app.com"), + DEFAULT_TENANT_ID: "default", +})) + const mockedIsMultiTenant = isMultiTenant as jest.MockedFunction< typeof isMultiTenant > const mockedGetTenantIDFromAppID = getTenantIDFromAppID as jest.MockedFunction< typeof getTenantIDFromAppID > -// mock the `getTenantId` and `isMultiTenant` functions -jest.mock("../../context", () => ({ - getTenantId: jest.fn(() => "budibase"), - isMultiTenant: jest.fn(() => true), -})) + describe("addTenantToUrl", () => { it("should append tenantId parameter to the URL", () => { const url = "https://budibase.com" @@ -40,11 +39,8 @@ describe("addTenantToUrl", () => { }) }) -jest.mock("../../context", () => ({ - getTenantId: jest.fn(() => "budibase"), - getTenantIDFromAppID: jest.fn(() => "budibase"), -})) describe("isUserInAppTenant", () => { + mockedGetTenantIDFromAppID.mockImplementation(() => "budibase") const mockUser = { tenantId: "budibase" } it("returns true if user tenant ID matches app tenant ID", () => { @@ -74,16 +70,13 @@ describe("isUserInAppTenant", () => { }) let mockOpts: any = {} -jest.mock("../../context", () => ({ - isMultiTenant: jest.fn(() => true), -})) - function createCtx(opts: { originalUrl?: string - headers?: string[] + headers?: Record qsTenantId?: string userTenantId?: string host?: string + path?: string }) { const createdCtx: any = { originalUrl: opts.originalUrl || "budibase.com", @@ -103,41 +96,53 @@ function createCtx(opts: { if (opts.host) { createdCtx.host = opts.host } + if (opts.path) { + createdCtx.matched = [ + { + paramNames: [{ name: "tenantId" }], + params: () => ({ tenantId: opts.path }), + captures: jest.fn(), + }, + ] + } return createdCtx as any } -jest.mock("../../../src/constants/misc", () => ({ - DEFAULT_TENANT_ID: "default", -})) + describe("getTenantIDFromCtx", () => { describe("when tenant can be found", () => { it("returns the tenant ID from the user object", () => { + mockedIsMultiTenant.mockImplementation(() => true) const ctx = createCtx({ userTenantId: "budibase" }) expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) it("returns the tenant ID from the header", () => { - const ctx = createCtx({ headers: ["TENANT_ID=budibase"] }) + mockedIsMultiTenant.mockImplementation(() => true) + const ctx = createCtx({ headers: { "x-budibase-tenant-id": "budibase" } }) mockOpts = { includeStrategies: [TenantResolutionStrategy.HEADER] } expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) it("returns the tenant ID from the query param", () => { + mockedIsMultiTenant.mockImplementation(() => true) mockOpts = { includeStrategies: [TenantResolutionStrategy.QUERY] } const ctx = createCtx({ qsTenantId: "budibase" }) expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("budibase") }) it("returns the tenant ID from the subdomain", () => { + mockedIsMultiTenant.mockImplementation(() => true) const ctx = createCtx({ host: "bb.app.com" }) mockOpts = { includeStrategies: [TenantResolutionStrategy.SUBDOMAIN] } expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("bb") }) it("returns the tenant ID from the path", () => { - const ctx = createCtx({ host: "bb" }) + mockedIsMultiTenant.mockImplementation(() => true) + const ctx = createCtx({ path: "bb" }) mockOpts = { includeStrategies: [TenantResolutionStrategy.PATH] } - expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("123") + expect(getTenantIDFromCtx(ctx, mockOpts)).toEqual("bb") }) }) diff --git a/packages/backend-core/yarn.lock b/packages/backend-core/yarn.lock index f186737f13..f60c503e2d 100644 --- a/packages/backend-core/yarn.lock +++ b/packages/backend-core/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": +"@ampproject/remapping@^2.1.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== @@ -24,11 +24,6 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" - integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== - "@babel/compat-data@^7.17.10": version "7.17.10" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" @@ -39,48 +34,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== -"@babel/core@7.17.4": - version "7.17.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.4.tgz#a22f1ae8999122873b3d18865e98c7a3936b8c8b" - integrity sha512-R9x5r4t4+hBqZTmioSnkrW+I6NmbojwjGT8p4G2Gw1thWbXIHGDnmGdLdFw0/7ljucdIrNRp7Npgb4CyBYzzJg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.3" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/core@^7.1.0": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e" - integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.3" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.3" - "@babel/types" "^7.21.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - "@babel/core@^7.11.6": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" @@ -123,16 +76,6 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.3", "@babel/generator@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce" - integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA== - dependencies: - "@babel/types" "^7.21.3" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@babel/generator@^7.18.2", "@babel/generator@^7.7.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" @@ -151,32 +94,6 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - "@babel/helper-compilation-targets@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" @@ -197,40 +114,6 @@ browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" - integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" - integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.3.1" - -"@babel/helper-define-polyfill-provider@^0.3.1", "@babel/helper-define-polyfill-provider@^0.3.2", "@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - "@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" @@ -241,13 +124,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-function-name@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" @@ -256,14 +132,6 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.17.0" -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - "@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" @@ -286,13 +154,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" - integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== - dependencies: - "@babel/types" "^7.21.0" - "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" @@ -307,20 +168,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - "@babel/helper-module-transforms@^7.18.0": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" @@ -349,45 +196,16 @@ "@babel/traverse" "^7.20.1" "@babel/types" "^7.20.2" -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0": version "7.17.12" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== -"@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.18.6": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - 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-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" - integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - "@babel/helper-simple-access@^7.17.7": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" @@ -402,13 +220,6 @@ dependencies: "@babel/types" "^7.20.2" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" @@ -448,25 +259,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - -"@babel/helpers@^7.17.2", "@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - "@babel/helpers@^7.18.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" @@ -508,161 +300,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== -"@babel/parser@^7.17.3", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" - integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== - "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": version "7.20.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== - 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/plugin-proposal-async-generator-functions@^7.16.8": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - 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/plugin-proposal-class-properties@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - 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/plugin-proposal-dynamic-import@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - 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/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.7", "@babel/plugin-proposal-optional-chaining@^7.20.7": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - 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" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -677,34 +319,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -726,7 +347,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -740,7 +361,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -768,14 +389,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -789,353 +403,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" - integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - 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/plugin-transform-block-scoped-functions@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.16.7": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-classes@^7.16.7": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - 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" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" - integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/template" "^7.20.7" - -"@babel/plugin-transform-destructuring@^7.16.7": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-for-of@^7.16.7": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" - integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-function-name@^7.16.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.16.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== - dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" - integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== - dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" - -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== - 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/plugin-transform-modules-umd@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-new-target@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.16.7", "@babel/plugin-transform-parameters@^7.20.7": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" - integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.16.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" - integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" - "@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-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.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - 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" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - "@babel/runtime@^7.15.4": version "7.18.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" @@ -1143,13 +410,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.8.4": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" - integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== - dependencies: - regenerator-runtime "^0.13.11" - "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -1168,31 +428,6 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.17.3", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67" - integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.3" - "@babel/types" "^7.21.3" - debug "^4.1.0" - globals "^11.1.0" - "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.7.2": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" @@ -1233,15 +468,6 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@babel/types@^7.16.8", "@babel/types@^7.18.9", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.4.4": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05" - integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" @@ -1487,27 +713,6 @@ jest-haste-map "^29.5.0" slash "^3.0.0" -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - "@jest/transform@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" @@ -1616,7 +821,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -1854,17 +1059,6 @@ dependencies: "@types/node" "*" -"@types/babel__core@^7.0.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -1971,13 +1165,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== - dependencies: - "@types/node" "*" - "@types/graceful-fs@^4.1.3": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" @@ -2608,20 +1795,6 @@ axios@^1.1.3: form-data "^4.0.0" proxy-from-env "^1.1.0" -babel-jest@27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -2646,16 +1819,6 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" @@ -2666,30 +1829,6 @@ babel-plugin-jest-hoist@^29.5.0: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" - integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -2708,14 +1847,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" @@ -2835,16 +1966,6 @@ browserslist@^4.21.3: node-releases "^2.0.6" update-browserslist-db "^1.0.9" -browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -2978,11 +2099,6 @@ caniuse-lite@^1.0.30001400: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== -caniuse-lite@^1.0.30001449: - version "1.0.30001473" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001473.tgz#3859898b3cab65fc8905bb923df36ad35058153c" - integrity sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -3181,11 +2297,6 @@ content-type@^1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" @@ -3206,13 +2317,6 @@ cookies@~0.8.0: depd "~2.0.0" keygrip "~1.1.0" -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.1.tgz#15c0fb812ea27c973c18d425099afa50b934b41b" - integrity sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA== - dependencies: - browserslist "^4.21.5" - core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -3481,11 +2585,6 @@ electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== -electron-to-chromium@^1.4.284: - version "1.4.345" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.345.tgz#c90b7183b39245cddf0e990337469063bfced6f0" - integrity sha512-znGhOQK2TUYLICgS25uaM0a7pHy66rSxbre7l762vg9AUoCcJK+Bu+HCPWpjL/U/kK8/Hf+6E0szAUJSyVYb3Q== - emitter-listener@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" @@ -3576,11 +2675,6 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -4241,13 +3335,6 @@ is-core-module@^2.8.1: dependencies: has "^1.0.3" -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== - dependencies: - has "^1.0.3" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4532,26 +3619,6 @@ jest-get-type@^29.4.3: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - jest-haste-map@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" @@ -4628,11 +3695,6 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - jest-regex-util@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" @@ -4721,14 +3783,6 @@ jest-serial-runner@^1.2.1: resolved "https://registry.yarnpkg.com/jest-serial-runner/-/jest-serial-runner-1.2.1.tgz#0f5f8dbe6f077119bd1fdd7e8518f92353c194d5" integrity sha512-d59fF+7HdjNvQEL7B4WyFE+f8q5tGzlNUqtOnxTrT1ofun7O6/Lgm/j255BBgCY2fmSue/34M7Xy9+VWRByP0Q== -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - jest-snapshot@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" @@ -4758,18 +3812,6 @@ jest-snapshot@^29.5.0: pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - jest-util@^29.0.0, jest-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" @@ -4808,15 +3850,6 @@ jest-watcher@^29.5.0: jest-util "^29.5.0" string-length "^4.0.1" -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jest-worker@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" @@ -4886,11 +3919,6 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" @@ -4916,16 +3944,16 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonc-parser@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" @@ -5172,11 +4200,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -5257,13 +4280,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -5554,11 +4570,6 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - nodemon@2.0.16: version "2.0.16" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.16.tgz#d71b31bfdb226c25de34afea53486c8ef225fdef" @@ -6376,47 +5387,11 @@ redlock@4.2.0: dependencies: bluebird "^3.7.2" -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - 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" - registry-auth-token@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" @@ -6431,13 +5406,6 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - remove-trailing-slash@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz#be2285a59f39c74d1bce4f825950061915e3780d" @@ -6504,15 +5472,6 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.14.2: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - resolve@^1.20.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" @@ -6595,7 +5554,7 @@ semver@^5.6.0, semver@^5.7.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -7155,29 +6114,6 @@ undefsafe@^2.0.5: resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -7195,7 +6131,7 @@ universalify@^0.2.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.9: +update-browserslist-db@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== @@ -7316,7 +6252,7 @@ vuvuzela@1.0.3: resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" integrity sha1-O+FF5YJxxzylUnndhR8SpoIRSws= -walker@^1.0.7, walker@^1.0.8: +walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== @@ -7446,11 +6382,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" From 0acb821b7068d0f0b40abe22569cf52419877d6f Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Apr 2023 12:31:40 +0000 Subject: [PATCH 15/37] Update pro version to 2.4.44-alpha.11 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index e15990c44c..99c49139e0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -47,7 +47,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.4.44-alpha.11", "@budibase/client": "2.4.44-alpha.11", - "@budibase/pro": "2.4.44-alpha.10", + "@budibase/pro": "2.4.44-alpha.11", "@budibase/shared-core": "2.4.44-alpha.11", "@budibase/string-templates": "2.4.44-alpha.11", "@budibase/types": "2.4.44-alpha.11", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index d9989e8de1..f6de440c36 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1290,14 +1290,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.10": - version "2.4.44-alpha.10" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.10.tgz#02fdc24dad37fa244b9e3c7df731f355c9a5927a" - integrity sha512-mhwXyc366dxy+U8aU74I+tVr0b5TmVEqRH+sY/EG3u6wJgwatyz5e5Pq9srftJX/+nM+jXiu27oIKFUx4v+IkA== +"@budibase/backend-core@2.4.44-alpha.11": + version "2.4.44-alpha.11" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.11.tgz#fc84683ccc66c210e850e7796ba61ceef6f3fbba" + integrity sha512-Gk30FS/D9LQTUZ7KSOk7MVL9+ftodTKEbRVYuXQTt+tU/gZ1nDEFRE/aNoTVeAUinxWneC+KYtBdyuotSmWidQ== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.10" + "@budibase/types" "2.4.44-alpha.11" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1430,15 +1430,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.10": - version "2.4.44-alpha.10" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.10.tgz#48bba3422f0f90cb2948c109f7e518b98a1ef37e" - integrity sha512-E+WmuLnYu5B6R/C8h8vtLSNdENANKI71cWbXifPwI8lfnRVZxVyW0v98EWknZWGSpF55y8G8AUlKLTkDDOkZkA== +"@budibase/pro@2.4.44-alpha.11": + version "2.4.44-alpha.11" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.11.tgz#a5dd39bfc8e25d7ab589ad83b870a99add92597c" + integrity sha512-JNogKz98Vb6i9kfcqhQaCl96i84E5i5H0azSxFPf+6+c4PS1VCTbWYf8FCQzTvubqU5ZJaN2uSVgbA4pXxUiFA== dependencies: - "@budibase/backend-core" "2.4.44-alpha.10" + "@budibase/backend-core" "2.4.44-alpha.11" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.10" + "@budibase/types" "2.4.44-alpha.11" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1491,10 +1491,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.10": - version "2.4.44-alpha.10" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.10.tgz#4f5a13948dc95cbe3a6fe305259159207b37b1d9" - integrity sha512-ZvBRXevf3L/N/4fn0pC96CDYXDrElY7C2pn6JlysLoaJMOr3bSQWf1PaslP1/E9gS7XFIKye1wN9VIWIHa0QLg== +"@budibase/types@2.4.44-alpha.11": + version "2.4.44-alpha.11" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.11.tgz#e4daf6f0367d73df981992b61b65b069bfa7ac78" + integrity sha512-jN+1vcEyvvQhOt6BRBLKF4EYSSw8ULfmHYm+GmEdqZmgGE348c3arskWnkBUXc0crBIVAnG7ZLDG/R/cwAOn7g== dependencies: scim-patch "^0.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 7add48f0ca..e767d3dba4 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -38,7 +38,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.4.44-alpha.11", - "@budibase/pro": "2.4.44-alpha.10", + "@budibase/pro": "2.4.44-alpha.11", "@budibase/string-templates": "2.4.44-alpha.11", "@budibase/types": "2.4.44-alpha.11", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 605c183a10..43b5408f69 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -475,14 +475,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.10": - version "2.4.44-alpha.10" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.10.tgz#02fdc24dad37fa244b9e3c7df731f355c9a5927a" - integrity sha512-mhwXyc366dxy+U8aU74I+tVr0b5TmVEqRH+sY/EG3u6wJgwatyz5e5Pq9srftJX/+nM+jXiu27oIKFUx4v+IkA== +"@budibase/backend-core@2.4.44-alpha.11": + version "2.4.44-alpha.11" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.11.tgz#fc84683ccc66c210e850e7796ba61ceef6f3fbba" + integrity sha512-Gk30FS/D9LQTUZ7KSOk7MVL9+ftodTKEbRVYuXQTt+tU/gZ1nDEFRE/aNoTVeAUinxWneC+KYtBdyuotSmWidQ== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.10" + "@budibase/types" "2.4.44-alpha.11" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -565,15 +565,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.10": - version "2.4.44-alpha.10" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.10.tgz#48bba3422f0f90cb2948c109f7e518b98a1ef37e" - integrity sha512-E+WmuLnYu5B6R/C8h8vtLSNdENANKI71cWbXifPwI8lfnRVZxVyW0v98EWknZWGSpF55y8G8AUlKLTkDDOkZkA== +"@budibase/pro@2.4.44-alpha.11": + version "2.4.44-alpha.11" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.11.tgz#a5dd39bfc8e25d7ab589ad83b870a99add92597c" + integrity sha512-JNogKz98Vb6i9kfcqhQaCl96i84E5i5H0azSxFPf+6+c4PS1VCTbWYf8FCQzTvubqU5ZJaN2uSVgbA4pXxUiFA== dependencies: - "@budibase/backend-core" "2.4.44-alpha.10" + "@budibase/backend-core" "2.4.44-alpha.11" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.10" + "@budibase/types" "2.4.44-alpha.11" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -608,10 +608,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.10": - version "2.4.44-alpha.10" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.10.tgz#4f5a13948dc95cbe3a6fe305259159207b37b1d9" - integrity sha512-ZvBRXevf3L/N/4fn0pC96CDYXDrElY7C2pn6JlysLoaJMOr3bSQWf1PaslP1/E9gS7XFIKye1wN9VIWIHa0QLg== +"@budibase/types@2.4.44-alpha.11": + version "2.4.44-alpha.11" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.11.tgz#e4daf6f0367d73df981992b61b65b069bfa7ac78" + integrity sha512-jN+1vcEyvvQhOt6BRBLKF4EYSSw8ULfmHYm+GmEdqZmgGE348c3arskWnkBUXc0crBIVAnG7ZLDG/R/cwAOn7g== dependencies: scim-patch "^0.7.0" From 57a3ff96ea7e231357368360dd1b985d39976821 Mon Sep 17 00:00:00 2001 From: adrinr Date: Wed, 5 Apr 2023 10:56:55 +0100 Subject: [PATCH 16/37] Add new test for conflicting user email --- packages/worker/src/api/routes/global/tests/scim.spec.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/worker/src/api/routes/global/tests/scim.spec.ts b/packages/worker/src/api/routes/global/tests/scim.spec.ts index 6c411a640d..e76e6b6cda 100644 --- a/packages/worker/src/api/routes/global/tests/scim.spec.ts +++ b/packages/worker/src/api/routes/global/tests/scim.spec.ts @@ -318,6 +318,15 @@ describe("scim", () => { await postScimUser({ body }, { expect: 500 }) }) }) + + it("creating an existing user name returns a conflict", async () => { + const body = structures.scim.createUserRequest() + + await postScimUser({ body }) + + const res = await postScimUser({ body }, { expect: 409 }) + expect((res as any).message).toBe("Email already in use") + }) }) describe("GET /api/global/scim/v2/users/:id", () => { From e1279ffecdb93fbfe9fe47923b652b1ca1a2b998 Mon Sep 17 00:00:00 2001 From: adrinr Date: Mon, 10 Apr 2023 20:06:47 +0100 Subject: [PATCH 17/37] Use proper errors instead of string throwing --- packages/backend-core/src/errors/errors.ts | 8 ++++++++ packages/worker/src/sdk/users/users.ts | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/backend-core/src/errors/errors.ts b/packages/backend-core/src/errors/errors.ts index 54ca8456ab..0a632d7551 100644 --- a/packages/backend-core/src/errors/errors.ts +++ b/packages/backend-core/src/errors/errors.ts @@ -97,3 +97,11 @@ export class InvalidAPIKeyError extends BudibaseError { ) } } + +// USERS + +export class EmailUnavailableError extends Error { + constructor(email: string) { + super(`Email already taken: '${email}'`) + } +} diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index f05c6b98d2..2150654ae9 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -16,6 +16,7 @@ import { ViewName, env as coreEnv, context, + EmailUnavailableError, } from "@budibase/backend-core" import { AccountMetadata, @@ -158,7 +159,7 @@ const validateUniqueUser = async (email: string, tenantId: string) => { if (env.MULTI_TENANCY) { const tenantUser = await getPlatformUser(email) if (tenantUser != null && tenantUser.tenantId !== tenantId) { - throw `Unavailable` + throw new EmailUnavailableError(email) } } @@ -166,7 +167,7 @@ const validateUniqueUser = async (email: string, tenantId: string) => { if (!env.SELF_HOSTED && !env.DISABLE_ACCOUNT_PORTAL) { const account = await accounts.getAccount(email) if (account && account.verified && account.tenantId !== tenantId) { - throw `Unavailable` + throw new EmailUnavailableError(email) } } } @@ -235,7 +236,7 @@ export const save = async ( // no id was specified - load from email instead dbUser = await usersCore.getGlobalUserByEmail(email) if (dbUser && dbUser._id !== _id) { - throw `Unavailable` + throw new EmailUnavailableError(email) } } From 56567de04a406eae501ae81bb8006ed0a42b71e8 Mon Sep 17 00:00:00 2001 From: adrinr Date: Mon, 10 Apr 2023 20:12:42 +0100 Subject: [PATCH 18/37] Fix tests --- .../worker/src/api/routes/global/tests/users.spec.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/worker/src/api/routes/global/tests/users.spec.ts b/packages/worker/src/api/routes/global/tests/users.spec.ts index d1afa0191e..0311669355 100644 --- a/packages/worker/src/api/routes/global/tests/users.spec.ts +++ b/packages/worker/src/api/routes/global/tests/users.spec.ts @@ -48,7 +48,7 @@ describe("/api/global/users", () => { 400 ) - expect(res.body.message).toBe("Unavailable") + expect(res.body.message).toBe(`Unavailable`) expect(sendMailMock).toHaveBeenCalledTimes(0) expect(code).toBeUndefined() expect(events.user.invited).toBeCalledTimes(0) @@ -225,7 +225,7 @@ describe("/api/global/users", () => { const response = await config.api.users.saveUser(user, 400) - expect(response.body.message).toBe(`Unavailable`) + expect(response.body.message).toBe(`Email already taken: '${user.email}'`) expect(events.user.created).toBeCalledTimes(0) }) @@ -237,7 +237,9 @@ describe("/api/global/users", () => { delete user._id const response = await config.api.users.saveUser(user, 400) - expect(response.body.message).toBe(`Unavailable`) + expect(response.body.message).toBe( + `Email already taken: '${user.email}'` + ) expect(events.user.created).toBeCalledTimes(0) }) }) @@ -249,7 +251,7 @@ describe("/api/global/users", () => { const response = await config.api.users.saveUser(user, 400) - expect(response.body.message).toBe(`Unavailable`) + expect(response.body.message).toBe(`Email already taken: '${user.email}'`) expect(events.user.created).toBeCalledTimes(0) }) From c77ed3d737e3469668de5cacf608ad823f7c4588 Mon Sep 17 00:00:00 2001 From: adrinr Date: Mon, 10 Apr 2023 20:17:51 +0100 Subject: [PATCH 19/37] Renames --- packages/backend-core/src/errors/errors.ts | 2 +- .../worker/src/api/routes/global/tests/users.spec.ts | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/backend-core/src/errors/errors.ts b/packages/backend-core/src/errors/errors.ts index 0a632d7551..4e1f1abbb5 100644 --- a/packages/backend-core/src/errors/errors.ts +++ b/packages/backend-core/src/errors/errors.ts @@ -102,6 +102,6 @@ export class InvalidAPIKeyError extends BudibaseError { export class EmailUnavailableError extends Error { constructor(email: string) { - super(`Email already taken: '${email}'`) + super(`Email already in use: '${email}'`) } } diff --git a/packages/worker/src/api/routes/global/tests/users.spec.ts b/packages/worker/src/api/routes/global/tests/users.spec.ts index 0311669355..52d77cbae6 100644 --- a/packages/worker/src/api/routes/global/tests/users.spec.ts +++ b/packages/worker/src/api/routes/global/tests/users.spec.ts @@ -225,7 +225,9 @@ describe("/api/global/users", () => { const response = await config.api.users.saveUser(user, 400) - expect(response.body.message).toBe(`Email already taken: '${user.email}'`) + expect(response.body.message).toBe( + `Email already in use: '${user.email}'` + ) expect(events.user.created).toBeCalledTimes(0) }) @@ -238,7 +240,7 @@ describe("/api/global/users", () => { const response = await config.api.users.saveUser(user, 400) expect(response.body.message).toBe( - `Email already taken: '${user.email}'` + `Email already in use: '${user.email}'` ) expect(events.user.created).toBeCalledTimes(0) }) @@ -251,7 +253,9 @@ describe("/api/global/users", () => { const response = await config.api.users.saveUser(user, 400) - expect(response.body.message).toBe(`Email already taken: '${user.email}'`) + expect(response.body.message).toBe( + `Email already in use: '${user.email}'` + ) expect(events.user.created).toBeCalledTimes(0) }) From 9a330b85f89989dc47b937b8f12706feee101936 Mon Sep 17 00:00:00 2001 From: adrinr Date: Tue, 11 Apr 2023 14:20:15 +0100 Subject: [PATCH 20/37] Fix timeouts --- packages/server/src/api/routes/tests/automation.spec.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/server/src/api/routes/tests/automation.spec.js b/packages/server/src/api/routes/tests/automation.spec.js index 2eae5e2a61..47daa8975b 100644 --- a/packages/server/src/api/routes/tests/automation.spec.js +++ b/packages/server/src/api/routes/tests/automation.spec.js @@ -19,11 +19,14 @@ describe("/automations", () => { afterAll(setup.afterAll) - // For some reason this cannot be a beforeAll or the test "tests the automation successfully" fail - beforeEach(async () => { + beforeAll(async () => { await config.init() }) + beforeEach(() => { + events.automation.deleted.mockClear() + }) + describe("get definitions", () => { it("returns a list of definitions for actions", async () => { const res = await request From 08dbee5384c0f3f1b1d67763d12934cccd38bda8 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Apr 2023 13:42:48 +0000 Subject: [PATCH 21/37] v2.4.44-alpha.12 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 6 +++--- packages/builder/package.json | 12 ++++++------ packages/cli/package.json | 8 ++++---- packages/client/package.json | 12 ++++++------ packages/frontend-core/package.json | 6 +++--- packages/sdk/package.json | 2 +- packages/server/package.json | 12 ++++++------ packages/shared-core/package.json | 4 ++-- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/lerna.json b/lerna.json index ec62402383..29c24ab35e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "npmClient": "yarn", "packages": ["packages/*"], "command": { diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index e49cdafe68..9d3f75c583 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -24,7 +24,7 @@ "dependencies": { "@budibase/nano": "10.1.2", "@budibase/pouchdb-replication-stream": "1.2.10", - "@budibase/types": "2.4.44-alpha.11", + "@budibase/types": "2.4.44-alpha.12", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0096c488bd..c019e4165c 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,8 +38,8 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/shared-core": "2.4.44-alpha.11", - "@budibase/string-templates": "2.4.44-alpha.11", + "@budibase/shared-core": "2.4.44-alpha.12", + "@budibase/string-templates": "2.4.44-alpha.12", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index fb9b0b3edd..97fac1e9a4 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,11 +58,11 @@ } }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.11", - "@budibase/client": "2.4.44-alpha.11", - "@budibase/frontend-core": "2.4.44-alpha.11", - "@budibase/shared-core": "2.4.44-alpha.11", - "@budibase/string-templates": "2.4.44-alpha.11", + "@budibase/bbui": "2.4.44-alpha.12", + "@budibase/client": "2.4.44-alpha.12", + "@budibase/frontend-core": "2.4.44-alpha.12", + "@budibase/shared-core": "2.4.44-alpha.12", + "@budibase/string-templates": "2.4.44-alpha.12", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 1aa8317113..f4d530646b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "dist/index.js", "bin": { @@ -29,9 +29,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.11", - "@budibase/string-templates": "2.4.44-alpha.11", - "@budibase/types": "2.4.44-alpha.11", + "@budibase/backend-core": "2.4.44-alpha.12", + "@budibase/string-templates": "2.4.44-alpha.12", + "@budibase/types": "2.4.44-alpha.12", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 0f3e6d212c..82768ccc16 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,11 +19,11 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.11", - "@budibase/frontend-core": "2.4.44-alpha.11", - "@budibase/shared-core": "2.4.44-alpha.11", - "@budibase/string-templates": "2.4.44-alpha.11", - "@budibase/types": "2.4.44-alpha.11", + "@budibase/bbui": "2.4.44-alpha.12", + "@budibase/frontend-core": "2.4.44-alpha.12", + "@budibase/shared-core": "2.4.44-alpha.12", + "@budibase/string-templates": "2.4.44-alpha.12", + "@budibase/types": "2.4.44-alpha.12", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 06bd691802..7577e7c092 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,13 +1,13 @@ { "name": "@budibase/frontend-core", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.4.44-alpha.11", - "@budibase/shared-core": "2.4.44-alpha.11", + "@budibase/bbui": "2.4.44-alpha.12", + "@budibase/shared-core": "2.4.44-alpha.12", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index a029d825af..852948bce7 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index 99c49139e0..7bdda5a4e5 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -45,12 +45,12 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.4.44-alpha.11", - "@budibase/client": "2.4.44-alpha.11", + "@budibase/backend-core": "2.4.44-alpha.12", + "@budibase/client": "2.4.44-alpha.12", "@budibase/pro": "2.4.44-alpha.11", - "@budibase/shared-core": "2.4.44-alpha.11", - "@budibase/string-templates": "2.4.44-alpha.11", - "@budibase/types": "2.4.44-alpha.11", + "@budibase/shared-core": "2.4.44-alpha.12", + "@budibase/string-templates": "2.4.44-alpha.12", + "@budibase/types": "2.4.44-alpha.12", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/shared-core/package.json b/packages/shared-core/package.json index 8c1c829035..941285aa7e 100644 --- a/packages/shared-core/package.json +++ b/packages/shared-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/shared-core", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Shared data utils", "main": "dist/cjs/src/index.js", "types": "dist/mjs/src/index.d.ts", @@ -20,7 +20,7 @@ "dev:builder": "yarn prebuild && concurrently \"tsc -p tsconfig.build.json --watch\" \"tsc -p tsconfig-cjs.build.json --watch\"" }, "dependencies": { - "@budibase/types": "2.4.44-alpha.11" + "@budibase/types": "2.4.44-alpha.12" }, "devDependencies": { "concurrently": "^7.6.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 9cc24a3edb..3b871d1d56 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index da8f6226dd..4704f28e5e 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase types", "main": "dist/cjs/index.js", "types": "dist/mjs/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index e767d3dba4..df26cbdac3 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.4.44-alpha.11", + "version": "2.4.44-alpha.12", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -37,10 +37,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.11", + "@budibase/backend-core": "2.4.44-alpha.12", "@budibase/pro": "2.4.44-alpha.11", - "@budibase/string-templates": "2.4.44-alpha.11", - "@budibase/types": "2.4.44-alpha.11", + "@budibase/string-templates": "2.4.44-alpha.12", + "@budibase/types": "2.4.44-alpha.12", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 2e60ca7526384a3a8549b5607e0a771a29d17c4a Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Apr 2023 13:46:00 +0000 Subject: [PATCH 22/37] Update pro version to 2.4.44-alpha.12 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 7bdda5a4e5..eb88e27bbe 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -47,7 +47,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.4.44-alpha.12", "@budibase/client": "2.4.44-alpha.12", - "@budibase/pro": "2.4.44-alpha.11", + "@budibase/pro": "2.4.44-alpha.12", "@budibase/shared-core": "2.4.44-alpha.12", "@budibase/string-templates": "2.4.44-alpha.12", "@budibase/types": "2.4.44-alpha.12", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index f6de440c36..b0a06f30c0 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1290,14 +1290,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.11": - version "2.4.44-alpha.11" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.11.tgz#fc84683ccc66c210e850e7796ba61ceef6f3fbba" - integrity sha512-Gk30FS/D9LQTUZ7KSOk7MVL9+ftodTKEbRVYuXQTt+tU/gZ1nDEFRE/aNoTVeAUinxWneC+KYtBdyuotSmWidQ== +"@budibase/backend-core@2.4.44-alpha.12": + version "2.4.44-alpha.12" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.12.tgz#ac5617e6ccb844252fb998ea8daac2d635fe9b95" + integrity sha512-KB7WzDNYqdV3XEII4qyER6BXkkKPBA9UBZ+9QOHUsJgdDWyJjZQUXho5T4DOdFUNCsNrZ0MCMOZWNBG6W5bTXg== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.11" + "@budibase/types" "2.4.44-alpha.12" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1430,15 +1430,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.11": - version "2.4.44-alpha.11" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.11.tgz#a5dd39bfc8e25d7ab589ad83b870a99add92597c" - integrity sha512-JNogKz98Vb6i9kfcqhQaCl96i84E5i5H0azSxFPf+6+c4PS1VCTbWYf8FCQzTvubqU5ZJaN2uSVgbA4pXxUiFA== +"@budibase/pro@2.4.44-alpha.12": + version "2.4.44-alpha.12" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.12.tgz#964c0f0fd0b9c2e7cfbb1a39a455d84ea6c927ba" + integrity sha512-C1VXMKGvdzu55rVbTad1SE37EXPA36OWzFQ1IC6YEl4cs7bR6x7e8yXmn2LBH7uk8qArmjMrYJPKSmIlSHYfcA== dependencies: - "@budibase/backend-core" "2.4.44-alpha.11" + "@budibase/backend-core" "2.4.44-alpha.12" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.11" + "@budibase/types" "2.4.44-alpha.12" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1491,10 +1491,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.11": - version "2.4.44-alpha.11" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.11.tgz#e4daf6f0367d73df981992b61b65b069bfa7ac78" - integrity sha512-jN+1vcEyvvQhOt6BRBLKF4EYSSw8ULfmHYm+GmEdqZmgGE348c3arskWnkBUXc0crBIVAnG7ZLDG/R/cwAOn7g== +"@budibase/types@2.4.44-alpha.12": + version "2.4.44-alpha.12" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.12.tgz#cb7ad803f81ae2fd57412ef744b7dc953227b755" + integrity sha512-BJz4HtMVxnRJ+PJdgkJkRiL9FVMZPMx5ReikWalJPb2cYrceNsyZy04avuedIBCnS5S+6HXhGi7Hezlnm4unQQ== dependencies: scim-patch "^0.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index df26cbdac3..42cb8a18d3 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -38,7 +38,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.4.44-alpha.12", - "@budibase/pro": "2.4.44-alpha.11", + "@budibase/pro": "2.4.44-alpha.12", "@budibase/string-templates": "2.4.44-alpha.12", "@budibase/types": "2.4.44-alpha.12", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 43b5408f69..de0a8e9656 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -475,14 +475,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.11": - version "2.4.44-alpha.11" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.11.tgz#fc84683ccc66c210e850e7796ba61ceef6f3fbba" - integrity sha512-Gk30FS/D9LQTUZ7KSOk7MVL9+ftodTKEbRVYuXQTt+tU/gZ1nDEFRE/aNoTVeAUinxWneC+KYtBdyuotSmWidQ== +"@budibase/backend-core@2.4.44-alpha.12": + version "2.4.44-alpha.12" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.12.tgz#ac5617e6ccb844252fb998ea8daac2d635fe9b95" + integrity sha512-KB7WzDNYqdV3XEII4qyER6BXkkKPBA9UBZ+9QOHUsJgdDWyJjZQUXho5T4DOdFUNCsNrZ0MCMOZWNBG6W5bTXg== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.11" + "@budibase/types" "2.4.44-alpha.12" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -565,15 +565,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.11": - version "2.4.44-alpha.11" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.11.tgz#a5dd39bfc8e25d7ab589ad83b870a99add92597c" - integrity sha512-JNogKz98Vb6i9kfcqhQaCl96i84E5i5H0azSxFPf+6+c4PS1VCTbWYf8FCQzTvubqU5ZJaN2uSVgbA4pXxUiFA== +"@budibase/pro@2.4.44-alpha.12": + version "2.4.44-alpha.12" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.12.tgz#964c0f0fd0b9c2e7cfbb1a39a455d84ea6c927ba" + integrity sha512-C1VXMKGvdzu55rVbTad1SE37EXPA36OWzFQ1IC6YEl4cs7bR6x7e8yXmn2LBH7uk8qArmjMrYJPKSmIlSHYfcA== dependencies: - "@budibase/backend-core" "2.4.44-alpha.11" + "@budibase/backend-core" "2.4.44-alpha.12" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.11" + "@budibase/types" "2.4.44-alpha.12" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -608,10 +608,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.11": - version "2.4.44-alpha.11" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.11.tgz#e4daf6f0367d73df981992b61b65b069bfa7ac78" - integrity sha512-jN+1vcEyvvQhOt6BRBLKF4EYSSw8ULfmHYm+GmEdqZmgGE348c3arskWnkBUXc0crBIVAnG7ZLDG/R/cwAOn7g== +"@budibase/types@2.4.44-alpha.12": + version "2.4.44-alpha.12" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.12.tgz#cb7ad803f81ae2fd57412ef744b7dc953227b755" + integrity sha512-BJz4HtMVxnRJ+PJdgkJkRiL9FVMZPMx5ReikWalJPb2cYrceNsyZy04avuedIBCnS5S+6HXhGi7Hezlnm4unQQ== dependencies: scim-patch "^0.7.0" From f88299309184b92eb268c6e472c563cba63abbe6 Mon Sep 17 00:00:00 2001 From: adrinr Date: Tue, 11 Apr 2023 16:12:18 +0100 Subject: [PATCH 23/37] Name and its fields are optional --- .../tests/utilities/structures/scim.ts | 52 ++++++++++++------- .../types/src/api/web/global/scim/users.ts | 10 ++-- .../src/api/routes/global/tests/scim.spec.ts | 41 ++++++++++++++- 3 files changed, 77 insertions(+), 26 deletions(-) diff --git a/packages/backend-core/tests/utilities/structures/scim.ts b/packages/backend-core/tests/utilities/structures/scim.ts index 6657bb90b5..741cff165e 100644 --- a/packages/backend-core/tests/utilities/structures/scim.ts +++ b/packages/backend-core/tests/utilities/structures/scim.ts @@ -1,23 +1,31 @@ import { ScimCreateGroupRequest, ScimCreateUserRequest } from "@budibase/types" import { uuid } from "./common" import { generator } from "./generator" +import _ from "lodash" -export function createUserRequest(userData?: { - externalId?: string - email?: string - firstName?: string - lastName?: string - username?: string -}) { - const { - externalId = uuid(), - email = generator.email(), - firstName = generator.first(), - lastName = generator.last(), - username = generator.name(), - } = userData || {} +interface CreateUserRequestFields { + externalId: string + email: string + firstName: string + lastName: string + username: string +} - const user: ScimCreateUserRequest = { +export function createUserRequest(userData?: Partial) { + const defaultValues = { + externalId: uuid(), + email: generator.email(), + firstName: generator.first(), + lastName: generator.last(), + username: generator.name(), + } + + const { externalId, email, firstName, lastName, username } = _.assign( + defaultValues, + userData + ) + + let user: ScimCreateUserRequest = { schemas: [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", @@ -35,13 +43,17 @@ export function createUserRequest(userData?: { meta: { resourceType: "User", }, - name: { - formatted: generator.name(), - familyName: lastName, - givenName: firstName, - }, roles: [], } + + if (firstName || lastName) { + user.name = { + formatted: [firstName, lastName].filter(s => s).join(" "), + familyName: lastName, + givenName: firstName, + } + } + return user } diff --git a/packages/types/src/api/web/global/scim/users.ts b/packages/types/src/api/web/global/scim/users.ts index 53424934ff..8269d392b0 100644 --- a/packages/types/src/api/web/global/scim/users.ts +++ b/packages/types/src/api/web/global/scim/users.ts @@ -19,10 +19,10 @@ export interface ScimUserResponse extends ScimResource { } userName: string displayName?: string - name: { - formatted: string - familyName: string - givenName: string + name?: { + formatted?: string + familyName?: string + givenName?: string } active: BooleanString emails?: Emails @@ -41,7 +41,7 @@ export interface ScimCreateUserRequest { resourceType: "User" } displayName?: string - name: { + name?: { formatted: string familyName: string givenName: string diff --git a/packages/worker/src/api/routes/global/tests/scim.spec.ts b/packages/worker/src/api/routes/global/tests/scim.spec.ts index e76e6b6cda..3352951152 100644 --- a/packages/worker/src/api/routes/global/tests/scim.spec.ts +++ b/packages/worker/src/api/routes/global/tests/scim.spec.ts @@ -255,6 +255,45 @@ describe("scim", () => { ) }) + it("a new user can minim information", async () => { + const userData = { + externalId: structures.uuid(), + email: structures.generator.email(), + username: structures.generator.name(), + firstName: undefined, + lastName: undefined, + } + const body = structures.scim.createUserRequest(userData) + + const response = await postScimUser({ body }) + + const expectedScimUser = { + schemas: ["urn:ietf:params:scim:schemas:core:2.0:User"], + id: expect.any(String), + externalId: userData.externalId, + meta: { + resourceType: "User", + created: mocks.date.MOCK_DATE.toISOString(), + lastModified: mocks.date.MOCK_DATE.toISOString(), + }, + userName: userData.username, + active: true, + emails: [ + { + value: userData.email, + type: "work", + primary: true, + }, + ], + } + expect(response).toEqual(expectedScimUser) + + const persistedUsers = await config.api.scimUsersAPI.get() + expect(persistedUsers.Resources).toEqual( + expect.arrayContaining([expectedScimUser]) + ) + }) + it("an event is dispatched", async () => { const body = structures.scim.createUserRequest() @@ -398,7 +437,7 @@ describe("scim", () => { name: { ...user.name, familyName: newFamilyName, - formatted: `${user.name.givenName} ${newFamilyName}`, + formatted: `${user.name!.givenName} ${newFamilyName}`, }, } expect(response).toEqual(expectedScimUser) From ef0293bc6cfb6de4e8964ce95a88a0474dcf97f8 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Wed, 12 Apr 2023 02:25:53 +0100 Subject: [PATCH 24/37] encryption tests 100% --- .../src/security/tests/encryption.spec.ts | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/packages/backend-core/src/security/tests/encryption.spec.ts b/packages/backend-core/src/security/tests/encryption.spec.ts index d48f73a87e..d926e78d70 100644 --- a/packages/backend-core/src/security/tests/encryption.spec.ts +++ b/packages/backend-core/src/security/tests/encryption.spec.ts @@ -1,32 +1,43 @@ +import environment from "../../environment" import { encrypt, decrypt, SecretOption, getSecret } from "../encryption" -jest.mock("../../environment", () => ({ - API_ENCRYPTION_KEY: "mock-api-encryption-key", - ENCRYPTION_KEY: "mock-encryption-key", -})) -describe("encryption", () => { - const plaintext = "budibase" - const apiEncrypted = encrypt(plaintext, SecretOption.API) - const encryptionEncrypted = encrypt(plaintext, SecretOption.ENCRYPTION) +jest.mock("../../environment", () => ({ + isDev: jest.fn(() => "production"), +})) + +describe("encryption", () => { it("should encrypt and decrypt a string using API encryption key", () => { + environment.API_ENCRYPTION_KEY = "mock-api-key" + environment.ENCRYPTION_KEY = "encryption-key" + const plaintext = "budibase" + const apiEncrypted = encrypt(plaintext, SecretOption.API) + const encryptionEncrypted = encrypt(plaintext, SecretOption.ENCRYPTION) const decrypted = decrypt(apiEncrypted, SecretOption.API) expect(decrypted).toEqual(plaintext) }) it("should encrypt and decrypt a string using encryption key", () => { + environment.API_ENCRYPTION_KEY = "mock-api-key" + environment.ENCRYPTION_KEY = "encryption-key" + const plaintext = "budibase" + const apiEncrypted = encrypt(plaintext, SecretOption.API) + const encryptionEncrypted = encrypt(plaintext, SecretOption.ENCRYPTION) const decrypted = decrypt(encryptionEncrypted, SecretOption.ENCRYPTION) expect(decrypted).toEqual(plaintext) }) - it("should throw an error if encryption key is not set", () => { - expect(() => getSecret(SecretOption.ENCRYPTION)).toThrow( - 'Secret "ENCRYPTION_KEY" has not been set in environment.' - ) - }) - it("should throw an error if API encryption key is not set", () => { + environment.API_ENCRYPTION_KEY = "" + environment.ENCRYPTION_KEY = "" expect(() => getSecret(SecretOption.API)).toThrow( 'Secret "API_ENCRYPTION_KEY" has not been set in environment.' ) }) + it("should throw an error if encryption key is not set", () => { + environment.API_ENCRYPTION_KEY = "" + environment.ENCRYPTION_KEY = "" + expect(() => getSecret(SecretOption.ENCRYPTION)).toThrow( + 'Secret "ENCRYPTION_KEY" has not been set in environment.' + ) + }) }) From f427763308c29620ef8ed36ad280559c39cf68c3 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Wed, 12 Apr 2023 02:29:30 +0100 Subject: [PATCH 25/37] export function to make test easier --- packages/backend-core/src/security/encryption.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-core/src/security/encryption.ts b/packages/backend-core/src/security/encryption.ts index d2c8f18f73..f9adb68955 100644 --- a/packages/backend-core/src/security/encryption.ts +++ b/packages/backend-core/src/security/encryption.ts @@ -12,7 +12,7 @@ export enum SecretOption { ENCRYPTION = "encryption", } -function getSecret(secretOption: SecretOption): string { +export function getSecret(secretOption: SecretOption): string { let secret, secretName switch (secretOption) { case SecretOption.ENCRYPTION: From a4e2c41c1cadbefdb9da59af893bb88aacf0d6ee Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 09:07:40 +0000 Subject: [PATCH 26/37] v2.4.44-alpha.13 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 6 +++--- packages/builder/package.json | 12 ++++++------ packages/cli/package.json | 8 ++++---- packages/client/package.json | 12 ++++++------ packages/frontend-core/package.json | 6 +++--- packages/sdk/package.json | 2 +- packages/server/package.json | 12 ++++++------ packages/shared-core/package.json | 4 ++-- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/lerna.json b/lerna.json index 29c24ab35e..d5406d4d77 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "npmClient": "yarn", "packages": ["packages/*"], "command": { diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 9d3f75c583..6be08ee63c 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -24,7 +24,7 @@ "dependencies": { "@budibase/nano": "10.1.2", "@budibase/pouchdb-replication-stream": "1.2.10", - "@budibase/types": "2.4.44-alpha.12", + "@budibase/types": "2.4.44-alpha.13", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index c019e4165c..8c30e05280 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,8 +38,8 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/shared-core": "2.4.44-alpha.12", - "@budibase/string-templates": "2.4.44-alpha.12", + "@budibase/shared-core": "2.4.44-alpha.13", + "@budibase/string-templates": "2.4.44-alpha.13", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index 97fac1e9a4..04f0dd8410 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,11 +58,11 @@ } }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.12", - "@budibase/client": "2.4.44-alpha.12", - "@budibase/frontend-core": "2.4.44-alpha.12", - "@budibase/shared-core": "2.4.44-alpha.12", - "@budibase/string-templates": "2.4.44-alpha.12", + "@budibase/bbui": "2.4.44-alpha.13", + "@budibase/client": "2.4.44-alpha.13", + "@budibase/frontend-core": "2.4.44-alpha.13", + "@budibase/shared-core": "2.4.44-alpha.13", + "@budibase/string-templates": "2.4.44-alpha.13", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f4d530646b..9ba20d2ec9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "dist/index.js", "bin": { @@ -29,9 +29,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.12", - "@budibase/string-templates": "2.4.44-alpha.12", - "@budibase/types": "2.4.44-alpha.12", + "@budibase/backend-core": "2.4.44-alpha.13", + "@budibase/string-templates": "2.4.44-alpha.13", + "@budibase/types": "2.4.44-alpha.13", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 82768ccc16..0f5a0ed804 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,11 +19,11 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.12", - "@budibase/frontend-core": "2.4.44-alpha.12", - "@budibase/shared-core": "2.4.44-alpha.12", - "@budibase/string-templates": "2.4.44-alpha.12", - "@budibase/types": "2.4.44-alpha.12", + "@budibase/bbui": "2.4.44-alpha.13", + "@budibase/frontend-core": "2.4.44-alpha.13", + "@budibase/shared-core": "2.4.44-alpha.13", + "@budibase/string-templates": "2.4.44-alpha.13", + "@budibase/types": "2.4.44-alpha.13", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 7577e7c092..700f3505d1 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,13 +1,13 @@ { "name": "@budibase/frontend-core", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.4.44-alpha.12", - "@budibase/shared-core": "2.4.44-alpha.12", + "@budibase/bbui": "2.4.44-alpha.13", + "@budibase/shared-core": "2.4.44-alpha.13", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 852948bce7..9e97be032e 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index eb88e27bbe..09b3cb94d3 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -45,12 +45,12 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.4.44-alpha.12", - "@budibase/client": "2.4.44-alpha.12", + "@budibase/backend-core": "2.4.44-alpha.13", + "@budibase/client": "2.4.44-alpha.13", "@budibase/pro": "2.4.44-alpha.12", - "@budibase/shared-core": "2.4.44-alpha.12", - "@budibase/string-templates": "2.4.44-alpha.12", - "@budibase/types": "2.4.44-alpha.12", + "@budibase/shared-core": "2.4.44-alpha.13", + "@budibase/string-templates": "2.4.44-alpha.13", + "@budibase/types": "2.4.44-alpha.13", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/shared-core/package.json b/packages/shared-core/package.json index 941285aa7e..0236b87e24 100644 --- a/packages/shared-core/package.json +++ b/packages/shared-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/shared-core", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Shared data utils", "main": "dist/cjs/src/index.js", "types": "dist/mjs/src/index.d.ts", @@ -20,7 +20,7 @@ "dev:builder": "yarn prebuild && concurrently \"tsc -p tsconfig.build.json --watch\" \"tsc -p tsconfig-cjs.build.json --watch\"" }, "dependencies": { - "@budibase/types": "2.4.44-alpha.12" + "@budibase/types": "2.4.44-alpha.13" }, "devDependencies": { "concurrently": "^7.6.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 3b871d1d56..4a910bcf33 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 4704f28e5e..66b122de31 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase types", "main": "dist/cjs/index.js", "types": "dist/mjs/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 42cb8a18d3..5098c802f9 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.4.44-alpha.12", + "version": "2.4.44-alpha.13", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -37,10 +37,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.12", + "@budibase/backend-core": "2.4.44-alpha.13", "@budibase/pro": "2.4.44-alpha.12", - "@budibase/string-templates": "2.4.44-alpha.12", - "@budibase/types": "2.4.44-alpha.12", + "@budibase/string-templates": "2.4.44-alpha.13", + "@budibase/types": "2.4.44-alpha.13", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 1d7ba831ca6f692fff53409dabc7e481651bbc65 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 09:10:56 +0000 Subject: [PATCH 27/37] Update pro version to 2.4.44-alpha.13 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 09b3cb94d3..c20a3c091d 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -47,7 +47,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.4.44-alpha.13", "@budibase/client": "2.4.44-alpha.13", - "@budibase/pro": "2.4.44-alpha.12", + "@budibase/pro": "2.4.44-alpha.13", "@budibase/shared-core": "2.4.44-alpha.13", "@budibase/string-templates": "2.4.44-alpha.13", "@budibase/types": "2.4.44-alpha.13", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index b0a06f30c0..20cd514ae0 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1290,14 +1290,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.12": - version "2.4.44-alpha.12" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.12.tgz#ac5617e6ccb844252fb998ea8daac2d635fe9b95" - integrity sha512-KB7WzDNYqdV3XEII4qyER6BXkkKPBA9UBZ+9QOHUsJgdDWyJjZQUXho5T4DOdFUNCsNrZ0MCMOZWNBG6W5bTXg== +"@budibase/backend-core@2.4.44-alpha.13": + version "2.4.44-alpha.13" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.13.tgz#33358c4751782f8730c7afed09712752051fd8ee" + integrity sha512-psTUHG1vAczFELNOtDz0OkDXS0iVmXDIMoOM6IEmI12J9YH5V6QwignZVdje7U259JQPjCRkZTVRFTIYZxHjVw== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.12" + "@budibase/types" "2.4.44-alpha.13" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1430,15 +1430,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.12": - version "2.4.44-alpha.12" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.12.tgz#964c0f0fd0b9c2e7cfbb1a39a455d84ea6c927ba" - integrity sha512-C1VXMKGvdzu55rVbTad1SE37EXPA36OWzFQ1IC6YEl4cs7bR6x7e8yXmn2LBH7uk8qArmjMrYJPKSmIlSHYfcA== +"@budibase/pro@2.4.44-alpha.13": + version "2.4.44-alpha.13" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.13.tgz#11508d270fc4696eb573b347726803cdd6f6f743" + integrity sha512-n+sl4OnBA6Tzo8RdMEggfi9MCdUxuXjhpSlt7Q8Bc7K3dGIdqkbIXV9D6mA8+F9R5a+L8oQpa6oT5rJyIKFZ7g== dependencies: - "@budibase/backend-core" "2.4.44-alpha.12" + "@budibase/backend-core" "2.4.44-alpha.13" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.12" + "@budibase/types" "2.4.44-alpha.13" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1491,10 +1491,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.12": - version "2.4.44-alpha.12" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.12.tgz#cb7ad803f81ae2fd57412ef744b7dc953227b755" - integrity sha512-BJz4HtMVxnRJ+PJdgkJkRiL9FVMZPMx5ReikWalJPb2cYrceNsyZy04avuedIBCnS5S+6HXhGi7Hezlnm4unQQ== +"@budibase/types@2.4.44-alpha.13": + version "2.4.44-alpha.13" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.13.tgz#1b2b3542ed1695c17bd1c9153efc541283bdd9bb" + integrity sha512-nkQ5d8QAF0ybwA9/PkIg5ufl8EhY/8V+KWL660U8IlHz2rTzGfPecBncPa9gzgswD7cl8VJZhBf5FPaNX6SeuQ== dependencies: scim-patch "^0.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 5098c802f9..3cf46c119b 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -38,7 +38,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.4.44-alpha.13", - "@budibase/pro": "2.4.44-alpha.12", + "@budibase/pro": "2.4.44-alpha.13", "@budibase/string-templates": "2.4.44-alpha.13", "@budibase/types": "2.4.44-alpha.13", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index de0a8e9656..6b25a08941 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -475,14 +475,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.12": - version "2.4.44-alpha.12" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.12.tgz#ac5617e6ccb844252fb998ea8daac2d635fe9b95" - integrity sha512-KB7WzDNYqdV3XEII4qyER6BXkkKPBA9UBZ+9QOHUsJgdDWyJjZQUXho5T4DOdFUNCsNrZ0MCMOZWNBG6W5bTXg== +"@budibase/backend-core@2.4.44-alpha.13": + version "2.4.44-alpha.13" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.13.tgz#33358c4751782f8730c7afed09712752051fd8ee" + integrity sha512-psTUHG1vAczFELNOtDz0OkDXS0iVmXDIMoOM6IEmI12J9YH5V6QwignZVdje7U259JQPjCRkZTVRFTIYZxHjVw== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.12" + "@budibase/types" "2.4.44-alpha.13" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -565,15 +565,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.12": - version "2.4.44-alpha.12" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.12.tgz#964c0f0fd0b9c2e7cfbb1a39a455d84ea6c927ba" - integrity sha512-C1VXMKGvdzu55rVbTad1SE37EXPA36OWzFQ1IC6YEl4cs7bR6x7e8yXmn2LBH7uk8qArmjMrYJPKSmIlSHYfcA== +"@budibase/pro@2.4.44-alpha.13": + version "2.4.44-alpha.13" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.13.tgz#11508d270fc4696eb573b347726803cdd6f6f743" + integrity sha512-n+sl4OnBA6Tzo8RdMEggfi9MCdUxuXjhpSlt7Q8Bc7K3dGIdqkbIXV9D6mA8+F9R5a+L8oQpa6oT5rJyIKFZ7g== dependencies: - "@budibase/backend-core" "2.4.44-alpha.12" + "@budibase/backend-core" "2.4.44-alpha.13" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.12" + "@budibase/types" "2.4.44-alpha.13" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -608,10 +608,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.12": - version "2.4.44-alpha.12" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.12.tgz#cb7ad803f81ae2fd57412ef744b7dc953227b755" - integrity sha512-BJz4HtMVxnRJ+PJdgkJkRiL9FVMZPMx5ReikWalJPb2cYrceNsyZy04avuedIBCnS5S+6HXhGi7Hezlnm4unQQ== +"@budibase/types@2.4.44-alpha.13": + version "2.4.44-alpha.13" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.13.tgz#1b2b3542ed1695c17bd1c9153efc541283bdd9bb" + integrity sha512-nkQ5d8QAF0ybwA9/PkIg5ufl8EhY/8V+KWL660U8IlHz2rTzGfPecBncPa9gzgswD7cl8VJZhBf5FPaNX6SeuQ== dependencies: scim-patch "^0.7.0" From df38368eafbfae4db65865cc507ba4242bd8ed67 Mon Sep 17 00:00:00 2001 From: Mateus Badan de Pieri Date: Wed, 12 Apr 2023 11:06:01 +0100 Subject: [PATCH 28/37] removing tests --- .../src/security/tests/permissions.spec.ts | 60 ------------------- .../src/security/tests/roles.spec.ts | 33 ---------- 2 files changed, 93 deletions(-) delete mode 100644 packages/backend-core/src/security/tests/permissions.spec.ts delete mode 100644 packages/backend-core/src/security/tests/roles.spec.ts diff --git a/packages/backend-core/src/security/tests/permissions.spec.ts b/packages/backend-core/src/security/tests/permissions.spec.ts deleted file mode 100644 index 292fe4ae56..0000000000 --- a/packages/backend-core/src/security/tests/permissions.spec.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { - doesHaveBasePermission, - getBuiltinPermissionByID, - isPermissionLevelHigherThanRead, - PermissionLevel, - PermissionType, -} from "../permissions" - -xdescribe("getBuiltinPermissionByID", () => { - it("should return the correct permission object", () => { - const id = "123" - const permission = { _id: id, name: "Test Permission" } - expect(getBuiltinPermissionByID(id)).toEqual(permission) - expect(getBuiltinPermissionByID("456")).toBeUndefined() - }) -}) - -xdescribe("doesHaveBasePermission", () => { - it("should return true if base permission has the required level", () => { - const permType = PermissionType.APP - const permLevel = PermissionLevel.READ - const rolesHierarchy = [ - { roleId: "role1", permissionId: "permission1" }, - { roleId: "role2", permissionId: "permission2" }, - ] - expect( - doesHaveBasePermission( - permType, - permLevel, - rolesHierarchy - ) - ).toBeTruthy() - }) - - it("should return false if base permission does not have the required level", () => { - const permType = PermissionType.APP - const permLevel = PermissionLevel.READ - const rolesHierarchy = [ - { roleId: "role1", permissionId: "permission1" }, - { roleId: "role2", permissionId: "permission2" }, - ] - expect( - doesHaveBasePermission( - permType, - permLevel, - rolesHierarchy - ) - ).toBeFalsy() - }) -}) - -xdescribe("isPermissionLevelHigherThanRead", () => { - it("should return true if level is higher than read", () => { - expect(isPermissionLevelHigherThanRead(PermissionLevel.WRITE)).toBeTruthy() - }) - - it("should return false if level is read or lower", () => { - expect(isPermissionLevelHigherThanRead(PermissionLevel.READ)).toBeFalsy() - }) -}) diff --git a/packages/backend-core/src/security/tests/roles.spec.ts b/packages/backend-core/src/security/tests/roles.spec.ts deleted file mode 100644 index 7e233a5cca..0000000000 --- a/packages/backend-core/src/security/tests/roles.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PermissionLevel } from "../permissions" -import { Role, getBuiltinRoles } from "../roles" - -xdescribe("Role", () => { - describe("constructor", () => { - test("it should initialize _id, name, and permissionId", () => { - const role = new Role("my-role", "My Role", PermissionLevel.READ) - expect(role._id).toEqual("my-role") - expect(role.name).toEqual("My Role") - expect(role.permissionId).toEqual(PermissionLevel.READ) - }) - }) - - describe("addInheritance", () => { - test("it should add the inheritance property to the role", () => { - const role = new Role("my-role", "My Role", PermissionLevel.READ) - const newRole = role.addInheritance("other-role") - expect(newRole).toEqual(role) - expect(role.inherits).toEqual("other-role") - }) - }) - - describe("getBuiltinRoles", () => { - test("it should return an object of builtin roles", () => { - const builtinRoles = getBuiltinRoles() - expect(builtinRoles).toHaveProperty("ADMIN") - expect(builtinRoles).toHaveProperty("POWER") - expect(builtinRoles).toHaveProperty("BASIC") - expect(builtinRoles).toHaveProperty("PUBLIC") - expect(builtinRoles).not.toHaveProperty("BUILDER") - }) - }) -}) From 6ca999722c510d617690f279780006f3509f34a7 Mon Sep 17 00:00:00 2001 From: melohagan <101575380+melohagan@users.noreply.github.com> Date: Wed, 12 Apr 2023 11:51:18 +0100 Subject: [PATCH 29/37] Add file/upload size validation option (#10262) * Add file/upload size validation option * Max upload size handler * Update max total upload label --- .../ValidationEditor/ValidationDrawer.svelte | 18 +++++++++++++--- .../src/components/app/forms/validation.js | 21 +++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/packages/builder/src/components/design/settings/controls/ValidationEditor/ValidationDrawer.svelte b/packages/builder/src/components/design/settings/controls/ValidationEditor/ValidationDrawer.svelte index 2624c28e7f..8d9ca7e0cd 100644 --- a/packages/builder/src/components/design/settings/controls/ValidationEditor/ValidationDrawer.svelte +++ b/packages/builder/src/components/design/settings/controls/ValidationEditor/ValidationDrawer.svelte @@ -65,6 +65,14 @@ label: "Must not contain", value: "notContains", }, + MaxFileSize: { + label: "Max file size (MB)", + value: "maxFileSize", + }, + MaxUploadSize: { + label: "Max total upload size (MB)", + value: "maxUploadSize", + }, } const ConstraintMap = { ["string"]: [ @@ -94,7 +102,11 @@ Constraints.Equal, Constraints.NotEqual, ], - ["attachment"]: [Constraints.Required], + ["attachment"]: [ + Constraints.Required, + Constraints.MaxFileSize, + Constraints.MaxUploadSize, + ], ["link"]: [ Constraints.Required, Constraints.Contains, @@ -283,7 +295,7 @@ disabled={rule.constraint === "required"} on:change={e => (rule.value = e.detail)} /> - {:else if rule.type !== "array" && ["maxLength", "minLength", "regex", "notRegex", "contains", "notContains"].includes(rule.constraint)} + {:else if rule.type !== "array" && ["maxUploadSize", "maxFileSize", "maxLength", "minLength", "regex", "notRegex", "contains", "notContains"].includes(rule.constraint)} { return value == null || value.length <= limit } +// Evaluates a max file size (MB) constraint +const maxFileSizeHandler = (value, rule) => { + const limit = parseType(rule.value, "number") + return ( + value == null || + !value.some(attachment => attachment.size / 1000000 > limit) + ) +} + +// Evaluates a max total upload size (MB) constraint +const maxUploadSizeHandler = (value, rule) => { + const limit = parseType(rule.value, "number") + return ( + value == null || + value.reduce((acc, currentItem) => acc + currentItem.size, 0) / 1000000 <= + limit + ) +} + // Evaluates a min value constraint const minValueHandler = (value, rule) => { // Use same type as the value so that things can be compared @@ -330,6 +349,8 @@ const handlerMap = { contains: containsHandler, notContains: notContainsHandler, json: jsonHandler, + maxFileSize: maxFileSizeHandler, + maxUploadSize: maxUploadSizeHandler, } /** From f65a308ffd02133cec7e4201b84730956dae7f40 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 10:58:55 +0000 Subject: [PATCH 30/37] v2.4.44-alpha.14 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 6 +++--- packages/builder/package.json | 12 ++++++------ packages/cli/package.json | 8 ++++---- packages/client/package.json | 12 ++++++------ packages/frontend-core/package.json | 6 +++--- packages/sdk/package.json | 2 +- packages/server/package.json | 12 ++++++------ packages/shared-core/package.json | 4 ++-- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/lerna.json b/lerna.json index d5406d4d77..df6c72b069 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "npmClient": "yarn", "packages": ["packages/*"], "command": { diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 6be08ee63c..7bb1913f84 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -24,7 +24,7 @@ "dependencies": { "@budibase/nano": "10.1.2", "@budibase/pouchdb-replication-stream": "1.2.10", - "@budibase/types": "2.4.44-alpha.13", + "@budibase/types": "2.4.44-alpha.14", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 8c30e05280..e51e93bc33 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,8 +38,8 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/shared-core": "2.4.44-alpha.13", - "@budibase/string-templates": "2.4.44-alpha.13", + "@budibase/shared-core": "2.4.44-alpha.14", + "@budibase/string-templates": "2.4.44-alpha.14", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index 04f0dd8410..2532d531d5 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,11 +58,11 @@ } }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.13", - "@budibase/client": "2.4.44-alpha.13", - "@budibase/frontend-core": "2.4.44-alpha.13", - "@budibase/shared-core": "2.4.44-alpha.13", - "@budibase/string-templates": "2.4.44-alpha.13", + "@budibase/bbui": "2.4.44-alpha.14", + "@budibase/client": "2.4.44-alpha.14", + "@budibase/frontend-core": "2.4.44-alpha.14", + "@budibase/shared-core": "2.4.44-alpha.14", + "@budibase/string-templates": "2.4.44-alpha.14", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 9ba20d2ec9..3e98b8c026 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "dist/index.js", "bin": { @@ -29,9 +29,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.13", - "@budibase/string-templates": "2.4.44-alpha.13", - "@budibase/types": "2.4.44-alpha.13", + "@budibase/backend-core": "2.4.44-alpha.14", + "@budibase/string-templates": "2.4.44-alpha.14", + "@budibase/types": "2.4.44-alpha.14", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 0f5a0ed804..23bda85ceb 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,11 +19,11 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.13", - "@budibase/frontend-core": "2.4.44-alpha.13", - "@budibase/shared-core": "2.4.44-alpha.13", - "@budibase/string-templates": "2.4.44-alpha.13", - "@budibase/types": "2.4.44-alpha.13", + "@budibase/bbui": "2.4.44-alpha.14", + "@budibase/frontend-core": "2.4.44-alpha.14", + "@budibase/shared-core": "2.4.44-alpha.14", + "@budibase/string-templates": "2.4.44-alpha.14", + "@budibase/types": "2.4.44-alpha.14", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 700f3505d1..1c6621e52f 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,13 +1,13 @@ { "name": "@budibase/frontend-core", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.4.44-alpha.13", - "@budibase/shared-core": "2.4.44-alpha.13", + "@budibase/bbui": "2.4.44-alpha.14", + "@budibase/shared-core": "2.4.44-alpha.14", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 9e97be032e..3f08268d4c 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index c20a3c091d..91c2b0a0d6 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -45,12 +45,12 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.4.44-alpha.13", - "@budibase/client": "2.4.44-alpha.13", + "@budibase/backend-core": "2.4.44-alpha.14", + "@budibase/client": "2.4.44-alpha.14", "@budibase/pro": "2.4.44-alpha.13", - "@budibase/shared-core": "2.4.44-alpha.13", - "@budibase/string-templates": "2.4.44-alpha.13", - "@budibase/types": "2.4.44-alpha.13", + "@budibase/shared-core": "2.4.44-alpha.14", + "@budibase/string-templates": "2.4.44-alpha.14", + "@budibase/types": "2.4.44-alpha.14", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/shared-core/package.json b/packages/shared-core/package.json index 0236b87e24..47f6d97eca 100644 --- a/packages/shared-core/package.json +++ b/packages/shared-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/shared-core", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Shared data utils", "main": "dist/cjs/src/index.js", "types": "dist/mjs/src/index.d.ts", @@ -20,7 +20,7 @@ "dev:builder": "yarn prebuild && concurrently \"tsc -p tsconfig.build.json --watch\" \"tsc -p tsconfig-cjs.build.json --watch\"" }, "dependencies": { - "@budibase/types": "2.4.44-alpha.13" + "@budibase/types": "2.4.44-alpha.14" }, "devDependencies": { "concurrently": "^7.6.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 4a910bcf33..5980b54595 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 66b122de31..560825b662 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase types", "main": "dist/cjs/index.js", "types": "dist/mjs/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 3cf46c119b..7dfac867a3 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.4.44-alpha.13", + "version": "2.4.44-alpha.14", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -37,10 +37,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.13", + "@budibase/backend-core": "2.4.44-alpha.14", "@budibase/pro": "2.4.44-alpha.13", - "@budibase/string-templates": "2.4.44-alpha.13", - "@budibase/types": "2.4.44-alpha.13", + "@budibase/string-templates": "2.4.44-alpha.14", + "@budibase/types": "2.4.44-alpha.14", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 48a7d454b5bb15759d0909e37727dc26b68da765 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 11:01:52 +0000 Subject: [PATCH 31/37] Update pro version to 2.4.44-alpha.14 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 91c2b0a0d6..4924f5f304 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -47,7 +47,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.4.44-alpha.14", "@budibase/client": "2.4.44-alpha.14", - "@budibase/pro": "2.4.44-alpha.13", + "@budibase/pro": "2.4.44-alpha.14", "@budibase/shared-core": "2.4.44-alpha.14", "@budibase/string-templates": "2.4.44-alpha.14", "@budibase/types": "2.4.44-alpha.14", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 20cd514ae0..cb9af9c66e 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1290,14 +1290,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.13": - version "2.4.44-alpha.13" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.13.tgz#33358c4751782f8730c7afed09712752051fd8ee" - integrity sha512-psTUHG1vAczFELNOtDz0OkDXS0iVmXDIMoOM6IEmI12J9YH5V6QwignZVdje7U259JQPjCRkZTVRFTIYZxHjVw== +"@budibase/backend-core@2.4.44-alpha.14": + version "2.4.44-alpha.14" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.14.tgz#bac1fc304381c71f47705c963195619a1455ed41" + integrity sha512-ckwy6x9O++jip2c2QkH196Ti14wIfBiRBt8nKWBCMjm+mLGNtk9GZ8lK1GYwk2d56TNHXqOWa4trjTpfdHNPrA== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.13" + "@budibase/types" "2.4.44-alpha.14" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1430,15 +1430,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.13": - version "2.4.44-alpha.13" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.13.tgz#11508d270fc4696eb573b347726803cdd6f6f743" - integrity sha512-n+sl4OnBA6Tzo8RdMEggfi9MCdUxuXjhpSlt7Q8Bc7K3dGIdqkbIXV9D6mA8+F9R5a+L8oQpa6oT5rJyIKFZ7g== +"@budibase/pro@2.4.44-alpha.14": + version "2.4.44-alpha.14" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.14.tgz#e7c613d4a0709bd3103d7518686a6763a9a13227" + integrity sha512-WF2QExW8JmHy7zoIExA//pxMaOXztbA7tIsy+ojZcIRKDO8im8CwdtIFTq6vneGjQmH198sA2g3eR/PBnvt2zw== dependencies: - "@budibase/backend-core" "2.4.44-alpha.13" + "@budibase/backend-core" "2.4.44-alpha.14" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.13" + "@budibase/types" "2.4.44-alpha.14" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1491,10 +1491,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.13": - version "2.4.44-alpha.13" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.13.tgz#1b2b3542ed1695c17bd1c9153efc541283bdd9bb" - integrity sha512-nkQ5d8QAF0ybwA9/PkIg5ufl8EhY/8V+KWL660U8IlHz2rTzGfPecBncPa9gzgswD7cl8VJZhBf5FPaNX6SeuQ== +"@budibase/types@2.4.44-alpha.14": + version "2.4.44-alpha.14" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.14.tgz#3d925b621861dca38b1254a4b3a78f6b88fa78a6" + integrity sha512-mq/jYY9TN0/bFJu0nj4xVF+D6wmFlTbWpMtwQKAPE7y7dly3XZpxagcEWvBdSyIfuqi/Lbsf5q0xroI1GEgC+Q== dependencies: scim-patch "^0.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 7dfac867a3..450e1a46b3 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -38,7 +38,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.4.44-alpha.14", - "@budibase/pro": "2.4.44-alpha.13", + "@budibase/pro": "2.4.44-alpha.14", "@budibase/string-templates": "2.4.44-alpha.14", "@budibase/types": "2.4.44-alpha.14", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 6b25a08941..6951d30b40 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -475,14 +475,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.13": - version "2.4.44-alpha.13" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.13.tgz#33358c4751782f8730c7afed09712752051fd8ee" - integrity sha512-psTUHG1vAczFELNOtDz0OkDXS0iVmXDIMoOM6IEmI12J9YH5V6QwignZVdje7U259JQPjCRkZTVRFTIYZxHjVw== +"@budibase/backend-core@2.4.44-alpha.14": + version "2.4.44-alpha.14" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.14.tgz#bac1fc304381c71f47705c963195619a1455ed41" + integrity sha512-ckwy6x9O++jip2c2QkH196Ti14wIfBiRBt8nKWBCMjm+mLGNtk9GZ8lK1GYwk2d56TNHXqOWa4trjTpfdHNPrA== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.13" + "@budibase/types" "2.4.44-alpha.14" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -565,15 +565,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.13": - version "2.4.44-alpha.13" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.13.tgz#11508d270fc4696eb573b347726803cdd6f6f743" - integrity sha512-n+sl4OnBA6Tzo8RdMEggfi9MCdUxuXjhpSlt7Q8Bc7K3dGIdqkbIXV9D6mA8+F9R5a+L8oQpa6oT5rJyIKFZ7g== +"@budibase/pro@2.4.44-alpha.14": + version "2.4.44-alpha.14" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.14.tgz#e7c613d4a0709bd3103d7518686a6763a9a13227" + integrity sha512-WF2QExW8JmHy7zoIExA//pxMaOXztbA7tIsy+ojZcIRKDO8im8CwdtIFTq6vneGjQmH198sA2g3eR/PBnvt2zw== dependencies: - "@budibase/backend-core" "2.4.44-alpha.13" + "@budibase/backend-core" "2.4.44-alpha.14" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.13" + "@budibase/types" "2.4.44-alpha.14" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -608,10 +608,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.13": - version "2.4.44-alpha.13" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.13.tgz#1b2b3542ed1695c17bd1c9153efc541283bdd9bb" - integrity sha512-nkQ5d8QAF0ybwA9/PkIg5ufl8EhY/8V+KWL660U8IlHz2rTzGfPecBncPa9gzgswD7cl8VJZhBf5FPaNX6SeuQ== +"@budibase/types@2.4.44-alpha.14": + version "2.4.44-alpha.14" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.14.tgz#3d925b621861dca38b1254a4b3a78f6b88fa78a6" + integrity sha512-mq/jYY9TN0/bFJu0nj4xVF+D6wmFlTbWpMtwQKAPE7y7dly3XZpxagcEWvBdSyIfuqi/Lbsf5q0xroI1GEgC+Q== dependencies: scim-patch "^0.7.0" From ad393a829db8d049b53b6614ce76bfabb7ea6fc6 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 12:42:23 +0000 Subject: [PATCH 32/37] v2.4.44-alpha.15 --- lerna.json | 2 +- packages/backend-core/package.json | 6 +++--- packages/bbui/package.json | 6 +++--- packages/builder/package.json | 12 ++++++------ packages/cli/package.json | 8 ++++---- packages/client/package.json | 12 ++++++------ packages/frontend-core/package.json | 6 +++--- packages/sdk/package.json | 2 +- packages/server/package.json | 12 ++++++------ packages/shared-core/package.json | 4 ++-- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 13 files changed, 41 insertions(+), 41 deletions(-) diff --git a/lerna.json b/lerna.json index df6c72b069..d92b720c51 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "npmClient": "yarn", "packages": ["packages/*"], "command": { diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index d3c3c1fd37..3ecca93d5c 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -24,7 +24,7 @@ "dependencies": { "@budibase/nano": "10.1.2", "@budibase/pouchdb-replication-stream": "1.2.10", - "@budibase/types": "2.4.44-alpha.14", + "@budibase/types": "2.4.44-alpha.15", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", @@ -58,10 +58,10 @@ "zlib": "1.0.5" }, "devDependencies": { + "@jest/test-sequencer": "29.5.0", "@swc/core": "^1.3.25", "@swc/jest": "^0.2.24", "@trendyol/jest-testcontainers": "^2.1.1", - "@jest/test-sequencer": "29.5.0", "@types/chance": "1.1.3", "@types/ioredis": "4.28.0", "@types/jest": "28.1.1", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index e51e93bc33..0e3d6b21c6 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,8 +38,8 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/shared-core": "2.4.44-alpha.14", - "@budibase/string-templates": "2.4.44-alpha.14", + "@budibase/shared-core": "2.4.44-alpha.15", + "@budibase/string-templates": "2.4.44-alpha.15", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index 2532d531d5..cbe991c31a 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,11 +58,11 @@ } }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.14", - "@budibase/client": "2.4.44-alpha.14", - "@budibase/frontend-core": "2.4.44-alpha.14", - "@budibase/shared-core": "2.4.44-alpha.14", - "@budibase/string-templates": "2.4.44-alpha.14", + "@budibase/bbui": "2.4.44-alpha.15", + "@budibase/client": "2.4.44-alpha.15", + "@budibase/frontend-core": "2.4.44-alpha.15", + "@budibase/shared-core": "2.4.44-alpha.15", + "@budibase/string-templates": "2.4.44-alpha.15", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 3e98b8c026..6f22449622 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "dist/index.js", "bin": { @@ -29,9 +29,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.14", - "@budibase/string-templates": "2.4.44-alpha.14", - "@budibase/types": "2.4.44-alpha.14", + "@budibase/backend-core": "2.4.44-alpha.15", + "@budibase/string-templates": "2.4.44-alpha.15", + "@budibase/types": "2.4.44-alpha.15", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 23bda85ceb..c70bb2da19 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,11 +19,11 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.14", - "@budibase/frontend-core": "2.4.44-alpha.14", - "@budibase/shared-core": "2.4.44-alpha.14", - "@budibase/string-templates": "2.4.44-alpha.14", - "@budibase/types": "2.4.44-alpha.14", + "@budibase/bbui": "2.4.44-alpha.15", + "@budibase/frontend-core": "2.4.44-alpha.15", + "@budibase/shared-core": "2.4.44-alpha.15", + "@budibase/string-templates": "2.4.44-alpha.15", + "@budibase/types": "2.4.44-alpha.15", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 1c6621e52f..b5cf17fb3d 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,13 +1,13 @@ { "name": "@budibase/frontend-core", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.4.44-alpha.14", - "@budibase/shared-core": "2.4.44-alpha.14", + "@budibase/bbui": "2.4.44-alpha.15", + "@budibase/shared-core": "2.4.44-alpha.15", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 3f08268d4c..80ad281205 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index 4924f5f304..3887999bec 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -45,12 +45,12 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.4.44-alpha.14", - "@budibase/client": "2.4.44-alpha.14", + "@budibase/backend-core": "2.4.44-alpha.15", + "@budibase/client": "2.4.44-alpha.15", "@budibase/pro": "2.4.44-alpha.14", - "@budibase/shared-core": "2.4.44-alpha.14", - "@budibase/string-templates": "2.4.44-alpha.14", - "@budibase/types": "2.4.44-alpha.14", + "@budibase/shared-core": "2.4.44-alpha.15", + "@budibase/string-templates": "2.4.44-alpha.15", + "@budibase/types": "2.4.44-alpha.15", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/shared-core/package.json b/packages/shared-core/package.json index 47f6d97eca..13cbc881ec 100644 --- a/packages/shared-core/package.json +++ b/packages/shared-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/shared-core", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Shared data utils", "main": "dist/cjs/src/index.js", "types": "dist/mjs/src/index.d.ts", @@ -20,7 +20,7 @@ "dev:builder": "yarn prebuild && concurrently \"tsc -p tsconfig.build.json --watch\" \"tsc -p tsconfig-cjs.build.json --watch\"" }, "dependencies": { - "@budibase/types": "2.4.44-alpha.14" + "@budibase/types": "2.4.44-alpha.15" }, "devDependencies": { "concurrently": "^7.6.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 5980b54595..f51bc8a8c8 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 560825b662..ca7921d9c4 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase types", "main": "dist/cjs/index.js", "types": "dist/mjs/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 450e1a46b3..6a4f1df2fa 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.4.44-alpha.14", + "version": "2.4.44-alpha.15", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -37,10 +37,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.14", + "@budibase/backend-core": "2.4.44-alpha.15", "@budibase/pro": "2.4.44-alpha.14", - "@budibase/string-templates": "2.4.44-alpha.14", - "@budibase/types": "2.4.44-alpha.14", + "@budibase/string-templates": "2.4.44-alpha.15", + "@budibase/types": "2.4.44-alpha.15", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From cc929b93a9b29df42272123a0266acec6efb3800 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 12:45:51 +0000 Subject: [PATCH 33/37] Update pro version to 2.4.44-alpha.15 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 3887999bec..80f91a76b4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -47,7 +47,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.4.44-alpha.15", "@budibase/client": "2.4.44-alpha.15", - "@budibase/pro": "2.4.44-alpha.14", + "@budibase/pro": "2.4.44-alpha.15", "@budibase/shared-core": "2.4.44-alpha.15", "@budibase/string-templates": "2.4.44-alpha.15", "@budibase/types": "2.4.44-alpha.15", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index cb9af9c66e..1ad95cc6ba 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1290,14 +1290,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.14": - version "2.4.44-alpha.14" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.14.tgz#bac1fc304381c71f47705c963195619a1455ed41" - integrity sha512-ckwy6x9O++jip2c2QkH196Ti14wIfBiRBt8nKWBCMjm+mLGNtk9GZ8lK1GYwk2d56TNHXqOWa4trjTpfdHNPrA== +"@budibase/backend-core@2.4.44-alpha.15": + version "2.4.44-alpha.15" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.15.tgz#a5466f2d82a74deb73b36ea07e14be8f1846b6b5" + integrity sha512-ypBgzCvt0XSWfLfm0IxkGIHjoVTZEDIWUTmQY1I+z/B+jo8WyBlccTc9BdBbuZ7EIEl2nsK5oFCqzmZRi9lh1w== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.14" + "@budibase/types" "2.4.44-alpha.15" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1430,15 +1430,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.14": - version "2.4.44-alpha.14" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.14.tgz#e7c613d4a0709bd3103d7518686a6763a9a13227" - integrity sha512-WF2QExW8JmHy7zoIExA//pxMaOXztbA7tIsy+ojZcIRKDO8im8CwdtIFTq6vneGjQmH198sA2g3eR/PBnvt2zw== +"@budibase/pro@2.4.44-alpha.15": + version "2.4.44-alpha.15" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.15.tgz#f34adfbec7cf886278c495a54e30c6a4e3757873" + integrity sha512-RiFGAHsEY4t3tpIl/Jkq9LNkckkf8xO50M70e5su95QTGRvXc2YY3dkeQ03mMjFJvELJmpYwrO9p4iTo4uWZqQ== dependencies: - "@budibase/backend-core" "2.4.44-alpha.14" + "@budibase/backend-core" "2.4.44-alpha.15" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.14" + "@budibase/types" "2.4.44-alpha.15" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1491,10 +1491,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.14": - version "2.4.44-alpha.14" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.14.tgz#3d925b621861dca38b1254a4b3a78f6b88fa78a6" - integrity sha512-mq/jYY9TN0/bFJu0nj4xVF+D6wmFlTbWpMtwQKAPE7y7dly3XZpxagcEWvBdSyIfuqi/Lbsf5q0xroI1GEgC+Q== +"@budibase/types@2.4.44-alpha.15": + version "2.4.44-alpha.15" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.15.tgz#51a042cd211b513163717a751ad65d89e9c098da" + integrity sha512-BauwT9+1/r7vCb/YOSOWmCyZM/e3NOX2ZaRLe7tjK0T9L8r8aQYBQrHip8sKeZL+fCJVlioqTaDqUsn4n4E76Q== dependencies: scim-patch "^0.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 6a4f1df2fa..efcb430c15 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -38,7 +38,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.4.44-alpha.15", - "@budibase/pro": "2.4.44-alpha.14", + "@budibase/pro": "2.4.44-alpha.15", "@budibase/string-templates": "2.4.44-alpha.15", "@budibase/types": "2.4.44-alpha.15", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 6951d30b40..a565186a6c 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -475,14 +475,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.14": - version "2.4.44-alpha.14" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.14.tgz#bac1fc304381c71f47705c963195619a1455ed41" - integrity sha512-ckwy6x9O++jip2c2QkH196Ti14wIfBiRBt8nKWBCMjm+mLGNtk9GZ8lK1GYwk2d56TNHXqOWa4trjTpfdHNPrA== +"@budibase/backend-core@2.4.44-alpha.15": + version "2.4.44-alpha.15" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.15.tgz#a5466f2d82a74deb73b36ea07e14be8f1846b6b5" + integrity sha512-ypBgzCvt0XSWfLfm0IxkGIHjoVTZEDIWUTmQY1I+z/B+jo8WyBlccTc9BdBbuZ7EIEl2nsK5oFCqzmZRi9lh1w== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.14" + "@budibase/types" "2.4.44-alpha.15" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -565,15 +565,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.14": - version "2.4.44-alpha.14" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.14.tgz#e7c613d4a0709bd3103d7518686a6763a9a13227" - integrity sha512-WF2QExW8JmHy7zoIExA//pxMaOXztbA7tIsy+ojZcIRKDO8im8CwdtIFTq6vneGjQmH198sA2g3eR/PBnvt2zw== +"@budibase/pro@2.4.44-alpha.15": + version "2.4.44-alpha.15" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.15.tgz#f34adfbec7cf886278c495a54e30c6a4e3757873" + integrity sha512-RiFGAHsEY4t3tpIl/Jkq9LNkckkf8xO50M70e5su95QTGRvXc2YY3dkeQ03mMjFJvELJmpYwrO9p4iTo4uWZqQ== dependencies: - "@budibase/backend-core" "2.4.44-alpha.14" + "@budibase/backend-core" "2.4.44-alpha.15" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.14" + "@budibase/types" "2.4.44-alpha.15" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -608,10 +608,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.14": - version "2.4.44-alpha.14" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.14.tgz#3d925b621861dca38b1254a4b3a78f6b88fa78a6" - integrity sha512-mq/jYY9TN0/bFJu0nj4xVF+D6wmFlTbWpMtwQKAPE7y7dly3XZpxagcEWvBdSyIfuqi/Lbsf5q0xroI1GEgC+Q== +"@budibase/types@2.4.44-alpha.15": + version "2.4.44-alpha.15" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.15.tgz#51a042cd211b513163717a751ad65d89e9c098da" + integrity sha512-BauwT9+1/r7vCb/YOSOWmCyZM/e3NOX2ZaRLe7tjK0T9L8r8aQYBQrHip8sKeZL+fCJVlioqTaDqUsn4n4E76Q== dependencies: scim-patch "^0.7.0" From 3b9887c66c7e47d40dd9545f6763f88c072d187d Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Wed, 12 Apr 2023 13:49:25 +0100 Subject: [PATCH 34/37] Use helm .Chart.AppVersion instead of specifying value (#9933) * Use helm .Chart.AppVersion instead of specifying value * Backwards compatibility with existing process for deploying chart from source where Chart.AppVersion hasn't been generated yet --- .github/workflows/deploy-cloud.yaml | 2 +- charts/budibase/templates/app-service-deployment.yaml | 6 +++++- charts/budibase/templates/proxy-service-deployment.yaml | 6 +++++- charts/budibase/templates/worker-service-deployment.yaml | 6 +++++- charts/budibase/values.yaml | 2 +- scripts/releaseHelmChart.js | 7 ------- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index fa80da846f..5bc3f0bbca 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -55,7 +55,7 @@ jobs: config-files: values.production.yaml chart-path: charts/budibase namespace: budibase - values: globals.appVersion=v${{ env.RELEASE_VERSION }},services.couchdb.url=${{ secrets.PRODUCTION_COUCHDB_URL }},services.couchdb.password=${{ secrets.PRODUCTION_COUCHDB_PASSWORD }} + values: globals.appVersion=${{ env.RELEASE_VERSION }},services.couchdb.url=${{ secrets.PRODUCTION_COUCHDB_URL }},services.couchdb.password=${{ secrets.PRODUCTION_COUCHDB_PASSWORD }} name: budibase-prod - name: Discord Webhook Action diff --git a/charts/budibase/templates/app-service-deployment.yaml b/charts/budibase/templates/app-service-deployment.yaml index 6ba9337f5b..e7abf82de0 100644 --- a/charts/budibase/templates/app-service-deployment.yaml +++ b/charts/budibase/templates/app-service-deployment.yaml @@ -199,7 +199,11 @@ spec: value: {{ .Values.services.tlsRejectUnauthorized }} {{ end }} - image: budibase/apps:{{ .Values.globals.appVersion }} + {{ if .Values.globals.appVersion }} + image: budibase/apps:v{{ .Values.globals.appVersion }} + {{ else }} + image: budibase/apps:v{{ .Chart.AppVersion }} + {{ end }} imagePullPolicy: Always livenessProbe: httpGet: diff --git a/charts/budibase/templates/proxy-service-deployment.yaml b/charts/budibase/templates/proxy-service-deployment.yaml index 42af458a8c..191f892565 100644 --- a/charts/budibase/templates/proxy-service-deployment.yaml +++ b/charts/budibase/templates/proxy-service-deployment.yaml @@ -37,7 +37,11 @@ spec: {{ end }} spec: containers: - - image: budibase/proxy:{{ .Values.globals.appVersion }} + {{ if .Values.globals.appVersion }} + image: budibase/proxy:v{{ .Values.globals.appVersion }} + {{ else }} + image: budibase/proxy:v{{ .Chart.AppVersion }} + {{ end }} imagePullPolicy: Always name: proxy-service ports: diff --git a/charts/budibase/templates/worker-service-deployment.yaml b/charts/budibase/templates/worker-service-deployment.yaml index 0df295b5d6..69f864cfc0 100644 --- a/charts/budibase/templates/worker-service-deployment.yaml +++ b/charts/budibase/templates/worker-service-deployment.yaml @@ -189,7 +189,11 @@ spec: value: {{ .Values.services.tlsRejectUnauthorized }} {{ end }} - image: budibase/worker:{{ .Values.globals.appVersion }} + {{ if .Values.globals.appVersion }} + image: budibase/worker:v{{ .Values.globals.appVersion }} + {{ else }} + image: budibase/worker:v{{ .Chart.AppVersion }} + {{ end }} imagePullPolicy: Always livenessProbe: httpGet: diff --git a/charts/budibase/values.yaml b/charts/budibase/values.yaml index dbf6b6b46e..2d89e81b7f 100644 --- a/charts/budibase/values.yaml +++ b/charts/budibase/values.yaml @@ -74,7 +74,7 @@ tolerations: [] affinity: {} globals: - appVersion: "latest" + appVersion: "" # Use as an override to .Chart.AppVersion budibaseEnv: PRODUCTION tenantFeatureFlags: "*:LICENSING,*:USER_GROUPS,*:ONBOARDING_TOUR" enableAnalytics: "1" diff --git a/scripts/releaseHelmChart.js b/scripts/releaseHelmChart.js index 0e469bd012..45ae01df0e 100755 --- a/scripts/releaseHelmChart.js +++ b/scripts/releaseHelmChart.js @@ -2,15 +2,8 @@ const yaml = require("js-yaml") const fs = require("fs") const path = require("path") -const UpgradeTypes = { - MAJOR: "major", - MINOR: "minor", - PATCH: "patch" -} - const CHART_PATH = path.join(__dirname, "../", "charts", "budibase", "Chart.yaml") const UPGRADE_VERSION = process.env.BUDIBASE_RELEASE_VERSION -const UPGRADE_TYPE = process.env.HELM_CHART_UPGRADE_TYPE || UpgradeTypes.PATCH if (!UPGRADE_VERSION) { throw new Error("BUDIBASE_RELEASE_VERSION env var must be set.") From 3a5e31710cec67f4fdae53968798ae3f31f81c44 Mon Sep 17 00:00:00 2001 From: melohagan <101575380+melohagan@users.noreply.github.com> Date: Wed, 12 Apr 2023 13:51:40 +0100 Subject: [PATCH 35/37] Add db prop to redis integration (#10210) * Add db prop to redis integration * Add DB display * Default DB value to 0 --- packages/server/src/integrations/redis.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/server/src/integrations/redis.ts b/packages/server/src/integrations/redis.ts index 4704b8e483..73ef2bb55c 100644 --- a/packages/server/src/integrations/redis.ts +++ b/packages/server/src/integrations/redis.ts @@ -6,6 +6,7 @@ interface RedisConfig { port: number username: string password?: string + db?: number } const SCHEMA: Integration = { @@ -32,6 +33,12 @@ const SCHEMA: Integration = { type: "password", required: false, }, + db: { + type: "number", + required: false, + display: "DB", + default: 0, + }, }, query: { create: { @@ -88,6 +95,7 @@ class RedisIntegration { port: this.config.port, username: this.config.username, password: this.config.password, + db: this.config.db, }) } From 9afbb300fad724284f1777e691d1f3b19f04c898 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 13:07:38 +0000 Subject: [PATCH 36/37] v2.4.44-alpha.16 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 6 +++--- packages/builder/package.json | 12 ++++++------ packages/cli/package.json | 8 ++++---- packages/client/package.json | 12 ++++++------ packages/frontend-core/package.json | 6 +++--- packages/sdk/package.json | 2 +- packages/server/package.json | 12 ++++++------ packages/shared-core/package.json | 4 ++-- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/lerna.json b/lerna.json index d92b720c51..19f4e3e40b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "npmClient": "yarn", "packages": ["packages/*"], "command": { diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 3ecca93d5c..6110e6d461 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -24,7 +24,7 @@ "dependencies": { "@budibase/nano": "10.1.2", "@budibase/pouchdb-replication-stream": "1.2.10", - "@budibase/types": "2.4.44-alpha.15", + "@budibase/types": "2.4.44-alpha.16", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0e3d6b21c6..4a4ffece8a 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,8 +38,8 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/shared-core": "2.4.44-alpha.15", - "@budibase/string-templates": "2.4.44-alpha.15", + "@budibase/shared-core": "2.4.44-alpha.16", + "@budibase/string-templates": "2.4.44-alpha.16", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index cbe991c31a..603b00c3ac 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,11 +58,11 @@ } }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.15", - "@budibase/client": "2.4.44-alpha.15", - "@budibase/frontend-core": "2.4.44-alpha.15", - "@budibase/shared-core": "2.4.44-alpha.15", - "@budibase/string-templates": "2.4.44-alpha.15", + "@budibase/bbui": "2.4.44-alpha.16", + "@budibase/client": "2.4.44-alpha.16", + "@budibase/frontend-core": "2.4.44-alpha.16", + "@budibase/shared-core": "2.4.44-alpha.16", + "@budibase/string-templates": "2.4.44-alpha.16", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 6f22449622..a40bf323b1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "dist/index.js", "bin": { @@ -29,9 +29,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.15", - "@budibase/string-templates": "2.4.44-alpha.15", - "@budibase/types": "2.4.44-alpha.15", + "@budibase/backend-core": "2.4.44-alpha.16", + "@budibase/string-templates": "2.4.44-alpha.16", + "@budibase/types": "2.4.44-alpha.16", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index c70bb2da19..cca28cf02f 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,11 +19,11 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.4.44-alpha.15", - "@budibase/frontend-core": "2.4.44-alpha.15", - "@budibase/shared-core": "2.4.44-alpha.15", - "@budibase/string-templates": "2.4.44-alpha.15", - "@budibase/types": "2.4.44-alpha.15", + "@budibase/bbui": "2.4.44-alpha.16", + "@budibase/frontend-core": "2.4.44-alpha.16", + "@budibase/shared-core": "2.4.44-alpha.16", + "@budibase/string-templates": "2.4.44-alpha.16", + "@budibase/types": "2.4.44-alpha.16", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index b5cf17fb3d..bea20a8bb1 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,13 +1,13 @@ { "name": "@budibase/frontend-core", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.4.44-alpha.15", - "@budibase/shared-core": "2.4.44-alpha.15", + "@budibase/bbui": "2.4.44-alpha.16", + "@budibase/shared-core": "2.4.44-alpha.16", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 80ad281205..8933aa8f4d 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index 80f91a76b4..2db13d0daa 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -45,12 +45,12 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.4.44-alpha.15", - "@budibase/client": "2.4.44-alpha.15", + "@budibase/backend-core": "2.4.44-alpha.16", + "@budibase/client": "2.4.44-alpha.16", "@budibase/pro": "2.4.44-alpha.15", - "@budibase/shared-core": "2.4.44-alpha.15", - "@budibase/string-templates": "2.4.44-alpha.15", - "@budibase/types": "2.4.44-alpha.15", + "@budibase/shared-core": "2.4.44-alpha.16", + "@budibase/string-templates": "2.4.44-alpha.16", + "@budibase/types": "2.4.44-alpha.16", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/shared-core/package.json b/packages/shared-core/package.json index 13cbc881ec..90f75f74b2 100644 --- a/packages/shared-core/package.json +++ b/packages/shared-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/shared-core", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Shared data utils", "main": "dist/cjs/src/index.js", "types": "dist/mjs/src/index.d.ts", @@ -20,7 +20,7 @@ "dev:builder": "yarn prebuild && concurrently \"tsc -p tsconfig.build.json --watch\" \"tsc -p tsconfig-cjs.build.json --watch\"" }, "dependencies": { - "@budibase/types": "2.4.44-alpha.15" + "@budibase/types": "2.4.44-alpha.16" }, "devDependencies": { "concurrently": "^7.6.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index f51bc8a8c8..5978d49611 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index ca7921d9c4..736b9fd2d1 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase types", "main": "dist/cjs/index.js", "types": "dist/mjs/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index efcb430c15..d605610e84 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.4.44-alpha.15", + "version": "2.4.44-alpha.16", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -37,10 +37,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.4.44-alpha.15", + "@budibase/backend-core": "2.4.44-alpha.16", "@budibase/pro": "2.4.44-alpha.15", - "@budibase/string-templates": "2.4.44-alpha.15", - "@budibase/types": "2.4.44-alpha.15", + "@budibase/string-templates": "2.4.44-alpha.16", + "@budibase/types": "2.4.44-alpha.16", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 201c886f5a6108a514caccd8667f3bfeb0b05753 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 12 Apr 2023 13:10:35 +0000 Subject: [PATCH 37/37] Update pro version to 2.4.44-alpha.16 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 2db13d0daa..cda6ab01b7 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -47,7 +47,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.4.44-alpha.16", "@budibase/client": "2.4.44-alpha.16", - "@budibase/pro": "2.4.44-alpha.15", + "@budibase/pro": "2.4.44-alpha.16", "@budibase/shared-core": "2.4.44-alpha.16", "@budibase/string-templates": "2.4.44-alpha.16", "@budibase/types": "2.4.44-alpha.16", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 1ad95cc6ba..422ff175b4 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1290,14 +1290,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.15": - version "2.4.44-alpha.15" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.15.tgz#a5466f2d82a74deb73b36ea07e14be8f1846b6b5" - integrity sha512-ypBgzCvt0XSWfLfm0IxkGIHjoVTZEDIWUTmQY1I+z/B+jo8WyBlccTc9BdBbuZ7EIEl2nsK5oFCqzmZRi9lh1w== +"@budibase/backend-core@2.4.44-alpha.16": + version "2.4.44-alpha.16" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.16.tgz#d7cbd0b468ffdb7a472ef99a52a1614e193770c2" + integrity sha512-3S6NqVB1Ulq1a8Gl1r9/eBnlpfvhX0P6lTdeDG/K6u/pOUkJqjDHHNvJ936CeXcS6WQKsSr5GF+649VlylV5eg== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.15" + "@budibase/types" "2.4.44-alpha.16" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1430,15 +1430,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.15": - version "2.4.44-alpha.15" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.15.tgz#f34adfbec7cf886278c495a54e30c6a4e3757873" - integrity sha512-RiFGAHsEY4t3tpIl/Jkq9LNkckkf8xO50M70e5su95QTGRvXc2YY3dkeQ03mMjFJvELJmpYwrO9p4iTo4uWZqQ== +"@budibase/pro@2.4.44-alpha.16": + version "2.4.44-alpha.16" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.16.tgz#b3f9884a279bd2135f229bd62e6696e4a2ce8de2" + integrity sha512-oTRehPQPP2LIgpmssUIQ3cvwebnkdZuE7E0WkDb/RNeID0sYQX4I5GZfeaaOhljcd81wJKXZQYGUo4+9oZwBjQ== dependencies: - "@budibase/backend-core" "2.4.44-alpha.15" + "@budibase/backend-core" "2.4.44-alpha.16" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.15" + "@budibase/types" "2.4.44-alpha.16" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1491,10 +1491,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.15": - version "2.4.44-alpha.15" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.15.tgz#51a042cd211b513163717a751ad65d89e9c098da" - integrity sha512-BauwT9+1/r7vCb/YOSOWmCyZM/e3NOX2ZaRLe7tjK0T9L8r8aQYBQrHip8sKeZL+fCJVlioqTaDqUsn4n4E76Q== +"@budibase/types@2.4.44-alpha.16": + version "2.4.44-alpha.16" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.16.tgz#83f3745a67db566a80c34d89390ceb057a1456a9" + integrity sha512-F3phfLOBHsLlXKwIxDAZsNo1hneKe916JJefBSlKetLXDH0AZzHWwh3dpYdw2QKdclTVVJKH9QWrBIH8sZFvYQ== dependencies: scim-patch "^0.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index d605610e84..8cb6c67aa5 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -38,7 +38,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.4.44-alpha.16", - "@budibase/pro": "2.4.44-alpha.15", + "@budibase/pro": "2.4.44-alpha.16", "@budibase/string-templates": "2.4.44-alpha.16", "@budibase/types": "2.4.44-alpha.16", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index a565186a6c..402544ceba 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -475,14 +475,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.4.44-alpha.15": - version "2.4.44-alpha.15" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.15.tgz#a5466f2d82a74deb73b36ea07e14be8f1846b6b5" - integrity sha512-ypBgzCvt0XSWfLfm0IxkGIHjoVTZEDIWUTmQY1I+z/B+jo8WyBlccTc9BdBbuZ7EIEl2nsK5oFCqzmZRi9lh1w== +"@budibase/backend-core@2.4.44-alpha.16": + version "2.4.44-alpha.16" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.4.44-alpha.16.tgz#d7cbd0b468ffdb7a472ef99a52a1614e193770c2" + integrity sha512-3S6NqVB1Ulq1a8Gl1r9/eBnlpfvhX0P6lTdeDG/K6u/pOUkJqjDHHNvJ936CeXcS6WQKsSr5GF+649VlylV5eg== dependencies: "@budibase/nano" "10.1.2" "@budibase/pouchdb-replication-stream" "1.2.10" - "@budibase/types" "2.4.44-alpha.15" + "@budibase/types" "2.4.44-alpha.16" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -565,15 +565,15 @@ pouchdb-promise "^6.0.4" through2 "^2.0.0" -"@budibase/pro@2.4.44-alpha.15": - version "2.4.44-alpha.15" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.15.tgz#f34adfbec7cf886278c495a54e30c6a4e3757873" - integrity sha512-RiFGAHsEY4t3tpIl/Jkq9LNkckkf8xO50M70e5su95QTGRvXc2YY3dkeQ03mMjFJvELJmpYwrO9p4iTo4uWZqQ== +"@budibase/pro@2.4.44-alpha.16": + version "2.4.44-alpha.16" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.4.44-alpha.16.tgz#b3f9884a279bd2135f229bd62e6696e4a2ce8de2" + integrity sha512-oTRehPQPP2LIgpmssUIQ3cvwebnkdZuE7E0WkDb/RNeID0sYQX4I5GZfeaaOhljcd81wJKXZQYGUo4+9oZwBjQ== dependencies: - "@budibase/backend-core" "2.4.44-alpha.15" + "@budibase/backend-core" "2.4.44-alpha.16" "@budibase/shared-core" "2.4.44-alpha.1" "@budibase/string-templates" "2.4.44-alpha.1" - "@budibase/types" "2.4.44-alpha.15" + "@budibase/types" "2.4.44-alpha.16" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -608,10 +608,10 @@ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.1.tgz#1679657aa180d9c59afa1dffa611bff0638bd933" integrity sha512-Sq+8HfM75EBMoOvKYFwELdlxmVN6wNZMofDjT/2G+9aF+Zfe5Tzw69C+unmdBgcGGjGCHEYWSz4mF0v8FPAGbg== -"@budibase/types@2.4.44-alpha.15": - version "2.4.44-alpha.15" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.15.tgz#51a042cd211b513163717a751ad65d89e9c098da" - integrity sha512-BauwT9+1/r7vCb/YOSOWmCyZM/e3NOX2ZaRLe7tjK0T9L8r8aQYBQrHip8sKeZL+fCJVlioqTaDqUsn4n4E76Q== +"@budibase/types@2.4.44-alpha.16": + version "2.4.44-alpha.16" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.4.44-alpha.16.tgz#83f3745a67db566a80c34d89390ceb057a1456a9" + integrity sha512-F3phfLOBHsLlXKwIxDAZsNo1hneKe916JJefBSlKetLXDH0AZzHWwh3dpYdw2QKdclTVVJKH9QWrBIH8sZFvYQ== dependencies: scim-patch "^0.7.0"