From 402c217800298aaa3d819f6bc2a9acc822663fbb Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 26 Apr 2022 11:28:31 +0100 Subject: [PATCH 01/94] BB logo on free plan --- .../src/components/MadeInBudibase.svelte | 15 +++++++------- .../client/src/components/app/Layout.svelte | 7 +++++++ packages/client/src/licensing/constants.js | 6 ++++++ packages/client/src/licensing/features.js | 5 +++++ packages/client/src/licensing/index.js | 7 +++++++ packages/client/src/licensing/utils.js | 20 +++++++++++++++++++ packages/server/src/api/controllers/auth.js | 11 ++++++++++ 7 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 packages/client/src/licensing/constants.js create mode 100644 packages/client/src/licensing/features.js create mode 100644 packages/client/src/licensing/index.js create mode 100644 packages/client/src/licensing/utils.js diff --git a/packages/client/src/components/MadeInBudibase.svelte b/packages/client/src/components/MadeInBudibase.svelte index 2e5d6336f1..59b95e0f44 100644 --- a/packages/client/src/components/MadeInBudibase.svelte +++ b/packages/client/src/components/MadeInBudibase.svelte @@ -1,15 +1,19 @@ - + import { Link } from "@budibase/bbui" + + +
Budibase

Made In Budibase

-
+ diff --git a/packages/server/src/api/controllers/application.ts b/packages/server/src/api/controllers/application.ts index 57a18e7df3..7183c083ef 100644 --- a/packages/server/src/api/controllers/application.ts +++ b/packages/server/src/api/controllers/application.ts @@ -443,7 +443,6 @@ const destroyApp = async (ctx: any) => { const result = await db.destroy() if (isUnpublish) { - await quotas.removePublishedApp() await events.app.unpublished(app) } else { await quotas.removeApp() diff --git a/packages/server/src/api/controllers/deploy/index.ts b/packages/server/src/api/controllers/deploy/index.ts index 7c1a093398..680f2d534e 100644 --- a/packages/server/src/api/controllers/deploy/index.ts +++ b/packages/server/src/api/controllers/deploy/index.ts @@ -188,12 +188,7 @@ const _deployApp = async function (ctx: any) { console.log("Deploying app...") - let app - if (await isFirstDeploy()) { - app = await quotas.addPublishedApp(() => deployApp(deployment)) - } else { - app = await deployApp(deployment) - } + let app = await deployApp(deployment) await events.app.published(app) ctx.body = deployment diff --git a/packages/server/src/migrations/functions/backfill/global.ts b/packages/server/src/migrations/functions/backfill/global.ts index 5dd812d6ea..7c8558c2df 100644 --- a/packages/server/src/migrations/functions/backfill/global.ts +++ b/packages/server/src/migrations/functions/backfill/global.ts @@ -35,12 +35,10 @@ const formatUsage = (usage: QuotaUsage) => { let maxAutomations = 0 let maxQueries = 0 let rows = 0 - let developers = 0 if (usage) { if (usage.usageQuota) { rows = usage.usageQuota.rows - developers = usage.usageQuota.developers } if (usage.monthly) { @@ -59,7 +57,6 @@ const formatUsage = (usage: QuotaUsage) => { maxAutomations, maxQueries, rows, - developers, } } diff --git a/packages/server/src/migrations/functions/developerQuota.ts b/packages/server/src/migrations/functions/developerQuota.ts deleted file mode 100644 index b639e0bd83..0000000000 --- a/packages/server/src/migrations/functions/developerQuota.ts +++ /dev/null @@ -1,15 +0,0 @@ -const { createUserBuildersView } = require("@budibase/backend-core/db") -import * as syncDevelopers from "./usageQuotas/syncDevelopers" - -/** - * Date: - * March 2022 - * - * Description: - * Create the builder users view and sync the developer count - */ - -export const run = async (db: any) => { - await createUserBuildersView(db) - await syncDevelopers.run() -} diff --git a/packages/server/src/migrations/functions/publishedAppsQuota.ts b/packages/server/src/migrations/functions/publishedAppsQuota.ts deleted file mode 100644 index 53bd8e65e5..0000000000 --- a/packages/server/src/migrations/functions/publishedAppsQuota.ts +++ /dev/null @@ -1,13 +0,0 @@ -import * as syncPublishedApps from "./usageQuotas/syncPublishedApps" - -/** - * Date: - * March 2022 - * - * Description: - * Sync the published apps count - */ - -export const run = async (db: any) => { - await syncPublishedApps.run() -} diff --git a/packages/server/src/migrations/functions/usageQuotas/syncDevelopers.ts b/packages/server/src/migrations/functions/usageQuotas/syncDevelopers.ts deleted file mode 100644 index c13a095b23..0000000000 --- a/packages/server/src/migrations/functions/usageQuotas/syncDevelopers.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { getTenantId } from "@budibase/backend-core/tenancy" -import { utils } from "@budibase/backend-core" -import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro" - -export const run = async () => { - // get developer count - const developerCount = await utils.getBuildersCount() - - // sync developer count - const tenantId = getTenantId() - console.log( - `[Tenant: ${tenantId}] Syncing developer count: ${developerCount}` - ) - await quotas.setUsage( - developerCount, - StaticQuotaName.DEVELOPERS, - QuotaUsageType.STATIC - ) -} diff --git a/packages/server/src/migrations/functions/usageQuotas/syncPublishedApps.ts b/packages/server/src/migrations/functions/usageQuotas/syncPublishedApps.ts deleted file mode 100644 index 550a3006b3..0000000000 --- a/packages/server/src/migrations/functions/usageQuotas/syncPublishedApps.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { getTenantId } from "@budibase/backend-core/tenancy" -import { getAllApps } from "@budibase/backend-core/db" -import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro" - -export const run = async () => { - // get app count - const opts: any = { dev: false } - const prodApps = await getAllApps(opts) - const prodAppCount = prodApps ? prodApps.length : 0 - - // sync app count - const tenantId = getTenantId() - console.log( - `[Tenant: ${tenantId}] Syncing published app count: ${prodAppCount}` - ) - await quotas.setUsage( - prodAppCount, - StaticQuotaName.PUBLISHED_APPS, - QuotaUsageType.STATIC - ) -} diff --git a/packages/server/src/migrations/index.ts b/packages/server/src/migrations/index.ts index 494740d1d9..bb691f1133 100644 --- a/packages/server/src/migrations/index.ts +++ b/packages/server/src/migrations/index.ts @@ -6,8 +6,6 @@ import env from "../environment" import * as userEmailViewCasing from "./functions/userEmailViewCasing" import * as quota1 from "./functions/quotas1" import * as appUrls from "./functions/appUrls" -import * as developerQuota from "./functions/developerQuota" -import * as publishedAppsQuota from "./functions/publishedAppsQuota" import * as backfill from "./functions/backfill" /** @@ -42,20 +40,6 @@ export const buildMigrations = () => { }) break } - case MigrationName.DEVELOPER_QUOTA: { - serverMigrations.push({ - ...definition, - fn: developerQuota.run, - }) - break - } - case MigrationName.PUBLISHED_APP_QUOTA: { - serverMigrations.push({ - ...definition, - fn: publishedAppsQuota.run, - }) - break - } case MigrationName.EVENT_APP_BACKFILL: { serverMigrations.push({ ...definition, diff --git a/packages/types/src/sdk/migrations.ts b/packages/types/src/sdk/migrations.ts index bb32d2e045..3ad4daccaf 100644 --- a/packages/types/src/sdk/migrations.ts +++ b/packages/types/src/sdk/migrations.ts @@ -41,8 +41,6 @@ export enum MigrationName { USER_EMAIL_VIEW_CASING = "user_email_view_casing", QUOTAS_1 = "quotas_1", APP_URLS = "app_urls", - DEVELOPER_QUOTA = "developer_quota", - PUBLISHED_APP_QUOTA = "published_apps_quota", EVENT_APP_BACKFILL = "event_app_backfill", EVENT_GLOBAL_BACKFILL = "event_global_backfill", EVENT_INSTALLATION_BACKFILL = "event_installation_backfill", diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index 8e9b3382e4..5355b82b72 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -1,5 +1,4 @@ import env from "../../environment" -import { quotas } from "@budibase/pro" import * as apps from "../../utilities/appService" import * as eventHelpers from "./events" import { @@ -164,15 +163,7 @@ export const save = async ( return putOpts } // save the user to db - let response - const putUserFn = () => { - return db.put(user) - } - if (eventHelpers.isAddingBuilder(user, dbUser)) { - response = await quotas.addDeveloper(putUserFn) - } else { - response = await putUserFn() - } + let response = await db.put(user) user._rev = response.rev await eventHelpers.handleSaveEvents(user, dbUser) @@ -223,7 +214,6 @@ export const destroy = async (id: string, currentUser: any) => { await deprovisioning.removeUserFromInfoDB(dbUser) await db.remove(dbUser._id, dbUser._rev) await eventHelpers.handleDeleteEvents(dbUser) - await quotas.removeUser(dbUser) await cache.user.invalidateUser(dbUser._id) await sessions.invalidateSessions(dbUser._id) // let server know to sync user From d4d542e77399b1f4f23260cad3748377c9d62cad Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 30 Aug 2022 09:53:16 +0100 Subject: [PATCH 07/94] Usage page updates WIP --- .../builder/src/components/usage/Usage.svelte | 52 +++- .../src/components/usage/UsageDashCard.svelte | 108 +++++++ .../builder/src/components/usage/index.js | 2 + packages/builder/src/constants/index.js | 7 + .../builder/portal/settings/usage.svelte | 279 ++++++++++++++---- 5 files changed, 381 insertions(+), 67 deletions(-) create mode 100644 packages/builder/src/components/usage/UsageDashCard.svelte create mode 100644 packages/builder/src/components/usage/index.js diff --git a/packages/builder/src/components/usage/Usage.svelte b/packages/builder/src/components/usage/Usage.svelte index cd9071785d..27383019e8 100644 --- a/packages/builder/src/components/usage/Usage.svelte +++ b/packages/builder/src/components/usage/Usage.svelte @@ -1,10 +1,13 @@
- +
+ {#if showWarning} + + {/if} +
+ {usage.name} +
+
{#if unlimited} - {usage.used} + {usage.used} / Unlimited {:else} {usage.used} / {usage.total} {/if}
{#if unlimited} - Unlimited + {:else} - + + {/if} + {#if showWarning} + + To get more queries upgrade your plan + {/if}
@@ -51,6 +82,13 @@ display: flex; flex-direction: row; justify-content: space-between; - gap: var(--spacing-m); + margin-bottom: 12px; + } + .header-container { + display: flex; + } + .heading { + margin-top: 3px; + margin-left: 5px; } diff --git a/packages/builder/src/components/usage/UsageDashCard.svelte b/packages/builder/src/components/usage/UsageDashCard.svelte new file mode 100644 index 0000000000..ff0ac7ca49 --- /dev/null +++ b/packages/builder/src/components/usage/UsageDashCard.svelte @@ -0,0 +1,108 @@ + + +
+
+
+ +
+ {description} +
+ {title} +
+ {subtitle} +
+
+ {#each textRows as row} + {row} + {/each} +
+
+
+
+ {#if secondaryDefined} +
+ +
+ {/if} + {#if primaryDefined} +
+ +
+ {/if} +
+
+
+ +
+
+ + diff --git a/packages/builder/src/components/usage/index.js b/packages/builder/src/components/usage/index.js new file mode 100644 index 0000000000..48c0e2ea2c --- /dev/null +++ b/packages/builder/src/components/usage/index.js @@ -0,0 +1,2 @@ +export { default as Usage } from "./Usage.svelte" +export { default as DashCard } from "./UsageDashCard.svelte" diff --git a/packages/builder/src/constants/index.js b/packages/builder/src/constants/index.js index 4e2ca37b9c..bcfbfffb81 100644 --- a/packages/builder/src/constants/index.js +++ b/packages/builder/src/constants/index.js @@ -57,3 +57,10 @@ export const DefaultAppTheme = { navBackground: "var(--spectrum-global-color-gray-50)", navTextColor: "var(--spectrum-global-color-gray-800)", } + +export const PlanType = { + FREE: "free", + PRO: "pro", + BUSINESS: "business", + ENTERPRISE: "enterprise", +} diff --git a/packages/builder/src/pages/builder/portal/settings/usage.svelte b/packages/builder/src/pages/builder/portal/settings/usage.svelte index 069c37b555..6ee7e45e25 100644 --- a/packages/builder/src/pages/builder/portal/settings/usage.svelte +++ b/packages/builder/src/pages/builder/portal/settings/usage.svelte @@ -5,20 +5,39 @@ Heading, Layout, notifications, - Link, + Page, + Detail, } from "@budibase/bbui" import { onMount } from "svelte" - import { admin, auth, licensing } from "stores/portal" - import Usage from "components/usage/Usage.svelte" + import { admin, auth, licensing } from "../../../../stores/portal" + import { PlanType } from "../../../../constants" + import { DashCard, Usage } from "../../../../components/usage" let staticUsage = [] let monthlyUsage = [] + let price + let lastPayment + let cancelAt + let nextPayment + let balance let loaded = false + let textRows = [] + let daysRemainingInMonth + + const upgradeUrl = `${$admin.accountPortalUrl}/portal/upgrade` + const manageUrl = `${$admin.accountPortalUrl}/portal/billing` + + const warnUsage = ["Queries", "Automations", "Rows"] $: quotaUsage = $licensing.quotaUsage $: license = $auth.user?.license - const upgradeUrl = `${$admin.accountPortalUrl}/portal/upgrade` + const numberFormatter = new Intl.NumberFormat("en-US", { + style: "currency", + currency: "USD", + minimumFractionDigits: 0, + maximumFractionDigits: 0, + }) const setMonthlyUsage = () => { monthlyUsage = [] @@ -34,6 +53,7 @@ } } } + monthlyUsage = monthlyUsage.sort((a, b) => a.name.localeCompare(b.name)) } const setStaticUsage = () => { @@ -48,6 +68,52 @@ }) } } + staticUsage = staticUsage.sort((a, b) => a.name.localeCompare(b.name)) + } + + const setNextPayment = () => { + const periodEnd = license?.billing.subscription?.currentPeriodEnd + const cancelAt = license?.billing.subscription?.cancelAt + if (periodEnd) { + if (cancelAt && periodEnd <= cancelAt) { + return + } + nextPayment = `Next payment: ${getLocaleDataString(periodEnd)}` + } + } + + const setCancelAt = () => { + cancelAt = license?.billing.subscription?.cancelAt + } + + const setLastPayment = () => { + const periodStart = license?.billing.subscription?.currentPeriodStart + if (periodStart) { + lastPayment = `Last payment: ${getLocaleDataString(periodStart)}` + } + } + + const setBalance = () => { + const customerBalance = license?.billing.customer.balance + if (customerBalance) { + balance = `Balance: ${numberFormatter.format( + (customerBalance / 100) * -1 + )}` + } + } + + const getLocaleDataString = epoch => { + const date = new Date(epoch * 1000) + return date.toLocaleDateString("default", { + day: "numeric", + month: "long", + year: "numeric", + }) + } + + const setPrice = () => { + const planPrice = license.plan.price + price = `${numberFormatter.format(planPrice.amountMonthly / 100)} per month` } const capitalise = string => { @@ -56,6 +122,69 @@ } } + const planTitle = () => { + return capitalise(license?.plan.type) + } + + const planSubtitle = () => { + return `${license?.plan.price.sessions} day passes` + } + + const getDaysRemaining = timestamp => { + if (!timestamp) { + return + } + const now = new Date() + now.setHours(0) + now.setMinutes(0) + + const thenDate = new Date(timestamp) + thenDate.setHours(0) + thenDate.setMinutes(0) + + const difference = thenDate.getTime() - now + // return the difference in days + return (difference / (1000 * 3600 * 24)).toFixed(0) + } + + const setTextRows = () => { + textRows = [] + + if (cancelAt) { + textRows.push("Subscription has been cancelled") + textRows.push(`${getDaysRemaining(cancelAt * 1000)} days remaining`) + } else { + if (price) { + textRows.push(price) + } + if (lastPayment) { + textRows.push(lastPayment) + } + if (nextPayment) { + textRows.push(nextPayment) + } + } + } + + const setDaysRemainingInMonth = () => { + let now = new Date() + now = new Date(now.getFullYear(), now.getMonth(), now.getDate()) + + const firstNextMonth = new Date(now.getFullYear(), now.getMonth() + 1, 1) + const difference = firstNextMonth.getTime() - now.getTime() + + // return the difference in days + daysRemainingInMonth = (difference / (1000 * 3600 * 24)).toFixed(0) + } + + const goToAccountPortal = () => { + if (license?.plan.type === PlanType.FREE) { + window.location.href = upgradeUrl + } else { + window.location.href = manageUrl + } + } + const init = async () => { try { await licensing.getQuotaUsage() @@ -71,69 +200,99 @@ }) $: { - if (license && quotaUsage) { - setMonthlyUsage() - setStaticUsage() + if (license) { + setPrice() + setBalance() + setLastPayment() + setNextPayment() + setCancelAt() + setTextRows() + setDaysRemainingInMonth() + + if (quotaUsage) { + setMonthlyUsage() + setStaticUsage() + } } } -{#if loaded} - - Usage - Get information about your current usage within Budibase. - {#if $admin.cloud} - {#if $auth.user?.accountPortalAccess} - To upgrade your plan and usage limits visit your Account. - {:else} - Contact your account holder to upgrade your usage limits. - {/if} - {/if} - - - - - - - - YOUR PLAN - {capitalise(license?.plan.type)} - - - USAGE -
- {#each staticUsage as usage} -
- -
- {/each} -
-
- {#if monthlyUsage.length} - - MONTHLY -
- {#each monthlyUsage as usage} -
- -
- {/each} -
+ + {#if loaded} + + + Billing + Get information about your current usage and manage your plan -
- {/if} - -{/if} + + + + +
+ + {#each staticUsage as usage} +
+ +
+ {/each} +
+
+
+ {#if monthlyUsage.length} +
+ + Monthly +
+ Resets in {daysRemainingInMonth} days +
+
+ + {#each monthlyUsage as usage} +
+ +
+ {/each} +
+
+
+
+ {/if} +
+
+ + {/if} + From 82e8e23dc52f7d29bc0cb91b29bb431ab337c2aa Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 31 Aug 2022 15:19:57 +0100 Subject: [PATCH 08/94] Updated bootstrapping flow to include the account portal. --- scripts/link-dependencies.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/link-dependencies.sh b/scripts/link-dependencies.sh index 052f8aed8e..d2c71f637b 100755 --- a/scripts/link-dependencies.sh +++ b/scripts/link-dependencies.sh @@ -20,6 +20,7 @@ cd - if [ -d "../budibase-pro" ]; then cd ../budibase-pro + echo "Bootstrapping budibase-pro" yarn bootstrap cd packages/pro @@ -44,7 +45,11 @@ if [ -d "../budibase-pro" ]; then fi if [ -d "../account-portal" ]; then - cd ../account-portal/packages/server + cd ../account-portal + echo "Bootstrapping account-portal" + yarn bootstrap + + cd packages/server echo "Linking backend-core to account-portal" yarn link "@budibase/backend-core" From 7afcaadc19a58ebef4be51c253a8a2f3132f8acf Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Thu, 1 Sep 2022 11:36:23 +0100 Subject: [PATCH 09/94] Billing and usage page updates to support different kinds of users and plans --- .../builder/src/components/usage/Usage.svelte | 11 +- .../src/components/usage/UsageDashCard.svelte | 18 +- .../builder/portal/settings/usage.svelte | 222 +++++++----------- 3 files changed, 100 insertions(+), 151 deletions(-) diff --git a/packages/builder/src/components/usage/Usage.svelte b/packages/builder/src/components/usage/Usage.svelte index 27383019e8..49c4205a4c 100644 --- a/packages/builder/src/components/usage/Usage.svelte +++ b/packages/builder/src/components/usage/Usage.svelte @@ -1,6 +1,6 @@ - - {#if loaded} - - - Billing - Get information about your current usage and manage your plan - - - - - -
- - {#each staticUsage as usage} -
- -
- {/each} -
-
-
- {#if monthlyUsage.length} -
- - Monthly -
- Resets in {daysRemainingInMonth} days -
-
- - {#each monthlyUsage as usage} -
- -
- {/each} -
-
-
-
- {/if} -
-
+{#if loaded} + + + Usage + Get information about your current usage within Budibase. + {#if accountPortalAccess} + To upgrade your plan and usage limits visit your Account + {:else} + To upgrade your plan and usage limits contact your account holder + {/if} + - {/if} -
+ + + + +
+ + {#each staticUsage as usage} +
+ +
+ {/each} +
+
+
+ {#if monthlyUsage.length} +
+ + Monthly +
+ Resets in {daysRemainingInMonth} days +
+
+ + {#each monthlyUsage as usage} +
+ +
+ {/each} +
+
+
+
+ {/if} +
+
+ +{/if} From 07a838ad729b6c257f28ec23eca3aafc3313af2b Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 1 Sep 2022 15:30:04 +0100 Subject: [PATCH 10/94] Merge commit --- .../pages/builder/portal/apps/index.svelte | 6 +- .../builder/src/stores/portal/licensing.js | 63 ++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte index 13d23f6a51..3bb7050c43 100644 --- a/packages/builder/src/pages/builder/portal/apps/index.svelte +++ b/packages/builder/src/pages/builder/portal/apps/index.svelte @@ -20,7 +20,7 @@ import { store, automationStore } from "builderStore" import { API } from "api" import { onMount } from "svelte" - import { apps, auth, admin, templates } from "stores/portal" + import { apps, auth, admin, templates, licensing } from "stores/portal" import download from "downloadjs" import { goto } from "@roxi/routify" import AppRow from "components/start/AppRow.svelte" @@ -243,6 +243,10 @@ notifications.error("Error loading apps and templates") } loaded = true + + //Testing + await licensing.getQuotaUsage() + await licensing.getTestData() }) diff --git a/packages/builder/src/stores/portal/licensing.js b/packages/builder/src/stores/portal/licensing.js index 653dab52ed..40bfcff323 100644 --- a/packages/builder/src/stores/portal/licensing.js +++ b/packages/builder/src/stores/portal/licensing.js @@ -1,5 +1,6 @@ -import { writable } from "svelte/store" +import { writable, get } from "svelte/store" import { API } from "api" +import { auth } from "stores/portal" export const createLicensingStore = () => { const DEFAULT = { @@ -18,6 +19,66 @@ export const createLicensingStore = () => { } }) }, + getTestData: async () => { + const tenantId = get(auth).tenantId + console.log("Tenant ", tenantId) + + const license = get(auth).user.license + console.log("User LICENSE ", license) + + // Pull out the usage. + const quota = get(store).quotaUsage + console.log("Quota usage", quota) + + // Would only initialise the usage elements if the account element is present. + console.log("User account ", get(auth).user.account) + + //separate into functions that pass in both the usage and quota + //easier to test + + const getMonthlyMetrics = (license, quota) => { + return ["sessions", "queries", "automations"].reduce((acc, key) => { + const quotaLimit = license.quotas.usage.monthly[key].value + acc[key] = + quotaLimit > -1 + ? (quota.monthly.current[key] / quotaLimit) * 100 + : -1 + return acc + }, {}) + } + + const getStaticMetrics = (license, quota) => { + return ["apps", "rows"].reduce((acc, key) => { + const quotaLimit = license.quotas.usage.monthly[key].value + acc[key] = + quotaLimit > -1 ? (quota.usageQuota[key] / quotaLimit) * 100 : -1 + return acc + }, {}) + } + + const modQuotaStr = JSON.stringify(quota) + const cloneQuota = JSON.parse(modQuotaStr) + cloneQuota.monthly.current.sessions = 4 + + const monthlyMetrics = getMonthlyMetrics(license, cloneQuota) + const staticMetrics = getStaticMetrics(license, cloneQuota) + + console.log("Monthly Usage Metrics ", monthlyMetrics) + console.log("Static Usage Metrics ", staticMetrics) + + const flagged = Object.keys(monthlyMetrics).filter(key => { + return monthlyMetrics[key] >= 100 + }) + + console.log(flagged) + + // store.update(state => { + // return { + // ...state, + // metrics, + // } + // }) + }, } return { From f42b2d0087c84ab108a73811df99af7bea72a15a Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 2 Sep 2022 09:12:03 +0100 Subject: [PATCH 11/94] platform user casing view --- packages/backend-core/src/db/constants.ts | 1 + packages/backend-core/src/db/views.js | 23 ++++++++++++++++++- packages/backend-core/src/tenancy/tenancy.ts | 23 ++++++++++++++----- .../users/_components/PasswordModal.svelte | 2 +- .../functions/platformUserEmailViewCasing.ts | 13 +++++++++++ packages/server/src/migrations/index.ts | 8 +++++++ packages/types/src/sdk/migrations.ts | 1 + packages/worker/src/sdk/users/users.ts | 9 +++++--- 8 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 packages/server/src/migrations/functions/platformUserEmailViewCasing.ts diff --git a/packages/backend-core/src/db/constants.ts b/packages/backend-core/src/db/constants.ts index 460476da24..4e508280a6 100644 --- a/packages/backend-core/src/db/constants.ts +++ b/packages/backend-core/src/db/constants.ts @@ -18,6 +18,7 @@ export enum ViewName { LINK = "by_link", ROUTING = "screen_routes", AUTOMATION_LOGS = "automation_logs", + PLATFORM_USERS_LOWERCASE = "platform_users_lowercase", } export const DeprecatedViews = { diff --git a/packages/backend-core/src/db/views.js b/packages/backend-core/src/db/views.js index 3a45611a8f..2119c74c6c 100644 --- a/packages/backend-core/src/db/views.js +++ b/packages/backend-core/src/db/views.js @@ -128,12 +128,33 @@ exports.createUserBuildersView = async () => { await db.put(designDoc) } +exports.createPlatformUserView = async db => { + let designDoc + try { + designDoc = await db.get(DESIGN_DB) + } catch (err) { + // no design doc, make one + designDoc = DesignDoc() + } + const view = { + map: `function(doc) { + emit(doc._id.toLowerCase(), doc._id) + }`, + } + designDoc.views = { + ...designDoc.views, + [ViewName.PLATFORM_USERS_LOWERCASE]: view, + } + await db.put(designDoc) +} + exports.queryGlobalView = async (viewName, params, db = null) => { const CreateFuncByName = { [ViewName.USER_BY_EMAIL]: exports.createNewUserEmailView, [ViewName.BY_API_KEY]: exports.createApiKeyView, [ViewName.USER_BY_BUILDERS]: exports.createUserBuildersView, [ViewName.USER_BY_APP]: exports.createUserAppView, + [ViewName.PLATFORM_USERS_LOWERCASE]: exports.createPlatformUserView, } // can pass DB in if working with something specific if (!db) { @@ -149,7 +170,7 @@ exports.queryGlobalView = async (viewName, params, db = null) => { if (err != null && err.name === "not_found") { const createFunc = CreateFuncByName[viewName] await removeDeprecated(db, viewName) - await createFunc() + await createFunc(db) return exports.queryGlobalView(viewName, params) } else { throw err diff --git a/packages/backend-core/src/tenancy/tenancy.ts b/packages/backend-core/src/tenancy/tenancy.ts index 041f694d34..ebff4dd056 100644 --- a/packages/backend-core/src/tenancy/tenancy.ts +++ b/packages/backend-core/src/tenancy/tenancy.ts @@ -1,5 +1,5 @@ import { doWithDB } from "../db" -import { StaticDatabases } from "../db/constants" +import { StaticDatabases, UNICODE_MAX, ViewName } from "../db/constants" import { baseGlobalDBName } from "./utils" import { getTenantId, @@ -8,6 +8,7 @@ import { getTenantIDFromAppID, } from "../context" import env from "../environment" +import { queryGlobalView } from "../db/views" const TENANT_DOC = StaticDatabases.PLATFORM_INFO.docs.tenants const PLATFORM_INFO_DB = StaticDatabases.PLATFORM_INFO.name @@ -117,12 +118,22 @@ export const lookupTenantId = async (userId: string) => { // lookup, could be email or userId, either will return a doc export const getTenantUser = async (identifier: string) => { - return doWithDB(PLATFORM_INFO_DB, async (db: any) => { - try { - return await db.get(identifier) - } catch (err) { - return null + // use the view here and allow to find anyone regardless of casing + const lcIdentifier = identifier.toLowerCase() + + return await doWithDB(StaticDatabases.PLATFORM_INFO.name, async (db: any) => { + let response = await queryGlobalView( + ViewName.PLATFORM_USERS_LOWERCASE, + { + startkey: lcIdentifier, + endkey: `${lcIdentifier}${UNICODE_MAX}`, + }, + db + ) + if (!response) { + response = [] } + return response }) } diff --git a/packages/builder/src/pages/builder/portal/manage/users/_components/PasswordModal.svelte b/packages/builder/src/pages/builder/portal/manage/users/_components/PasswordModal.svelte index 02501f2de0..e7ee28411b 100644 --- a/packages/builder/src/pages/builder/portal/manage/users/_components/PasswordModal.svelte +++ b/packages/builder/src/pages/builder/portal/manage/users/_components/PasswordModal.svelte @@ -42,7 +42,7 @@ { + await createPlatformUserView() +} diff --git a/packages/server/src/migrations/index.ts b/packages/server/src/migrations/index.ts index 494740d1d9..fc0edf5f2b 100644 --- a/packages/server/src/migrations/index.ts +++ b/packages/server/src/migrations/index.ts @@ -9,6 +9,7 @@ import * as appUrls from "./functions/appUrls" import * as developerQuota from "./functions/developerQuota" import * as publishedAppsQuota from "./functions/publishedAppsQuota" import * as backfill from "./functions/backfill" +import * as platformUsersEmailViewCasing from "./functions/platformUserEmailViewCasing" /** * Populate the migration function and additional configuration from @@ -84,6 +85,13 @@ export const buildMigrations = () => { }) break } + case MigrationName.PLATFORM_USERS_EMAIL_CASING: { + serverMigrations.push({ + ...definition, + fn: platformUsersEmailViewCasing.run, + }) + break + } } } diff --git a/packages/types/src/sdk/migrations.ts b/packages/types/src/sdk/migrations.ts index 23a4d6d097..5ad5ccb87c 100644 --- a/packages/types/src/sdk/migrations.ts +++ b/packages/types/src/sdk/migrations.ts @@ -47,6 +47,7 @@ export enum MigrationName { EVENT_GLOBAL_BACKFILL = "event_global_backfill", EVENT_INSTALLATION_BACKFILL = "event_installation_backfill", GLOBAL_INFO_SYNC_USERS = "global_info_sync_users", + PLATFORM_USERS_EMAIL_CASING = "platform_users_email_casing", } export interface MigrationDefinition { diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index 58c2decabf..72316e34a0 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -264,11 +264,14 @@ export const bulkCreate = async ( ) let mapped = allUsers.rows.map((row: any) => row.id) - const currentUserEmails = mapped.map((x: any) => x.email) || [] + const currentUserEmails = mapped.map((x: any) => x.email.toLowerCase()) || [] for (const newUser of newUsersRequested) { + // Lowercase emails to ensure several users can't be created with different email casing if ( - newUsers.find((x: any) => x.email === newUser.email) || - currentUserEmails.includes(newUser.email) + newUsers.find( + (x: any) => x.email.toLowerCase() === newUser.email.toLowerCase() + ) || + currentUserEmails.includes(newUser.email.toLowerCase()) ) { continue } From 2de507bffc0d53b7cf1acb6d29496b4fec1a398b Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 2 Sep 2022 16:07:30 +0100 Subject: [PATCH 12/94] remove unnecessary files --- packages/backend-core/src/db/views.js | 37 ++----------------- packages/backend-core/src/tenancy/tenancy.ts | 24 ++++-------- .../functions/platformUserEmailViewCasing.ts | 13 ------- packages/server/src/migrations/index.ts | 8 ---- 4 files changed, 10 insertions(+), 72 deletions(-) delete mode 100644 packages/server/src/migrations/functions/platformUserEmailViewCasing.ts diff --git a/packages/backend-core/src/db/views.js b/packages/backend-core/src/db/views.js index b70493c52a..9e5dd714c1 100644 --- a/packages/backend-core/src/db/views.js +++ b/packages/backend-core/src/db/views.js @@ -167,7 +167,9 @@ exports.createPlatformUserView = async () => { const view = { // if using variables in a map function need to inject them before use map: `function(doc) { - emit(doc._id.toLowerCase(), doc._id) + if (doc.tenantId) { + emit(doc._id.toLowerCase(), doc._id) + } }`, } designDoc.views = { @@ -178,39 +180,6 @@ exports.createPlatformUserView = async () => { }) } -exports.queryGlobalView = async (viewName, params, db = null) => { - const CreateFuncByName = { - [ViewName.USER_BY_EMAIL]: exports.createNewUserEmailView, - [ViewName.BY_API_KEY]: exports.createApiKeyView, - [ViewName.USER_BY_BUILDERS]: exports.createUserBuildersView, - [ViewName.USER_BY_APP]: exports.createUserAppView, - } - // can pass DB in if working with something specific - if (!db) { - db = getGlobalDB() - } - try { - let response = (await db.query(`database/${viewName}`, params)).rows - response = response.map(resp => - params.include_docs ? resp.doc : resp.value - ) - if (params.arrayResponse) { - return response - } else { - return response.length <= 1 ? response[0] : response - } - } catch (err) { - if (err != null && err.name === "not_found") { - const createFunc = CreateFuncByName[viewName] - await removeDeprecated(db, viewName) - await createFunc(db) - return exports.queryView(viewName, params, db, CreateFuncByName) - } else { - throw err - } - } -} - exports.queryView = async (viewName, params, db, CreateFuncByName) => { try { let response = (await db.query(`database/${viewName}`, params)).rows diff --git a/packages/backend-core/src/tenancy/tenancy.ts b/packages/backend-core/src/tenancy/tenancy.ts index ebff4dd056..769165ef23 100644 --- a/packages/backend-core/src/tenancy/tenancy.ts +++ b/packages/backend-core/src/tenancy/tenancy.ts @@ -1,5 +1,5 @@ import { doWithDB } from "../db" -import { StaticDatabases, UNICODE_MAX, ViewName } from "../db/constants" +import { StaticDatabases, ViewName } from "../db/constants" import { baseGlobalDBName } from "./utils" import { getTenantId, @@ -8,7 +8,7 @@ import { getTenantIDFromAppID, } from "../context" import env from "../environment" -import { queryGlobalView } from "../db/views" +import { queryPlatformView } from "../db/views" const TENANT_DOC = StaticDatabases.PLATFORM_INFO.docs.tenants const PLATFORM_INFO_DB = StaticDatabases.PLATFORM_INFO.name @@ -119,22 +119,12 @@ export const lookupTenantId = async (userId: string) => { // lookup, could be email or userId, either will return a doc export const getTenantUser = async (identifier: string) => { // use the view here and allow to find anyone regardless of casing - const lcIdentifier = identifier.toLowerCase() - - return await doWithDB(StaticDatabases.PLATFORM_INFO.name, async (db: any) => { - let response = await queryGlobalView( - ViewName.PLATFORM_USERS_LOWERCASE, - { - startkey: lcIdentifier, - endkey: `${lcIdentifier}${UNICODE_MAX}`, - }, - db - ) - if (!response) { - response = [] - } - return response + // Use lowercase to ensure email login is case insensitive + const response = await queryPlatformView(ViewName.PLATFORM_USERS_LOWERCASE, { + keys: [identifier.toLowerCase()], + include_docs: true, }) + return response } export const isUserInAppTenant = (appId: string, user: any) => { diff --git a/packages/server/src/migrations/functions/platformUserEmailViewCasing.ts b/packages/server/src/migrations/functions/platformUserEmailViewCasing.ts deleted file mode 100644 index 4a39a7d754..0000000000 --- a/packages/server/src/migrations/functions/platformUserEmailViewCasing.ts +++ /dev/null @@ -1,13 +0,0 @@ -const { createPlatformUserView } = require("@budibase/backend-core/db") - -/** - * Date: - * September 2022 - * - * Description: - * Create a view in platform DB with lowercase emails for all users. - */ - -export const run = async () => { - await createPlatformUserView() -} diff --git a/packages/server/src/migrations/index.ts b/packages/server/src/migrations/index.ts index fc0edf5f2b..494740d1d9 100644 --- a/packages/server/src/migrations/index.ts +++ b/packages/server/src/migrations/index.ts @@ -9,7 +9,6 @@ import * as appUrls from "./functions/appUrls" import * as developerQuota from "./functions/developerQuota" import * as publishedAppsQuota from "./functions/publishedAppsQuota" import * as backfill from "./functions/backfill" -import * as platformUsersEmailViewCasing from "./functions/platformUserEmailViewCasing" /** * Populate the migration function and additional configuration from @@ -85,13 +84,6 @@ export const buildMigrations = () => { }) break } - case MigrationName.PLATFORM_USERS_EMAIL_CASING: { - serverMigrations.push({ - ...definition, - fn: platformUsersEmailViewCasing.run, - }) - break - } } } From 395a846328310805467f6b638344043681f23372 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 2 Sep 2022 16:55:55 +0100 Subject: [PATCH 13/94] fixing circular dep issue --- packages/backend-core/src/db/views.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-core/src/db/views.js b/packages/backend-core/src/db/views.js index 9e5dd714c1..8922bf5eb3 100644 --- a/packages/backend-core/src/db/views.js +++ b/packages/backend-core/src/db/views.js @@ -4,7 +4,7 @@ const { DeprecatedViews, SEPARATOR, } = require("./utils") -const { getGlobalDB } = require("../tenancy") +const { getGlobalDB } = require("../context") const { StaticDatabases } = require("./constants") const { doWithDB } = require("./") From 493706d9e369341fce214157b3942cddf4597d52 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 2 Sep 2022 18:44:03 +0100 Subject: [PATCH 14/94] revert back to circular dep --- packages/backend-core/src/db/views.js | 2 +- packages/backend-core/src/tenancy/tenancy.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend-core/src/db/views.js b/packages/backend-core/src/db/views.js index 8922bf5eb3..9e5dd714c1 100644 --- a/packages/backend-core/src/db/views.js +++ b/packages/backend-core/src/db/views.js @@ -4,7 +4,7 @@ const { DeprecatedViews, SEPARATOR, } = require("./utils") -const { getGlobalDB } = require("../context") +const { getGlobalDB } = require("../tenancy") const { StaticDatabases } = require("./constants") const { doWithDB } = require("./") diff --git a/packages/backend-core/src/tenancy/tenancy.ts b/packages/backend-core/src/tenancy/tenancy.ts index 769165ef23..d776a1d7e7 100644 --- a/packages/backend-core/src/tenancy/tenancy.ts +++ b/packages/backend-core/src/tenancy/tenancy.ts @@ -8,7 +8,7 @@ import { getTenantIDFromAppID, } from "../context" import env from "../environment" -import { queryPlatformView } from "../db/views" +import { queryPlatformView } from "../db" const TENANT_DOC = StaticDatabases.PLATFORM_INFO.docs.tenants const PLATFORM_INFO_DB = StaticDatabases.PLATFORM_INFO.name From 2a6c9cd6c5e72367969c284b97e94874c07646f4 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 5 Sep 2022 18:28:53 +0100 Subject: [PATCH 15/94] QA Core repo, and Jest API tests running end to end --- .github/workflows/budibase_ci.yml | 12 +- .prettierignore | 2 +- package.json | 2 + packages/builder/cypress/setup.js | 6 + .../server/src/api/routes/tests/user.spec.js | 1 - packages/server/src/app.ts | 13 +- .../server/src/utilities/workerRequests.js | 8 + .../worker/src/api/controllers/global/self.js | 21 +- packages/worker/src/environment.ts | 1 + qa-core/.gitignore | 4 + qa-core/package.json | 52 + qa-core/scripts/jestSetup.js | 15 + qa-core/src/environment.ts | 8 + qa-core/src/jest.extends.ts | 22 + .../src/tests/public-api/PublicAPIClient.ts | 58 + .../src/tests/public-api/TestConfiguration.ts | 39 + .../applications/applications.spec.ts | 47 + .../applications/fixtures/application.json | 4 + .../applications/fixtures/generate.ts | 9 + .../applications/fixtures/seed.json | 4 + .../fixtures/update_application.json | 4 + qa-core/src/tests/public-api/generator.ts | 3 + .../tests/public-api/tables/fixtures/row.json | 8 + .../public-api/tables/fixtures/seed.json | 94 + .../public-api/tables/fixtures/table.json | 94 + .../tables/fixtures/update_row.json | 8 + .../tables/fixtures/update_table.json | 94 + .../src/tests/public-api/tables/rows.spec.ts | 51 + .../tests/public-api/tables/tables.spec.ts | 48 + .../public-api/users/fixtures/generate.ts | 22 + .../users/fixtures/update_user.json | 18 + .../tests/public-api/users/fixtures/user.json | 18 + .../src/tests/public-api/users/users.spec.ts | 46 + qa-core/tsconfig.json | 36 + qa-core/yarn.lock | 2658 +++++++++++++++++ 35 files changed, 3518 insertions(+), 12 deletions(-) create mode 100644 qa-core/.gitignore create mode 100644 qa-core/package.json create mode 100644 qa-core/scripts/jestSetup.js create mode 100644 qa-core/src/environment.ts create mode 100644 qa-core/src/jest.extends.ts create mode 100644 qa-core/src/tests/public-api/PublicAPIClient.ts create mode 100644 qa-core/src/tests/public-api/TestConfiguration.ts create mode 100644 qa-core/src/tests/public-api/applications/applications.spec.ts create mode 100644 qa-core/src/tests/public-api/applications/fixtures/application.json create mode 100644 qa-core/src/tests/public-api/applications/fixtures/generate.ts create mode 100644 qa-core/src/tests/public-api/applications/fixtures/seed.json create mode 100644 qa-core/src/tests/public-api/applications/fixtures/update_application.json create mode 100644 qa-core/src/tests/public-api/generator.ts create mode 100644 qa-core/src/tests/public-api/tables/fixtures/row.json create mode 100644 qa-core/src/tests/public-api/tables/fixtures/seed.json create mode 100644 qa-core/src/tests/public-api/tables/fixtures/table.json create mode 100644 qa-core/src/tests/public-api/tables/fixtures/update_row.json create mode 100644 qa-core/src/tests/public-api/tables/fixtures/update_table.json create mode 100644 qa-core/src/tests/public-api/tables/rows.spec.ts create mode 100644 qa-core/src/tests/public-api/tables/tables.spec.ts create mode 100644 qa-core/src/tests/public-api/users/fixtures/generate.ts create mode 100644 qa-core/src/tests/public-api/users/fixtures/update_user.json create mode 100644 qa-core/src/tests/public-api/users/fixtures/user.json create mode 100644 qa-core/src/tests/public-api/users/users.spec.ts create mode 100644 qa-core/tsconfig.json create mode 100644 qa-core/yarn.lock diff --git a/.github/workflows/budibase_ci.yml b/.github/workflows/budibase_ci.yml index e940e6fa10..df7a36caa4 100644 --- a/.github/workflows/budibase_ci.yml +++ b/.github/workflows/budibase_ci.yml @@ -54,8 +54,10 @@ jobs: verbose: true # TODO: parallelise this - - name: Cypress run - uses: cypress-io/github-action@v2 - with: - install: false - command: yarn test:e2e:ci + # - name: Cypress run + # uses: cypress-io/github-action@v2 + # with: + # install: false + # command: yarn test:e2e:ci + + - run: yarn test:api:ci \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index bbeff65da7..ad36a86b99 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,4 +8,4 @@ packages/server/client packages/server/src/definitions/openapi.ts packages/builder/.routify packages/builder/cypress/support/queryLevelTransformerFunction.js -packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js +packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js \ No newline at end of file diff --git a/package.json b/package.json index 4c24e0025b..a2d8f28f43 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,8 @@ "test:e2e:ci": "lerna run cy:ci --stream", "test:e2e:ci:record": "lerna run cy:ci:record --stream", "test:e2e:ci:notify": "lerna run cy:ci:notify", + "test:api:ci": "npm --prefix ./qa-core run api:test:ci", + "test:api": "npm --prefix ./qa-core run api:test", "build:specs": "lerna run specs", "build:docker": "lerna run build:docker && npm run build:docker:proxy:compose && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh $BUDIBASE_RELEASE_VERSION && cd -", "build:docker:pre": "lerna run build && lerna run predocker", diff --git a/packages/builder/cypress/setup.js b/packages/builder/cypress/setup.js index d858801990..853cdfc14d 100644 --- a/packages/builder/cypress/setup.js +++ b/packages/builder/cypress/setup.js @@ -22,6 +22,12 @@ process.env.COUCH_DB_PASSWORD = "budibase" process.env.INTERNAL_API_KEY = "budibase" process.env.ALLOW_DEV_AUTOMATIONS = 1 +// TODO: inject at the qa-core level +process.env.BB_ADMIN_USER_EMAIL = "qa@budibase.com" +process.env.BB_ADMIN_USER_PASSWORD = "budibase" +process.env.ENCRYPTED_TEST_PUBLIC_API_KEY = + "a65722f06bee5caeadc5d7ca2f543a43-d610e627344210c643bb726f" + // Stop info logs polluting test outputs process.env.LOG_LEVEL = "error" diff --git a/packages/server/src/api/routes/tests/user.spec.js b/packages/server/src/api/routes/tests/user.spec.js index e699f818d6..a7f1e7e7dc 100644 --- a/packages/server/src/api/routes/tests/user.spec.js +++ b/packages/server/src/api/routes/tests/user.spec.js @@ -23,7 +23,6 @@ describe("/users", () => { }) describe("fetch", () => { - it("returns a list of users from an instance db", async () => { await config.createUser("uuidx") await config.createUser("uuidy") diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index 831a9b1046..9be8c78a66 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -29,7 +29,11 @@ const { Thread } = require("./threads") import redis from "./utilities/redis" import * as migrations from "./migrations" import { events, installation, tenancy } from "@budibase/backend-core" -import { createAdminUser, getChecklist } from "./utilities/workerRequests" +import { + createAdminUser, + generateApiKey, + getChecklist, +} from "./utilities/workerRequests" const app = new Koa() @@ -123,11 +127,16 @@ module.exports = server.listen(env.PORT || 0, async () => { if (!checklist?.adminUser?.checked) { try { const tenantId = tenancy.getTenantId() - await createAdminUser( + const user = await createAdminUser( env.BB_ADMIN_USER_EMAIL, env.BB_ADMIN_USER_PASSWORD, tenantId ) + // Need to set up an API key for automated integration tests + if (env.isTest()) { + await generateApiKey(user._id) + } + console.log( "Admin account automatically created for", env.BB_ADMIN_USER_EMAIL diff --git a/packages/server/src/utilities/workerRequests.js b/packages/server/src/utilities/workerRequests.js index cbecb2c4b5..e08ad147d1 100644 --- a/packages/server/src/utilities/workerRequests.js +++ b/packages/server/src/utilities/workerRequests.js @@ -153,3 +153,11 @@ exports.getChecklist = async () => { ) return checkResponse(response, "get checklist") } + +exports.generateApiKey = async userId => { + const response = await fetch( + checkSlashesInUrl(env.WORKER_URL + "/api/global/self/api_key"), + request(null, { method: "POST", body: { userId } }) + ) + return checkResponse(response, "generate API key") +} diff --git a/packages/worker/src/api/controllers/global/self.js b/packages/worker/src/api/controllers/global/self.js index 28afa69fa0..6824476af3 100644 --- a/packages/worker/src/api/controllers/global/self.js +++ b/packages/worker/src/api/controllers/global/self.js @@ -16,6 +16,11 @@ const { newid } = require("@budibase/backend-core/utils") const { users } = require("../../../sdk") const { Cookies } = require("@budibase/backend-core/constants") const { events, featureFlags } = require("@budibase/backend-core") +const env = require("../../../environment") + +function newTestApiKey() { + return env.ENCRYPTED_TEST_PUBLIC_API_KEY +} function newApiKey() { return encrypt(`${getTenantId()}${SEPARATOR}${newid()}`) @@ -29,15 +34,25 @@ function cleanupDevInfo(info) { } exports.generateAPIKey = async ctx => { + let userId + let apiKey + if (env.isTest() && ctx.request.body.userId) { + userId = ctx.request.body.userId + apiKey = newTestApiKey() + } else { + userId = ctx.user._id + apiKey = newApiKey() + } + const db = getGlobalDB() - const id = generateDevInfoID(ctx.user._id) + const id = generateDevInfoID(userId) let devInfo try { devInfo = await db.get(id) } catch (err) { - devInfo = { _id: id, userId: ctx.user._id } + devInfo = { _id: id, userId } } - devInfo.apiKey = await newApiKey() + devInfo.apiKey = await apiKey await db.put(devInfo) ctx.body = cleanupDevInfo(devInfo) } diff --git a/packages/worker/src/environment.ts b/packages/worker/src/environment.ts index fd6749a0f7..0d7853193b 100644 --- a/packages/worker/src/environment.ts +++ b/packages/worker/src/environment.ts @@ -62,6 +62,7 @@ const env = { // other CHECKLIST_CACHE_TTL: parseIntSafe(process.env.CHECKLIST_CACHE_TTL) || 3600, SESSION_UPDATE_PERIOD: process.env.SESSION_UPDATE_PERIOD, + ENCRYPTED_TEST_PUBLIC_API_KEY: process.env.ENCRYPTED_TEST_PUBLIC_API_KEY, _set(key: any, value: any) { process.env[key] = value module.exports[key] = value diff --git a/qa-core/.gitignore b/qa-core/.gitignore new file mode 100644 index 0000000000..e82880bc81 --- /dev/null +++ b/qa-core/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +.env +watchtower-hook.json +dist/ \ No newline at end of file diff --git a/qa-core/package.json b/qa-core/package.json new file mode 100644 index 0000000000..30d2fc9526 --- /dev/null +++ b/qa-core/package.json @@ -0,0 +1,52 @@ +{ + "name": "@budibase/qa-core", + "email": "hi@budibase.com", + "version": "0.0.1", + "main": "index.js", + "description": "Budibase Integration Test Suite", + "repository": { + "type": "git", + "url": "https://github.com/Budibase/budibase.git" + }, + "scripts": { + "test": "jest --runInBand", + "test:watch": "jest --watch", + "test:debug": "DEBUG=1 jest", + "api:server:setup": "ts-node ../packages/builder/cypress/ts/setup.ts", + "api:server:setup:ci": "node ../packages/builder/cypress/setup.js", + "api:test:ci": "start-server-and-test api:server:setup:ci http://localhost:4100/builder test", + "api:test": "start-server-and-test api:server:setup http://localhost:4100/builder test" + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "moduleNameMapper": { + "@budibase/backend-core/(.*)": "/../packages/backend-core/$1", + "@budibase/backend-core": "/../packages/backend-core/src", + "@budibase/types": "/../packages/types/src" + }, + "setupFiles": [ + "./scripts/jestSetup.js" + ], + "setupFilesAfterEnv": [ + "./src/jest.extends.ts" + ] + }, + "devDependencies": { + "@budibase/types": "^1.3.4", + "@types/jest": "^29.0.0", + "@types/node-fetch": "^2.6.2", + "chance": "^1.1.8", + "jest": "^28.0.2", + "prettier": "^2.7.1", + "start-server-and-test": "^1.14.0", + "timekeeper": "^2.2.0", + "ts-jest": "28.0.8", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.1.0", + "typescript": "^4.8.2" + }, + "dependencies": { + "node-fetch": "2" + } +} \ No newline at end of file diff --git a/qa-core/scripts/jestSetup.js b/qa-core/scripts/jestSetup.js new file mode 100644 index 0000000000..5902a68af7 --- /dev/null +++ b/qa-core/scripts/jestSetup.js @@ -0,0 +1,15 @@ +const env = require("../src/environment") + +env._set("BUDIBASE_SERVER_URL", "http://localhost:4100") +env._set("BUDIBASE_PUBLIC_API_KEY", "a65722f06bee5caeadc5d7ca2f543a43-d610e627344210c643bb726f") + +// mock all dates to 2020-01-01T00:00:00.000Z +// use tk.reset() to use real dates in individual tests +const MOCK_DATE = new Date("2020-01-01T00:00:00.000Z") +const MOCK_DATE_TIMESTAMP = 1577836800000 +const tk = require("timekeeper") +tk.freeze(MOCK_DATE) + +if (!process.env.DEBUG) { + global.console.log = jest.fn() // console.log are ignored in tests +} diff --git a/qa-core/src/environment.ts b/qa-core/src/environment.ts new file mode 100644 index 0000000000..4ef8de795a --- /dev/null +++ b/qa-core/src/environment.ts @@ -0,0 +1,8 @@ +export = { + BUDIBASE_SERVER_URL: process.env.BUDIBASE_SERVER_URL, + BUDIBASE_PUBLIC_API_KEY: process.env.BUDIBASE_PUBLIC_API_KEY, + _set(key: any, value: any) { + process.env[key] = value + module.exports[key] = value + }, +} \ No newline at end of file diff --git a/qa-core/src/jest.extends.ts b/qa-core/src/jest.extends.ts new file mode 100644 index 0000000000..380bf85c81 --- /dev/null +++ b/qa-core/src/jest.extends.ts @@ -0,0 +1,22 @@ +// boilerplate to allow TS updates to the global scope +export {}; + +declare global { + namespace jest { + interface Matchers { + toHaveStatusCode(code: number): R; + } + } +} + +// Expect extensions +expect.extend({ + toHaveStatusCode(received, code) { + const pass = received.status === code + return { + message: () => + `expected ${received.status} to match status code ${code}`, + pass, + } + }, +}) diff --git a/qa-core/src/tests/public-api/PublicAPIClient.ts b/qa-core/src/tests/public-api/PublicAPIClient.ts new file mode 100644 index 0000000000..017d8088dd --- /dev/null +++ b/qa-core/src/tests/public-api/PublicAPIClient.ts @@ -0,0 +1,58 @@ +import env from "../../environment" +import fetch from "node-fetch" + +interface HeaderOptions { + headers?: object; + body?: object; + json?: boolean; +} + +type APIMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" + +class PublicAPIClient { + host: string + apiKey: string + appId?: string + + constructor(appId?: string) { + if (!env.BUDIBASE_PUBLIC_API_KEY || !env.BUDIBASE_SERVER_URL) { + throw new Error("Must set BUDIBASE_PUBLIC_API_KEY and BUDIBASE_SERVER_URL env vars") + } + this.host = `${env.BUDIBASE_SERVER_URL}/api/public/v1` + this.apiKey = env.BUDIBASE_PUBLIC_API_KEY + this.appId = appId + } + + apiCall = + (method: APIMethod) => + async (url = "", options: HeaderOptions = {}) => { + const requestOptions = { + method: method, + body: JSON.stringify(options.body), + headers: { + "x-budibase-api-key": this.apiKey, + "x-budibase-app-id": this.appId, + "Content-Type": "application/json", + Accept: "application/json", + ...options.headers, + }, + // TODO: See if this is necessary + credentials: "include", + } + + // @ts-ignore + const response = await fetch(`${this.host}${url}`, requestOptions) + if (response.status !== 200) { + console.error(response) + } + return response + } + + post = this.apiCall("POST") + get = this.apiCall("GET") + patch = this.apiCall("PATCH") + del = this.apiCall("DELETE") + put = this.apiCall("PUT") +} + +export default PublicAPIClient \ No newline at end of file diff --git a/qa-core/src/tests/public-api/TestConfiguration.ts b/qa-core/src/tests/public-api/TestConfiguration.ts new file mode 100644 index 0000000000..647e64758e --- /dev/null +++ b/qa-core/src/tests/public-api/TestConfiguration.ts @@ -0,0 +1,39 @@ +import PublicAPIClient from "./PublicAPIClient"; +import generateApp from "./applications/fixtures/generate" + +class TestConfiguration { + testContext: Record; + apiClient: PublicAPIClient; + + constructor() { + this.testContext = {} + this.apiClient = new PublicAPIClient() + } + + async beforeAll() { + + } + + async afterAll() { + } + + async seedTable(appId: string) { + const response = await this.apiClient.post("/tables", { + body: require("./tables/fixtures/seed.json"), + headers: { + "x-budibase-app-id": appId + } + }) + const json = await response.json() + return json.data + } + + async seedApp() { + const response = await this.apiClient.post("/applications", { + body: generateApp() + }) + return response.json() + } +} + +export default TestConfiguration diff --git a/qa-core/src/tests/public-api/applications/applications.spec.ts b/qa-core/src/tests/public-api/applications/applications.spec.ts new file mode 100644 index 0000000000..83180429e0 --- /dev/null +++ b/qa-core/src/tests/public-api/applications/applications.spec.ts @@ -0,0 +1,47 @@ +import TestConfiguration from "../TestConfiguration" +import PublicAPIClient from "../PublicAPIClient" +import generateApp from "./fixtures/generate" + +describe("Public API - /applications endpoints", () => { + const api = new PublicAPIClient() + const config = new TestConfiguration() + + beforeAll(async () => { + await config.beforeAll() + }) + + afterAll(async () => { + await config.afterAll() + }) + + it("POST - Create a application", async () => { + const response = await api.post(`/applications`, { + body: generateApp() + }) + const json = await response.json() + config.testContext.application = json.data + expect(response).toHaveStatusCode(200) + }) + + it("POST - Search applications", async () => { + const response = await api.post(`/applications/search`, { + body: { + name: config.testContext.application.name + } + }) + expect(response).toHaveStatusCode(200) + }) + + it("GET - Retrieve a application", async () => { + const response = await api.get(`/applications/${config.testContext.application._id}`) + expect(response).toHaveStatusCode(200) + }) + + + it("PUT - update a application", async () => { + const response = await api.put(`/applications/${config.testContext.application._id}`, { + body: require("./fixtures/update_application.json") + }) + expect(response).toHaveStatusCode(200) + }) +}) diff --git a/qa-core/src/tests/public-api/applications/fixtures/application.json b/qa-core/src/tests/public-api/applications/fixtures/application.json new file mode 100644 index 0000000000..093edbcb0e --- /dev/null +++ b/qa-core/src/tests/public-api/applications/fixtures/application.json @@ -0,0 +1,4 @@ +{ + "name": "TestApp", + "url": "/testapp" +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/applications/fixtures/generate.ts b/qa-core/src/tests/public-api/applications/fixtures/generate.ts new file mode 100644 index 0000000000..2e28f6fb06 --- /dev/null +++ b/qa-core/src/tests/public-api/applications/fixtures/generate.ts @@ -0,0 +1,9 @@ +import generator from "../../generator" + +const generate = (overrides = {}) => ({ + name: generator.word(), + url: `/${generator.word()}`, + ...overrides +}) + +export default generate \ No newline at end of file diff --git a/qa-core/src/tests/public-api/applications/fixtures/seed.json b/qa-core/src/tests/public-api/applications/fixtures/seed.json new file mode 100644 index 0000000000..7a5de02e82 --- /dev/null +++ b/qa-core/src/tests/public-api/applications/fixtures/seed.json @@ -0,0 +1,4 @@ +{ + "name": "SeedApp", + "url": "/seedapp" +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/applications/fixtures/update_application.json b/qa-core/src/tests/public-api/applications/fixtures/update_application.json new file mode 100644 index 0000000000..ea3b3d0b31 --- /dev/null +++ b/qa-core/src/tests/public-api/applications/fixtures/update_application.json @@ -0,0 +1,4 @@ +{ + "name": "UpdatedTestApp", + "url": "/updatedtestapp" +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/generator.ts b/qa-core/src/tests/public-api/generator.ts new file mode 100644 index 0000000000..f9ef06f243 --- /dev/null +++ b/qa-core/src/tests/public-api/generator.ts @@ -0,0 +1,3 @@ +const Chance = require("chance") + +export default new Chance() \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/row.json b/qa-core/src/tests/public-api/tables/fixtures/row.json new file mode 100644 index 0000000000..9436576947 --- /dev/null +++ b/qa-core/src/tests/public-api/tables/fixtures/row.json @@ -0,0 +1,8 @@ +{ + "type": "row", + "tableId": "seed_table", + "sasa": "Mike", + "relationship": [ + "ro_ta_" + ] +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/seed.json b/qa-core/src/tests/public-api/tables/fixtures/seed.json new file mode 100644 index 0000000000..acbaeaff6c --- /dev/null +++ b/qa-core/src/tests/public-api/tables/fixtures/seed.json @@ -0,0 +1,94 @@ +{ + "name": "test", + "primaryDisplay": "sasa", + "schema": { + "Auto ID": { + "autocolumn": true, + "constraints": { + "numericality": { + "greaterThanOrEqualTo": "", + "lessThanOrEqualTo": "" + }, + "presence": false, + "type": "number" + }, + "icon": "ri-magic-line", + "name": "Auto ID", + "subtype": "autoID", + "type": "number" + }, + "Created At": { + "autocolumn": true, + "constraints": { + "datetime": { + "earliest": "", + "latest": "" + }, + "length": {}, + "presence": false, + "type": "string" + }, + "icon": "ri-magic-line", + "name": "Created At", + "subtype": "createdAt", + "type": "datetime" + }, + "Created By": { + "autocolumn": true, + "constraints": { + "presence": false, + "type": "array" + }, + "fieldName": "test12-Created By", + "icon": "ri-magic-line", + "name": "Created By", + "relationshipType": "many-to-many", + "subtype": "createdBy", + "tableId": "ta_users", + "type": "link" + }, + "sasa": { + "constraints": { + "length": { + "maximum": null + }, + "presence": { + "allowEmpty": false + }, + "type": "string" + }, + "name": "sasa", + "type": "string" + }, + "Updated At": { + "autocolumn": true, + "constraints": { + "datetime": { + "earliest": "", + "latest": "" + }, + "length": {}, + "presence": false, + "type": "string" + }, + "icon": "ri-magic-line", + "name": "Updated At", + "subtype": "updatedAt", + "type": "datetime" + }, + "Updated By": { + "autocolumn": true, + "constraints": { + "presence": false, + "type": "array" + }, + "fieldName": "test12-Updated By", + "icon": "ri-magic-line", + "name": "Updated By", + "relationshipType": "many-to-many", + "subtype": "updatedBy", + "tableId": "ta_users", + "type": "link" + } + } +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/table.json b/qa-core/src/tests/public-api/tables/fixtures/table.json new file mode 100644 index 0000000000..acbaeaff6c --- /dev/null +++ b/qa-core/src/tests/public-api/tables/fixtures/table.json @@ -0,0 +1,94 @@ +{ + "name": "test", + "primaryDisplay": "sasa", + "schema": { + "Auto ID": { + "autocolumn": true, + "constraints": { + "numericality": { + "greaterThanOrEqualTo": "", + "lessThanOrEqualTo": "" + }, + "presence": false, + "type": "number" + }, + "icon": "ri-magic-line", + "name": "Auto ID", + "subtype": "autoID", + "type": "number" + }, + "Created At": { + "autocolumn": true, + "constraints": { + "datetime": { + "earliest": "", + "latest": "" + }, + "length": {}, + "presence": false, + "type": "string" + }, + "icon": "ri-magic-line", + "name": "Created At", + "subtype": "createdAt", + "type": "datetime" + }, + "Created By": { + "autocolumn": true, + "constraints": { + "presence": false, + "type": "array" + }, + "fieldName": "test12-Created By", + "icon": "ri-magic-line", + "name": "Created By", + "relationshipType": "many-to-many", + "subtype": "createdBy", + "tableId": "ta_users", + "type": "link" + }, + "sasa": { + "constraints": { + "length": { + "maximum": null + }, + "presence": { + "allowEmpty": false + }, + "type": "string" + }, + "name": "sasa", + "type": "string" + }, + "Updated At": { + "autocolumn": true, + "constraints": { + "datetime": { + "earliest": "", + "latest": "" + }, + "length": {}, + "presence": false, + "type": "string" + }, + "icon": "ri-magic-line", + "name": "Updated At", + "subtype": "updatedAt", + "type": "datetime" + }, + "Updated By": { + "autocolumn": true, + "constraints": { + "presence": false, + "type": "array" + }, + "fieldName": "test12-Updated By", + "icon": "ri-magic-line", + "name": "Updated By", + "relationshipType": "many-to-many", + "subtype": "updatedBy", + "tableId": "ta_users", + "type": "link" + } + } +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/update_row.json b/qa-core/src/tests/public-api/tables/fixtures/update_row.json new file mode 100644 index 0000000000..556e02f8bd --- /dev/null +++ b/qa-core/src/tests/public-api/tables/fixtures/update_row.json @@ -0,0 +1,8 @@ +{ + "type": "row", + "tableId": "seed_table", + "sasa": "MikeIsTheBest", + "relationship": [ + "ro_ta_..." + ] +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/update_table.json b/qa-core/src/tests/public-api/tables/fixtures/update_table.json new file mode 100644 index 0000000000..64ca1147e8 --- /dev/null +++ b/qa-core/src/tests/public-api/tables/fixtures/update_table.json @@ -0,0 +1,94 @@ +{ + "name": "test123", + "primaryDisplay": "sasa", + "schema": { + "Auto ID": { + "autocolumn": true, + "constraints": { + "numericality": { + "greaterThanOrEqualTo": "", + "lessThanOrEqualTo": "" + }, + "presence": false, + "type": "number" + }, + "icon": "ri-magic-line", + "name": "Auto ID", + "subtype": "autoID", + "type": "number" + }, + "Created At": { + "autocolumn": true, + "constraints": { + "datetime": { + "earliest": "", + "latest": "" + }, + "length": {}, + "presence": false, + "type": "string" + }, + "icon": "ri-magic-line", + "name": "Created At", + "subtype": "createdAt", + "type": "datetime" + }, + "Created By": { + "autocolumn": true, + "constraints": { + "presence": false, + "type": "array" + }, + "fieldName": "test12-Created By", + "icon": "ri-magic-line", + "name": "Created By", + "relationshipType": "many-to-many", + "subtype": "createdBy", + "tableId": "ta_users", + "type": "link" + }, + "sasa": { + "constraints": { + "length": { + "maximum": null + }, + "presence": { + "allowEmpty": false + }, + "type": "string" + }, + "name": "sasa", + "type": "string" + }, + "Updated At": { + "autocolumn": true, + "constraints": { + "datetime": { + "earliest": "", + "latest": "" + }, + "length": {}, + "presence": false, + "type": "string" + }, + "icon": "ri-magic-line", + "name": "Updated At", + "subtype": "updatedAt", + "type": "datetime" + }, + "Updated By": { + "autocolumn": true, + "constraints": { + "presence": false, + "type": "array" + }, + "fieldName": "test12-Updated By", + "icon": "ri-magic-line", + "name": "Updated By", + "relationshipType": "many-to-many", + "subtype": "updatedBy", + "tableId": "ta_users", + "type": "link" + } + } +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/rows.spec.ts b/qa-core/src/tests/public-api/tables/rows.spec.ts new file mode 100644 index 0000000000..099a3d3593 --- /dev/null +++ b/qa-core/src/tests/public-api/tables/rows.spec.ts @@ -0,0 +1,51 @@ +import TestConfiguration from "../TestConfiguration" +import PublicAPIClient from "../PublicAPIClient" + +describe("Public API - /rows endpoints", () => { + let api: PublicAPIClient + + const config = new TestConfiguration() + + beforeAll(async () => { + await config.beforeAll() + const app = await config.seedApp() + + config.testContext.table = await config.seedTable(app.data._id) + api = new PublicAPIClient(app.data._id) + }) + + afterAll(async () => { + await config.afterAll() + }) + + it("POST - Create a row", async () => { + const response = await api.post(`/tables/${config.testContext.table._id}/rows`, { + body: require("./fixtures/row.json") + }) + const json = await response.json() + config.testContext.row = json.data + expect(response).toHaveStatusCode(200) + }) + + it("POST - Search rows", async () => { + const response = await api.post(`/tables/${config.testContext.table._id}/rows/search`, { + body: { + name: config.testContext.row.name + } + }) + expect(response).toHaveStatusCode(200) + }) + + it("GET - Retrieve a row", async () => { + const response = await api.get(`/tables/${config.testContext.table._id}/rows/${config.testContext.row._id}`) + expect(response).toHaveStatusCode(200) + }) + + + it("PUT - update a row", async () => { + const response = await api.put(`/tables/${config.testContext.table._id}/rows/${config.testContext.row._id}`, { + body: require("./fixtures/update_row.json") + }) + expect(response).toHaveStatusCode(200) + }) +}) diff --git a/qa-core/src/tests/public-api/tables/tables.spec.ts b/qa-core/src/tests/public-api/tables/tables.spec.ts new file mode 100644 index 0000000000..70e3bb8d78 --- /dev/null +++ b/qa-core/src/tests/public-api/tables/tables.spec.ts @@ -0,0 +1,48 @@ +import TestConfiguration from "../TestConfiguration" +import PublicAPIClient from "../PublicAPIClient" + +describe("Public API - /tables endpoints", () => { + let api: PublicAPIClient + const config = new TestConfiguration() + + beforeAll(async () => { + await config.beforeAll() + const app = await config.seedApp() + api = new PublicAPIClient(app.data._id) + }) + + afterAll(async () => { + await config.afterAll() + }) + + it("POST - Create a table", async () => { + const response = await api.post(`/tables`, { + body: require("./fixtures/table.json") + }) + const json = await response.json() + config.testContext.table = json.data + expect(response).toHaveStatusCode(200) + }) + + it("POST - Search tables", async () => { + const response = await api.post(`/tables/search`, { + body: { + name: config.testContext.table.name + } + }) + expect(response).toHaveStatusCode(200) + }) + + it("GET - Retrieve a table", async () => { + const response = await api.get(`/tables/${config.testContext.table._id}`) + expect(response).toHaveStatusCode(200) + }) + + + it("PUT - update a table", async () => { + const response = await api.put(`/tables/${config.testContext.table._id}`, { + body: require("./fixtures/update_table.json") + }) + expect(response).toHaveStatusCode(200) + }) +}) diff --git a/qa-core/src/tests/public-api/users/fixtures/generate.ts b/qa-core/src/tests/public-api/users/fixtures/generate.ts new file mode 100644 index 0000000000..ca3c7b3c2c --- /dev/null +++ b/qa-core/src/tests/public-api/users/fixtures/generate.ts @@ -0,0 +1,22 @@ +import generator from "../../generator" +import { User } from "@budibase/types" + +const generate = (overrides = {}): User => ({ + tenantId: generator.word(), + email: generator.email(), + roles: { + [generator.string({ length: 32, alpha: true, numeric: true })]: generator.word(), + }, + password: generator.word(), + status: "active", + forceResetPassword: generator.bool(), + builder: { + global: generator.bool() + }, + admin: { + global: generator.bool() + }, + ...overrides +}) + +export default generate \ No newline at end of file diff --git a/qa-core/src/tests/public-api/users/fixtures/update_user.json b/qa-core/src/tests/public-api/users/fixtures/update_user.json new file mode 100644 index 0000000000..72d24b3ee8 --- /dev/null +++ b/qa-core/src/tests/public-api/users/fixtures/update_user.json @@ -0,0 +1,18 @@ +{ + "email": "test@budibase.com", + "roles": { + "sed_6d7": "sit ea amet", + "cupidatat_e16": "fugiat proident sed" + }, + "password": "cupidatat Lorem ad", + "status": "active", + "firstName": "QA", + "lastName": "Updated", + "forceResetPassword": true, + "builder": { + "global": true + }, + "admin": { + "global": false + } +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/users/fixtures/user.json b/qa-core/src/tests/public-api/users/fixtures/user.json new file mode 100644 index 0000000000..b6fc9f49e6 --- /dev/null +++ b/qa-core/src/tests/public-api/users/fixtures/user.json @@ -0,0 +1,18 @@ +{ + "email": "test@budibase.com", + "roles": { + "sed_6d7": "sit ea amet", + "cupidatat_e16": "fugiat proident sed" + }, + "password": "cupidatat Lorem ad", + "status": "active", + "firstName": "QA", + "lastName": "Test", + "forceResetPassword": true, + "builder": { + "global": true + }, + "admin": { + "global": false + } +} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/users/users.spec.ts b/qa-core/src/tests/public-api/users/users.spec.ts new file mode 100644 index 0000000000..c18a78ca72 --- /dev/null +++ b/qa-core/src/tests/public-api/users/users.spec.ts @@ -0,0 +1,46 @@ +import TestConfiguration from "../TestConfiguration" +import PublicAPIClient from "../PublicAPIClient" + +describe("Public API - /users endpoints", () => { + const api = new PublicAPIClient() + const config = new TestConfiguration() + + beforeAll(async () => { + await config.beforeAll() + }) + + afterAll(async () => { + await config.afterAll() + }) + + it("POST - Create a user", async () => { + const response = await api.post(`/users`, { + body: require("./fixtures/user.json") + }) + const json = await response.json() + config.testContext.user = json.data + expect(response).toHaveStatusCode(200) + }) + + it("POST - Search users", async () => { + const response = await api.post(`/users/search`, { + body: { + name: config.testContext.user.email + } + }) + expect(response).toHaveStatusCode(200) + }) + + it("GET - Retrieve a user", async () => { + const response = await api.get(`/users/${config.testContext.user._id}`) + expect(response).toHaveStatusCode(200) + }) + + + it("PUT - update a user", async () => { + const response = await api.put(`/users/${config.testContext.user._id}`, { + body: require("./fixtures/update_user.json") + }) + expect(response).toHaveStatusCode(200) + }) +}) diff --git a/qa-core/tsconfig.json b/qa-core/tsconfig.json new file mode 100644 index 0000000000..c305c3a4bd --- /dev/null +++ b/qa-core/tsconfig.json @@ -0,0 +1,36 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "lib": ["es2020"], + "allowJs": true, + "strict": true, + "noImplicitAny": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "incremental": true, + "types": ["node", "jest"], + "outDir": "dist", + "skipLibCheck": true, + "paths": { + "@budibase/types": ["../packages/types/src"], + "@budibase/backend-core": ["../packages/backend-core/src"], + "@budibase/backend-core/*": ["../packages/backend-core/*"] + } + }, + "ts-node": { + "require": ["tsconfig-paths/register"] + }, + "references": [ + { "path": "../packages/types" }, + { "path": "../packages/backend-core" }, + ], + "include": [ + "src/**/*", + "package.json" + ], + "exclude": [ + "node_modules", + "dist" + ] +} \ No newline at end of file diff --git a/qa-core/yarn.lock b/qa-core/yarn.lock new file mode 100644 index 0000000000..5daa4d7ee7 --- /dev/null +++ b/qa-core/yarn.lock @@ -0,0 +1,2658 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@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== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.18.8": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" + integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" + integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.13" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.13" + "@babel/types" "^7.18.13" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.18.13", "@babel/generator@^7.7.2": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" + integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== + dependencies: + "@babel/types" "^7.18.13" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" + integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.20.2" + semver "^6.3.0" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + 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-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" + integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@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.18.6", "@babel/helper-plugin-utils@^7.8.0": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.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/helpers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" + integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== + dependencies: + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" + integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== + +"@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" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@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-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" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" + integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.13" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.13" + "@babel/types" "^7.18.13" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" + integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== + dependencies: + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@budibase/types@^1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.4.tgz#25f087b024e843eb372e50c81f8f925fb39f1dfd" + integrity sha512-ndyWs8yeCS7cpZjApDB1HhY6UUM2SRBUgAMCZOZaWABG9JHeCbx7x0e/pA2SZjswdMXqS5WmnEd3br5wuvUzJw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + 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== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + +"@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== + 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" + "@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" + micromatch "^4.0.4" + pretty-format "^28.1.3" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@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== + dependencies: + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + +"@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== + dependencies: + jest-get-type "^28.0.2" + +"@jest/expect-utils@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.2.tgz#00dfcb9e6fe99160c326ba39f7734b984543dea8" + integrity sha512-+wcQF9khXKvAEi8VwROnCWWmHfsJYCZAs5dmuMlJBKk57S6ZN2/FQMIlo01F29fJyT8kV/xblE7g3vkIdTLOjw== + dependencies: + jest-get-type "^29.0.0" + +"@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== + dependencies: + expect "^28.1.3" + jest-snapshot "^28.1.3" + +"@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== + dependencies: + "@jest/types" "^28.1.3" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" + +"@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== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" + +"@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== + 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" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + 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" + 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== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@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== + dependencies: + "@jridgewell/trace-mapping" "^0.3.13" + 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== + dependencies: + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" + "@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== + dependencies: + "@jest/test-result" "^28.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + 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== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + 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" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.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== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jest/types@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.2.tgz#5a5391fa7f7f41bf4b201d6d2da30e874f95b6c1" + integrity sha512-5WNMesBLmlkt1+fVkoCjHa0X3i3q8zc4QLTDkdHgCa2gyPZc7rdlZBWgVLqwS1860ZW5xJuCDwAzqbGaXIr/ew== + dependencies: + "@jest/schemas" "^29.0.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@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.9": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + 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.35" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.35.tgz#7b5ca127aefe3ed482bb60f874bebbe3143e82f5" + integrity sha512-iN6ehuDndiTiDz2F+Orv/+oHJR+PrGv+38oghCddpsW4YEZl5qyLsWxSwYUWrKEOfjpGtXDFW6scJtjpzSLeSw== + +"@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== + 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== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@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" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.18.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.1.tgz#ce5e2c8c272b99b7a9fd69fa39f0b4cd85028bd9" + integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== + dependencies: + "@babel/types" "^7.3.0" + +"@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" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.0.tgz#bc66835bf6b09d6a47e22c21d7f5b82692e60e72" + integrity sha512-X6Zjz3WO4cT39Gkl0lZ2baFRaEMqJl5NC1OjElkwtNzAlbkr2K/WJXkBkH5VP0zx4Hgsd2TZYdOEfvp2Dxia+Q== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/node-fetch@^2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*": + version "18.7.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.14.tgz#0fe081752a3333392d00586d815485a17c2cf3c9" + integrity sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA== + +"@types/prettier@^2.1.5": + version "2.7.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" + integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" + integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== + dependencies: + "@types/yargs-parser" "*" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.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== + dependencies: + "@jest/transform" "^28.1.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^28.1.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + 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== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +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" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@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-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== + dependencies: + babel-plugin-jest-hoist "^28.1.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bluebird@3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.20.2: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== + dependencies: + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001370: + version "1.0.30001390" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz#158a43011e7068ef7fc73590e9fd91a7cece5e7f" + integrity sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chance@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.8.tgz#5d6c2b78c9170bf6eb9df7acdda04363085be909" + integrity sha512-v7fi5Hj2VbR6dJEGRWLmJBA83LJMS47pkAbmROFxHWd9qmE1esHRZW8Clf1Fhzr3rjxnNZVCjOEv/ivFxeIMtg== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +check-more-types@2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== + +ci-info@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^1.4.0, 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" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +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.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +electron-to-chromium@^1.4.202: + version "1.4.241" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.241.tgz#5aa03ab94db590d8269f4518157c24b1efad34d6" + integrity sha512-e7Wsh4ilaioBZ5bMm6+F4V5c11dh56/5Jwz7Hl5Tu1J7cnB+Pqx5qIF2iC7HPpfyQMqGSvvLP5bBAIDd2gAtGw== + +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== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +event-stream@=3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +execa@5.1.1, execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +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== + 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" + +expect@^29.0.0: + version "29.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.2.tgz#22c7132400f60444b427211f1d6bb604a9ab2420" + integrity sha512-JeJlAiLKn4aApT4pzUXBVxl3NaZidWIOdg//smaIlP9ZMBDkHZGFd9ubphUZP9pUyDEo7bC6M0IIZR51o75qQw== + dependencies: + "@jest/expect-utils" "^29.0.2" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.2" + jest-message-util "^29.0.2" + jest-util "^29.0.2" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.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== + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +follow-redirects@^1.14.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" + integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + 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== + 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== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@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" + p-limit "^3.1.0" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== + dependencies: + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + 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" + 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== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" + 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" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^28.1.3" + slash "^3.0.0" + strip-json-comments "^3.1.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== + dependencies: + chalk "^4.0.0" + diff-sequences "^28.1.1" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-diff@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.2.tgz#1a99419efda66f9ee72f91e580e774df95de5ddc" + integrity sha512-b9l9970sa1rMXH1owp2Woprmy42qIwwll/htsw4Gf7+WuSp5bZxNhkKHDuCGKL+HoHn1KhcC+tNEeAPYBkD2Jg== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.2" + +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== + 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== + dependencies: + "@jest/types" "^28.1.3" + chalk "^4.0.0" + jest-get-type "^28.0.2" + jest-util "^28.1.3" + pretty-format "^28.1.3" + +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== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + jest-util "^28.1.3" + +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.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== + +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== + dependencies: + "@jest/types" "^28.1.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + jest-worker "^28.1.3" + 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== + dependencies: + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +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== + dependencies: + chalk "^4.0.0" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-matcher-utils@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.2.tgz#0ffdcaec340a9810caee6c73ff90fb029b446e10" + integrity sha512-s62YkHFBfAx0JLA2QX1BlnCRFwHRobwAv2KP1+YhjzF6ZCbCVrf1sG8UJyn62ZUsDaQKpoo86XMTjkUyO5aWmQ== + dependencies: + chalk "^4.0.0" + jest-diff "^29.0.2" + jest-get-type "^29.0.0" + pretty-format "^29.0.2" + +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== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-message-util@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.2.tgz#b2781dfb6a2d1c63830d9684c5148ae3155c6154" + integrity sha512-kcJAgms3ckJV0wUoLsAM40xAhY+pb9FVSZwicjFU9PFkaTNmqh9xd99/CzKse48wPM1ANUQKmp03/DpkY+lGrA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.2" + 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== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + +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-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== + dependencies: + jest-regex-util "^28.0.2" + jest-snapshot "^28.1.3" + +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== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-pnp-resolver "^1.2.2" + jest-util "^28.1.3" + jest-validate "^28.1.3" + resolve "^1.20.0" + resolve.exports "^1.1.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== + 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" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.10.2" + 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" + 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== + 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" + 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" + slash "^3.0.0" + strip-bom "^4.0.0" + +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== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^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" + "@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" + 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" + natural-compare "^1.4.0" + pretty-format "^28.1.3" + 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== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.2.tgz#c75c5cab7f3b410782f9570a60c5558b5dfb6e3a" + integrity sha512-ozk8ruEEEACxqpz0hN9UOgtPZS0aN+NffwQduR5dVlhN+eN47vxurtvgZkYZYMpYrsmlAEx1XabkB3BnN0GfKQ== + dependencies: + "@jest/types" "^29.0.2" + "@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== + dependencies: + "@jest/types" "^28.1.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^28.0.2" + leven "^3.1.0" + pretty-format "^28.1.3" + +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== + dependencies: + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^28.1.3" + 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== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^28.0.2: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== + dependencies: + "@jest/core" "^28.1.3" + "@jest/types" "^28.1.3" + import-local "^3.0.2" + jest-cli "^28.1.3" + +joi@^17.4.0: + version "17.6.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +lazy-ass@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +node-fetch@2: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== + dependencies: + through "~2.3" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + +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== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^29.0.0, pretty-format@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.2.tgz#7f7666a7bf05ba2bcacde61be81c6db64f6f3be6" + integrity sha512-wp3CdtUa3cSJVFn3Miu5a1+pxc1iPIQTenOAn+x5erXeN1+ryTcLesV5pbK/rlW5EKwp27x38MoYfNGaNXDDhg== + dependencies: + "@jest/schemas" "^29.0.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +ps-tree@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== + dependencies: + event-stream "=3.3.4" + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "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@^1.20.0: + 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" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rxjs@^7.1.0: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + dependencies: + tslib "^2.1.0" + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver@7.x, semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.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== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +start-server-and-test@^1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" + integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== + dependencies: + bluebird "3.7.2" + check-more-types "2.24.0" + debug "4.3.2" + execa "5.1.1" + lazy-ass "1.6.0" + ps-tree "1.2.0" + wait-on "6.0.0" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== + dependencies: + duplexer "~0.1.1" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.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== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + 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" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +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" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +through@2, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +timekeeper@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/timekeeper/-/timekeeper-2.2.0.tgz#9645731fce9e3280a18614a57a9d1b72af3ca368" + integrity sha512-W3AmPTJWZkRwu+iSNxPIsLZ2ByADsOLbbLxe46UJyWj3mlYLlwucKiq+/dPm0l9wTzqoF3/2PH0AGFCebjq23A== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-jest@28.0.8: + version "28.0.8" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73" + integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^28.0.0" + json5 "^2.2.1" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "^21.0.1" + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" + integrity sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow== + dependencies: + json5 "^2.2.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typescript@^4.8.2: + version "4.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" + integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== + +update-browserslist-db@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz#16279639cff1d0f800b14792de43d97df2d11b7d" + integrity sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + +wait-on@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" + integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== + dependencies: + axios "^0.21.1" + joi "^17.4.0" + lodash "^4.17.21" + minimist "^1.2.5" + rxjs "^7.1.0" + +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== + dependencies: + makeerror "1.0.12" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.1: + 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== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^21.0.0, yargs-parser@^21.0.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== + +yargs@^17.3.1: + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 10387a306197ac854a6ccc5a831559e022d15766 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Tue, 6 Sep 2022 09:08:49 +0100 Subject: [PATCH 16/94] make sure yarn gets run in qa-core --- .github/workflows/budibase_ci.yml | 5 ++++- package.json | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/budibase_ci.yml b/.github/workflows/budibase_ci.yml index df7a36caa4..23cdfba236 100644 --- a/.github/workflows/budibase_ci.yml +++ b/.github/workflows/budibase_ci.yml @@ -60,4 +60,7 @@ jobs: # install: false # command: yarn test:e2e:ci - - run: yarn test:api:ci \ No newline at end of file + - run: | + cd qa-core + yarn + yarn api:test:ci \ No newline at end of file diff --git a/package.json b/package.json index a2d8f28f43..4c24e0025b 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,6 @@ "test:e2e:ci": "lerna run cy:ci --stream", "test:e2e:ci:record": "lerna run cy:ci:record --stream", "test:e2e:ci:notify": "lerna run cy:ci:notify", - "test:api:ci": "npm --prefix ./qa-core run api:test:ci", - "test:api": "npm --prefix ./qa-core run api:test", "build:specs": "lerna run specs", "build:docker": "lerna run build:docker && npm run build:docker:proxy:compose && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh $BUDIBASE_RELEASE_VERSION && cd -", "build:docker:pre": "lerna run build && lerna run predocker", From ba211b8490277918b8dec091951bcde054810770 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 6 Sep 2022 12:25:57 +0100 Subject: [PATCH 17/94] Day pass middleware --- .../src/middleware/authenticated.ts | 18 ++++++++++-- .../backend-core/src/security/sessions.ts | 28 ++++--------------- packages/backend-core/src/users.ts | 4 ++- packages/backend-core/src/utils.js | 12 ++++++++ .../src/api/controllers/static/index.ts | 1 - packages/server/src/api/index.js | 3 +- packages/types/src/documents/global/user.ts | 1 + packages/types/src/sdk/auth.ts | 22 +++++++++++++++ packages/worker/src/api/index.ts | 8 ++++-- 9 files changed, 68 insertions(+), 29 deletions(-) diff --git a/packages/backend-core/src/middleware/authenticated.ts b/packages/backend-core/src/middleware/authenticated.ts index 062070785d..54e41bff57 100644 --- a/packages/backend-core/src/middleware/authenticated.ts +++ b/packages/backend-core/src/middleware/authenticated.ts @@ -10,6 +10,7 @@ import { getGlobalDB, doInTenant } from "../tenancy" import { decrypt } from "../security/encryption" const identity = require("../context/identity") const env = require("../environment") +import { User } from "@budibase/types" const ONE_MINUTE = env.SESSION_UPDATE_PERIOD || 60 * 1000 @@ -67,7 +68,11 @@ async function checkApiKey(apiKey: string, populateUser?: Function) { */ export = ( noAuthPatterns = [], - opts: { publicAllowed: boolean; populateUser?: Function } = { + opts: { + publicAllowed: boolean + populateUser?: Function + checkDayPass?: (ctx: any, user: User, tenantId: string) => Promise + } = { publicAllowed: false, } ) => { @@ -106,7 +111,16 @@ export = ( user = await getUser(userId, session.tenantId) } user.csrfToken = session.csrfToken - if (session?.lastAccessedAt < timeMinusOneMinute()) { + + // check day passes for the current user + if (opts.checkDayPass) { + await opts.checkDayPass(ctx, user, session.tenantId) + } + + if ( + !session.lastAccessedAt || + session.lastAccessedAt < timeMinusOneMinute() + ) { // make sure we denote that the session is still in use await updateSessionTTL(session) } diff --git a/packages/backend-core/src/security/sessions.ts b/packages/backend-core/src/security/sessions.ts index f621b99dc2..33230afc60 100644 --- a/packages/backend-core/src/security/sessions.ts +++ b/packages/backend-core/src/security/sessions.ts @@ -2,28 +2,12 @@ const redis = require("../redis/init") const { v4: uuidv4 } = require("uuid") const { logWarn } = require("../logging") const env = require("../environment") - -interface CreateSession { - sessionId: string - tenantId: string - csrfToken?: string -} - -interface Session extends CreateSession { - userId: string - lastAccessedAt: string - createdAt: string - // make optional attributes required - csrfToken: string -} - -interface SessionKey { - key: string -} - -interface ScannedSession { - value: Session -} +import { + Session, + ScannedSession, + SessionKey, + CreateSession, +} from "@budibase/types" // a week in seconds const EXPIRY_SECONDS = 86400 * 7 diff --git a/packages/backend-core/src/users.ts b/packages/backend-core/src/users.ts index 5d6d45a582..0793eeb1d9 100644 --- a/packages/backend-core/src/users.ts +++ b/packages/backend-core/src/users.ts @@ -13,7 +13,9 @@ import { User } from "@budibase/types" * all the users to find one with this email address. * @param {string} email the email to lookup the user by. */ -export const getGlobalUserByEmail = async (email: String) => { +export const getGlobalUserByEmail = async ( + email: String +): Promise => { if (email == null) { throw "Must supply an email address to view" } diff --git a/packages/backend-core/src/utils.js b/packages/backend-core/src/utils.js index 0587267e9a..6b59c7cb72 100644 --- a/packages/backend-core/src/utils.js +++ b/packages/backend-core/src/utils.js @@ -42,6 +42,18 @@ async function resolveAppUrl(ctx) { return app && app.appId ? app.appId : undefined } +exports.isServingApp = ctx => { + // dev app + if (ctx.path.startsWith(`/${APP_PREFIX}`)) { + return true + } + // prod app + if (ctx.path.startsWith(PROD_APP_PREFIX)) { + return true + } + return false +} + /** * Given a request tries to find the appId, which can be located in various places * @param {object} ctx The main request body to look through. diff --git a/packages/server/src/api/controllers/static/index.ts b/packages/server/src/api/controllers/static/index.ts index 3b748a6591..a72b51fcf8 100644 --- a/packages/server/src/api/controllers/static/index.ts +++ b/packages/server/src/api/controllers/static/index.ts @@ -18,7 +18,6 @@ const { DocumentType } = require("../../../db/utils") const { getAppDB, getAppId } = require("@budibase/backend-core/context") const { setCookie, clearCookie } = require("@budibase/backend-core/utils") const AWS = require("aws-sdk") - const fs = require("fs") const { downloadTarballDirect, diff --git a/packages/server/src/api/index.js b/packages/server/src/api/index.js index d156ca2997..ffcea09985 100644 --- a/packages/server/src/api/index.js +++ b/packages/server/src/api/index.js @@ -11,7 +11,7 @@ const zlib = require("zlib") const { mainRoutes, staticRoutes, publicRoutes } = require("./routes") const pkg = require("../../package.json") const env = require("../environment") -const { middleware: pro } = require("@budibase/pro") +const { middleware: pro, quotas } = require("@budibase/pro") const { shutdown } = require("./routes/public") const router = new Router() @@ -44,6 +44,7 @@ router .use( buildAuthMiddleware(null, { publicAllowed: true, + checkDayPass: quotas.checkDayPass, }) ) // nothing in the server should allow query string tenants diff --git a/packages/types/src/documents/global/user.ts b/packages/types/src/documents/global/user.ts index ac16194a21..6c93bac1ac 100644 --- a/packages/types/src/documents/global/user.ts +++ b/packages/types/src/documents/global/user.ts @@ -16,6 +16,7 @@ export interface User extends Document { createdAt?: number // override the default createdAt behaviour - users sdk historically set this to Date.now() userGroups?: string[] forceResetPassword?: boolean + dayPassRecordedAt?: string } export interface UserRoles { diff --git a/packages/types/src/sdk/auth.ts b/packages/types/src/sdk/auth.ts index dd3c2124b5..6a040abf77 100644 --- a/packages/types/src/sdk/auth.ts +++ b/packages/types/src/sdk/auth.ts @@ -3,3 +3,25 @@ export interface AuthToken { tenantId: string sessionId: string } + +export interface CreateSession { + sessionId: string + tenantId: string + csrfToken?: string +} + +export interface Session extends CreateSession { + userId: string + lastAccessedAt: string + createdAt: string + // make optional attributes required + csrfToken: string +} + +export interface SessionKey { + key: string +} + +export interface ScannedSession { + value: Session +} diff --git a/packages/worker/src/api/index.ts b/packages/worker/src/api/index.ts index 692eff685c..5d809ba5b8 100644 --- a/packages/worker/src/api/index.ts +++ b/packages/worker/src/api/index.ts @@ -2,7 +2,7 @@ import Router from "@koa/router" const compress = require("koa-compress") const zlib = require("zlib") import { routes } from "./routes" -import { middleware as pro } from "@budibase/pro" +import { middleware as pro, quotas } from "@budibase/pro" import { errors, auth, middleware } from "@budibase/backend-core" import { APIError } from "@budibase/types" @@ -92,7 +92,11 @@ router }) ) .use("/health", ctx => (ctx.status = 200)) - .use(auth.buildAuthMiddleware(PUBLIC_ENDPOINTS)) + .use( + auth.buildAuthMiddleware(PUBLIC_ENDPOINTS, { + checkDayPass: quotas.checkDayPass, + }) + ) .use(auth.buildTenancyMiddleware(PUBLIC_ENDPOINTS, NO_TENANCY_ENDPOINTS)) .use(auth.buildCsrfMiddleware({ noCsrfPatterns: NO_CSRF_ENDPOINTS })) .use(pro.licensing()) From 4f66dc0df391e51f9ca5d21ab9b5f2f4aa46f006 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 6 Sep 2022 16:24:36 +0100 Subject: [PATCH 18/94] Move day pass middleware from authenticated to licensing, sent activity to account portal --- .../src/middleware/authenticated.ts | 5 -- packages/server/src/api/index.js | 6 +- packages/types/src/sdk/koa.ts | 2 + packages/types/src/sdk/licensing/billing.ts | 20 +++++ packages/types/src/sdk/licensing/feature.ts | 3 + packages/types/src/sdk/licensing/index.ts | 4 + packages/types/src/sdk/licensing/license.ts | 9 +- packages/types/src/sdk/licensing/plan.ts | 25 ++++++ packages/types/src/sdk/licensing/quota.ts | 82 +++++++++++++++++++ .../worker/src/api/controllers/global/self.js | 1 + packages/worker/src/api/index.ts | 9 +- .../src/api/routes/global/tests/self.spec.ts | 8 +- 12 files changed, 156 insertions(+), 18 deletions(-) create mode 100644 packages/types/src/sdk/licensing/billing.ts create mode 100644 packages/types/src/sdk/licensing/feature.ts create mode 100644 packages/types/src/sdk/licensing/plan.ts create mode 100644 packages/types/src/sdk/licensing/quota.ts diff --git a/packages/backend-core/src/middleware/authenticated.ts b/packages/backend-core/src/middleware/authenticated.ts index 54e41bff57..0e1b31b9b7 100644 --- a/packages/backend-core/src/middleware/authenticated.ts +++ b/packages/backend-core/src/middleware/authenticated.ts @@ -112,11 +112,6 @@ export = ( } user.csrfToken = session.csrfToken - // check day passes for the current user - if (opts.checkDayPass) { - await opts.checkDayPass(ctx, user, session.tenantId) - } - if ( !session.lastAccessedAt || session.lastAccessedAt < timeMinusOneMinute() diff --git a/packages/server/src/api/index.js b/packages/server/src/api/index.js index ffcea09985..4cd574f557 100644 --- a/packages/server/src/api/index.js +++ b/packages/server/src/api/index.js @@ -11,7 +11,7 @@ const zlib = require("zlib") const { mainRoutes, staticRoutes, publicRoutes } = require("./routes") const pkg = require("../../package.json") const env = require("../environment") -const { middleware: pro, quotas } = require("@budibase/pro") +const { middleware: pro } = require("@budibase/pro") const { shutdown } = require("./routes/public") const router = new Router() @@ -44,7 +44,6 @@ router .use( buildAuthMiddleware(null, { publicAllowed: true, - checkDayPass: quotas.checkDayPass, }) ) // nothing in the server should allow query string tenants @@ -55,9 +54,8 @@ router noTenancyRequired: true, }) ) - .use(currentApp) .use(pro.licensing()) - .use(pro.activity()) + .use(currentApp) .use(auditLog) // error handling middleware diff --git a/packages/types/src/sdk/koa.ts b/packages/types/src/sdk/koa.ts index 5ab04a3e6f..8d419d5cf1 100644 --- a/packages/types/src/sdk/koa.ts +++ b/packages/types/src/sdk/koa.ts @@ -1,8 +1,10 @@ import { Context } from "koa" import { User } from "../documents" +import { License } from "../sdk" export interface ContextUser extends User { globalId?: string + license: License } export interface BBContext extends Context { diff --git a/packages/types/src/sdk/licensing/billing.ts b/packages/types/src/sdk/licensing/billing.ts new file mode 100644 index 0000000000..6743b9cb17 --- /dev/null +++ b/packages/types/src/sdk/licensing/billing.ts @@ -0,0 +1,20 @@ +import { PriceDuration } from "./plan" + +export interface CustomerBilling { + balance: number | null | undefined + currency: string | null | undefined +} + +export interface SubscriptionBilling { + amount: number + quantity: number + duration: PriceDuration + cancelAt: number | null | undefined + currentPeriodStart: number + currentPeriodEnd: number +} + +export interface Billing { + customer: CustomerBilling + subscription?: SubscriptionBilling +} diff --git a/packages/types/src/sdk/licensing/feature.ts b/packages/types/src/sdk/licensing/feature.ts new file mode 100644 index 0000000000..cbd1f4a50c --- /dev/null +++ b/packages/types/src/sdk/licensing/feature.ts @@ -0,0 +1,3 @@ +export enum Feature { + USER_GROUPS = "userGroups", +} diff --git a/packages/types/src/sdk/licensing/index.ts b/packages/types/src/sdk/licensing/index.ts index e6080073b7..8d15ba96fc 100644 --- a/packages/types/src/sdk/licensing/index.ts +++ b/packages/types/src/sdk/licensing/index.ts @@ -1 +1,5 @@ export * from "./license" +export * from "./plan" +export * from "./quota" +export * from "./feature" +export * from "./billing" diff --git a/packages/types/src/sdk/licensing/license.ts b/packages/types/src/sdk/licensing/license.ts index ed2e0a0245..d19a3a617d 100644 --- a/packages/types/src/sdk/licensing/license.ts +++ b/packages/types/src/sdk/licensing/license.ts @@ -1 +1,8 @@ -export interface License {} +import { AccountPlan, Quotas, Feature, Billing } from "." + +export interface License { + features: Feature[] + quotas: Quotas + plan: AccountPlan + billing?: Billing +} diff --git a/packages/types/src/sdk/licensing/plan.ts b/packages/types/src/sdk/licensing/plan.ts new file mode 100644 index 0000000000..6b226887b4 --- /dev/null +++ b/packages/types/src/sdk/licensing/plan.ts @@ -0,0 +1,25 @@ +export interface AccountPlan { + type: PlanType + price?: Price +} + +export enum PlanType { + FREE = "free", + PRO = "pro", + BUSINESS = "business", + ENTERPRISE = "enterprise", +} + +export enum PriceDuration { + MONTHLY = "monthly", + YEARLY = "yearly", +} + +export interface Price { + amount: number + amountMonthly: number + currency: string + duration: PriceDuration + priceId: string + dayPasses: number +} diff --git a/packages/types/src/sdk/licensing/quota.ts b/packages/types/src/sdk/licensing/quota.ts new file mode 100644 index 0000000000..578a5d98d0 --- /dev/null +++ b/packages/types/src/sdk/licensing/quota.ts @@ -0,0 +1,82 @@ +import { PlanType } from "." + +export enum QuotaUsageType { + STATIC = "static", + MONTHLY = "monthly", +} + +export enum QuotaType { + USAGE = "usage", + CONSTANT = "constant", +} + +export enum StaticQuotaName { + ROWS = "rows", + APPS = "apps", +} + +export enum MonthlyQuotaName { + QUERIES = "queries", + AUTOMATIONS = "automations", + DAY_PASSES = "dayPasses", +} + +export enum ConstantQuotaName { + QUERY_TIMEOUT_SECONDS = "queryTimeoutSeconds", + AUTOMATION_LOG_RETENTION_DAYS = "automationLogRetentionDays", +} + +export type QuotaName = StaticQuotaName | MonthlyQuotaName | ConstantQuotaName + +export const isStaticQuota = ( + quotaType: QuotaType, + usageType: QuotaUsageType, + name: QuotaName +): name is StaticQuotaName => { + return quotaType === QuotaType.USAGE && usageType === QuotaUsageType.STATIC +} + +export const isMonthlyQuota = ( + quotaType: QuotaType, + usageType: QuotaUsageType, + name: QuotaName +): name is MonthlyQuotaName => { + return quotaType === QuotaType.USAGE && usageType === QuotaUsageType.MONTHLY +} + +export const isConstantQuota = ( + quotaType: QuotaType, + name: QuotaName +): name is ConstantQuotaName => { + return quotaType === QuotaType.CONSTANT +} + +export type PlanQuotas = { + [PlanType.FREE]: Quotas + [PlanType.PRO]: Quotas + [PlanType.BUSINESS]: Quotas + [PlanType.ENTERPRISE]: Quotas +} + +export type Quotas = { + [QuotaType.USAGE]: { + [QuotaUsageType.MONTHLY]: { + [MonthlyQuotaName.QUERIES]: Quota + [MonthlyQuotaName.AUTOMATIONS]: Quota + [MonthlyQuotaName.DAY_PASSES]: Quota + } + [QuotaUsageType.STATIC]: { + [StaticQuotaName.ROWS]: Quota + [StaticQuotaName.APPS]: Quota + } + } + [QuotaType.CONSTANT]: { + [ConstantQuotaName.QUERY_TIMEOUT_SECONDS]: Quota + [ConstantQuotaName.AUTOMATION_LOG_RETENTION_DAYS]: Quota + } +} + +export interface Quota { + name: string + value: number +} diff --git a/packages/worker/src/api/controllers/global/self.js b/packages/worker/src/api/controllers/global/self.js index 28afa69fa0..3e073243dc 100644 --- a/packages/worker/src/api/controllers/global/self.js +++ b/packages/worker/src/api/controllers/global/self.js @@ -144,6 +144,7 @@ exports.updateSelf = async ctx => { } // remove the old password from the user before sending events + user._rev = response.rev delete user.password await events.user.updated(user) if (passwordChange) { diff --git a/packages/worker/src/api/index.ts b/packages/worker/src/api/index.ts index 5d809ba5b8..21fbf1d993 100644 --- a/packages/worker/src/api/index.ts +++ b/packages/worker/src/api/index.ts @@ -2,7 +2,7 @@ import Router from "@koa/router" const compress = require("koa-compress") const zlib = require("zlib") import { routes } from "./routes" -import { middleware as pro, quotas } from "@budibase/pro" +import { middleware as pro } from "@budibase/pro" import { errors, auth, middleware } from "@budibase/backend-core" import { APIError } from "@budibase/types" @@ -92,15 +92,10 @@ router }) ) .use("/health", ctx => (ctx.status = 200)) - .use( - auth.buildAuthMiddleware(PUBLIC_ENDPOINTS, { - checkDayPass: quotas.checkDayPass, - }) - ) + .use(auth.buildAuthMiddleware(PUBLIC_ENDPOINTS)) .use(auth.buildTenancyMiddleware(PUBLIC_ENDPOINTS, NO_TENANCY_ENDPOINTS)) .use(auth.buildCsrfMiddleware({ noCsrfPatterns: NO_CSRF_ENDPOINTS })) .use(pro.licensing()) - .use(pro.activity()) // for now no public access is allowed to worker (bar health check) .use((ctx, next) => { if (ctx.publicEndpoint) { diff --git a/packages/worker/src/api/routes/global/tests/self.spec.ts b/packages/worker/src/api/routes/global/tests/self.spec.ts index b3c91a9306..5640bab3ce 100644 --- a/packages/worker/src/api/routes/global/tests/self.spec.ts +++ b/packages/worker/src/api/routes/global/tests/self.spec.ts @@ -1,5 +1,5 @@ jest.mock("nodemailer") -import { TestConfiguration, API } from "../../../../tests" +import { TestConfiguration, API, mocks } from "../../../../tests" import { events } from "@budibase/backend-core" describe("/api/global/self", () => { @@ -26,6 +26,9 @@ describe("/api/global/self", () => { delete user.password const res = await api.self.updateSelf(user) + const dbUser = await config.getUser(user.email) + user._rev = dbUser._rev + user.dayPassRecordedAt = mocks.date.MOCK_DATE.toISOString() expect(res.body._id).toBe(user._id) expect(events.user.updated).toBeCalledTimes(1) expect(events.user.updated).toBeCalledWith(user) @@ -39,6 +42,9 @@ describe("/api/global/self", () => { user.password = "newPassword" const res = await api.self.updateSelf(user) + const dbUser = await config.getUser(user.email) + user._rev = dbUser._rev + user.dayPassRecordedAt = mocks.date.MOCK_DATE.toISOString() delete user.password expect(res.body._id).toBe(user._id) expect(events.user.updated).toBeCalledTimes(1) From 6e1a30bc60bdd42b21f5bac99a9e1027fef76610 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Wed, 7 Sep 2022 12:08:10 +0100 Subject: [PATCH 19/94] Error handling, wildcard feature flags --- .../backend-core/src/featureFlags/index.js | 24 ++++++++++++------- packages/worker/src/sdk/users/events.ts | 1 - 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/backend-core/src/featureFlags/index.js b/packages/backend-core/src/featureFlags/index.js index 103ac4df59..b328839fda 100644 --- a/packages/backend-core/src/featureFlags/index.js +++ b/packages/backend-core/src/featureFlags/index.js @@ -31,20 +31,26 @@ const TENANT_FEATURE_FLAGS = getFeatureFlags() exports.isEnabled = featureFlag => { const tenantId = tenancy.getTenantId() - - return ( - TENANT_FEATURE_FLAGS && - TENANT_FEATURE_FLAGS[tenantId] && - TENANT_FEATURE_FLAGS[tenantId].includes(featureFlag) - ) + const flags = exports.getTenantFeatureFlags(tenantId) + return flags.includes(featureFlag) } exports.getTenantFeatureFlags = tenantId => { - if (TENANT_FEATURE_FLAGS && TENANT_FEATURE_FLAGS[tenantId]) { - return TENANT_FEATURE_FLAGS[tenantId] + const flags = [] + + if (TENANT_FEATURE_FLAGS) { + const globalFlags = TENANT_FEATURE_FLAGS["*"] + const tenantFlags = TENANT_FEATURE_FLAGS[tenantId] + + if (globalFlags) { + flags.push(...globalFlags) + } + if (tenantFlags) { + flags.push(...tenantFlags) + } } - return [] + return flags } exports.FeatureFlag = { diff --git a/packages/worker/src/sdk/users/events.ts b/packages/worker/src/sdk/users/events.ts index 92413df173..0094c6fd84 100644 --- a/packages/worker/src/sdk/users/events.ts +++ b/packages/worker/src/sdk/users/events.ts @@ -83,7 +83,6 @@ export const handleSaveEvents = async ( } } else { await events.user.created(user) - await pro.createAccountUser(user) } if (isAddingBuilder(user, existingUser)) { From 096da509d974953e3dc3e32d074403e43544e330 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 7 Sep 2022 23:21:14 +0100 Subject: [PATCH 20/94] PR comments --- packages/backend-core/src/tenancy/tenancy.ts | 2 +- packages/cli/yarn.lock | 831 +++++++++--------- packages/worker/package.json | 3 +- .../src/api/routes/global/tests/users.spec.ts | 20 + packages/worker/src/sdk/users/users.ts | 11 +- 5 files changed, 437 insertions(+), 430 deletions(-) diff --git a/packages/backend-core/src/tenancy/tenancy.ts b/packages/backend-core/src/tenancy/tenancy.ts index d776a1d7e7..bd66772b52 100644 --- a/packages/backend-core/src/tenancy/tenancy.ts +++ b/packages/backend-core/src/tenancy/tenancy.ts @@ -1,4 +1,5 @@ import { doWithDB } from "../db" +import { queryPlatformView } from "../db/views" import { StaticDatabases, ViewName } from "../db/constants" import { baseGlobalDBName } from "./utils" import { @@ -8,7 +9,6 @@ import { getTenantIDFromAppID, } from "../context" import env from "../environment" -import { queryPlatformView } from "../db" const TENANT_DOC = StaticDatabases.PLATFORM_INFO.docs.tenants const PLATFORM_INFO_DB = StaticDatabases.PLATFORM_INFO.name diff --git a/packages/cli/yarn.lock b/packages/cli/yarn.lock index a7559a48da..39cda638f4 100644 --- a/packages/cli/yarn.lock +++ b/packages/cli/yarn.lock @@ -4,27 +4,22 @@ "@babel/code-frame@7.12.11": version "7.12.11" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - -"@babel/helper-validator-identifier@^7.16.7": +"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== "@babel/highlight@^7.10.4": - version "7.16.0" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" @@ -34,9 +29,9 @@ integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== "@babel/runtime@^7.15.4": - version "7.16.3" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" @@ -89,7 +84,7 @@ "@eslint/eslintrc@^0.4.3": version "0.4.3" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" @@ -116,7 +111,7 @@ "@humanwhocodes/config-array@^0.5.0": version "0.5.0" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== dependencies: "@humanwhocodes/object-schema" "^1.2.0" @@ -125,7 +120,7 @@ "@humanwhocodes/object-schema@^1.2.0": version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@mapbox/node-pre-gyp@^1.0.0": @@ -145,7 +140,7 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -153,12 +148,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -199,14 +194,14 @@ abbrev@1: abort-controller@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" abstract-leveldown@^6.2.1: version "6.3.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== dependencies: buffer "^5.5.0" @@ -217,7 +212,7 @@ abstract-leveldown@^6.2.1: abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: version "6.2.3" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== dependencies: buffer "^5.5.0" @@ -228,17 +223,17 @@ abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: acorn-jsx@^5.3.1: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^7.4.0: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== agent-base@6: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" @@ -254,9 +249,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.1: - version "8.8.1" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.8.1.tgz" - integrity sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg== + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -264,44 +259,44 @@ ajv@^8.0.1: uri-js "^4.2.2" ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.2.1: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" aproba@^1.0.3: version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== "aproba@^1.0.3 || ^2.0.0": @@ -319,7 +314,7 @@ are-we-there-yet@^2.0.0: are-we-there-yet@~1.1.2: version "1.1.7" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== dependencies: delegates "^1.0.0" @@ -327,14 +322,14 @@ are-we-there-yet@~1.1.2: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argsarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb" integrity sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg== array-back@^3.0.1, array-back@^3.1.0: @@ -354,13 +349,13 @@ array-back@^6.2.0, array-back@^6.2.2: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" - integrity sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0= + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.2.tgz#5fcc373920775723cfd64d65c64bef53bf9eba6d" + integrity sha512-GVYjmpL05al4dNlKJm53mKE4w9OOLiuVHWorsIA3YVz+Hu0hcn6PtE3Ydl0EqU7v+7ABC4mjjWsnLUxbpno+CA== asn1@~0.2.3: version "0.2.6" @@ -376,7 +371,7 @@ assert-plus@1.0.0, assert-plus@^1.0.0: astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@~2.1.4: @@ -393,7 +388,7 @@ asynckit@^0.4.0: at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== aws-sdk@2.1030.0: @@ -422,9 +417,9 @@ aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axios-retry@^3.1.9: - version "3.2.4" - resolved "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.4.tgz" - integrity sha512-Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ== + version "3.3.1" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.3.1.tgz#47624646138aedefbad2ac32f226f4ee94b6dcab" + integrity sha512-RohAUQTDxBSWLFEnoIG/6bvmy8l3TfpkclgStjl5MDCMBDgapAWCmr1r/9harQfWC8bzLC8job6UcL1A1Yc+/Q== dependencies: "@babel/runtime" "^7.15.4" is-retry-allowed "^2.2.0" @@ -445,19 +440,19 @@ axios@0.24.0: axios@^0.21.1: version "0.21.4" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: follow-redirects "^1.14.0" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64url@3.x.x, base64url@^3.0.1: @@ -482,7 +477,7 @@ bcrypt@5.0.1: bl@^4.0.3: version "4.1.0" - resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -496,15 +491,15 @@ bluebird@^3.7.2: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1: +braces@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" @@ -521,7 +516,7 @@ buffer-from@1.1.1: buffer-from@1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@4.9.2: @@ -535,7 +530,7 @@ buffer@4.9.2: buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -543,7 +538,7 @@ buffer@^5.5.0, buffer@^5.6.0: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== caseless@~0.12.0: @@ -561,7 +556,7 @@ chalk@4.1.0: chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -570,7 +565,7 @@ chalk@^2.0.0, chalk@^2.4.2: chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -578,27 +573,27 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: chardet@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== charenc@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== chownr@^1.1.1: version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" @@ -612,12 +607,12 @@ cli-progress@3.11.2: cli-width@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -626,7 +621,7 @@ cliui@^7.0.2: clone-buffer@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== cluster-key-slot@^1.1.0: @@ -636,31 +631,31 @@ cluster-key-slot@^1.1.0: code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-support@^1.1.2: @@ -702,13 +697,13 @@ commander@7.1.0: component-type@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz" - integrity sha1-ikeQFwAjjk/DIml3EjAibyS0Fak= + resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.2.1.tgz#8a47901700238e4fc32269771230226f24b415a9" + integrity sha512-Kgy+2+Uwr75vAi6ChWXgHuLvd+QLD7ssgpaRq2zCvt80ptvAfMc/hijcJxXkBa2wMlEZcJvC2H8Ubo+A9ATHIg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" @@ -735,12 +730,12 @@ core-util-is@1.0.2: core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -749,8 +744,8 @@ cross-spawn@^7.0.2: crypt@0.0.2: version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== current-module-paths@^1.1.0: version "1.1.0" @@ -764,14 +759,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug@4, debug@^4.0.1, debug@^4.1.1: - version "4.3.2" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^4.3.1: +debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -780,24 +768,24 @@ debug@^4.3.1: decompress-response@^4.2.0: version "4.2.1" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== dependencies: mimic-response "^2.0.0" deep-extend@^0.6.0, deep-extend@~0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deferred-leveldown@~5.3.0: version "5.3.0" - resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== dependencies: abstract-leveldown "~6.2.1" @@ -810,8 +798,8 @@ delayed-stream@~1.0.0: delegates@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^1.1.0: version "1.5.1" @@ -820,8 +808,8 @@ denque@^1.1.0: detect-libc@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== detect-libc@^2.0.0: version "2.0.1" @@ -830,7 +818,7 @@ detect-libc@^2.0.0: dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" @@ -842,7 +830,7 @@ docker-compose@0.23.6: doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" @@ -854,7 +842,7 @@ dotenv@16.0.1: double-ended-queue@2.1.0-0: version "2.1.0-0" - resolved "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz" + resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" integrity sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ== ecc-jsbn@~0.1.1: @@ -881,12 +869,12 @@ emitter-listener@1.1.2: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encoding-down@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== dependencies: abstract-leveldown "^6.2.1" @@ -896,50 +884,50 @@ encoding-down@^6.3.0: end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" end-stream@~0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/end-stream/-/end-stream-0.1.0.tgz#32003f3f438a2b0143168137f8fa6e9866c81ed5" integrity sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA== dependencies: write-stream "~0.4.3" enquirer@^2.3.5: version "2.3.6" - resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" errno@~0.1.1: version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== dependencies: esprima "^4.0.1" @@ -951,7 +939,7 @@ escodegen@^2.0.0: eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -959,24 +947,24 @@ eslint-scope@^5.1.1: eslint-utils@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.20.0: version "7.32.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" @@ -1022,7 +1010,7 @@ eslint@^7.20.0: espree@^7.3.0, espree@^7.3.1: version "7.3.1" - resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: acorn "^7.4.0" @@ -1031,41 +1019,41 @@ espree@^7.3.0, espree@^7.3.1: esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + 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.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== events@1.1.1: @@ -1075,7 +1063,7 @@ events@1.1.1: expand-template@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== extend@~3.0.2: @@ -1085,7 +1073,7 @@ extend@~3.0.2: external-editor@^3.0.3: version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" @@ -1104,7 +1092,7 @@ extsprintf@^1.2.0: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.2.0: @@ -1125,17 +1113,17 @@ fast-glob@^3.2.9: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -1149,21 +1137,21 @@ fetch-cookie@0.10.1: fetch-cookie@0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.11.0.tgz#e046d2abadd0ded5804ce7e2cae06d4331c15407" integrity sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA== dependencies: tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0" figures@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" @@ -1178,7 +1166,7 @@ file-set@^5.1.2: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" @@ -1192,16 +1180,16 @@ find-replace@^3.0.0: flat-cache@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: flatted "^3.1.0" rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== follow-redirects@^1.14.0, follow-redirects@^1.14.4: version "1.15.1" @@ -1224,20 +1212,20 @@ form-data@~2.3.2: from2@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -1247,25 +1235,25 @@ fs-extra@^9.1.0: fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== gauge@^3.0.0: version "3.0.2" @@ -1284,8 +1272,8 @@ gauge@^3.0.0: gauge@~2.7.3: version "2.7.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -1298,7 +1286,7 @@ gauge@~2.7.3: get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== getpass@^0.1.1: @@ -1310,17 +1298,17 @@ getpass@^0.1.1: github-from-package@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.0.5, glob@^7.2.0: +glob@^7.0.5, glob@^7.1.3, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -1332,18 +1320,6 @@ glob@^7.0.5, glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-dirs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" @@ -1352,9 +1328,9 @@ global-dirs@^3.0.0: ini "2.0.0" globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" @@ -1397,9 +1373,9 @@ googleapis@^16.0.0: string-template "~1.0.0" graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.8" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== gtoken@^1.2.1: version "1.2.3" @@ -1426,12 +1402,12 @@ har-validator@~5.1.3: has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-unicode@^2.0.0, has-unicode@^2.0.1: @@ -1441,7 +1417,7 @@ has-unicode@^2.0.0, has-unicode@^2.0.1: has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" @@ -1456,16 +1432,16 @@ http-signature@~1.2.0: sshpk "^1.7.0" https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" @@ -1477,12 +1453,12 @@ ieee754@1.1.13: ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^4.0.6: version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.2.0: @@ -1492,17 +1468,17 @@ ignore@^5.2.0: immediate@3.3.0, immediate@^3.2.3: version "3.3.0" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -1510,20 +1486,20 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@2.0.0: @@ -1533,7 +1509,7 @@ ini@2.0.0: ini@~1.3.0: version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@8.0.0: @@ -1557,7 +1533,7 @@ inquirer@8.0.0: into-stream@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA== dependencies: from2 "^2.3.0" @@ -1582,48 +1558,55 @@ ioredis@4.28.0: is-buffer@~1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-core-module@2.9.0, is-core-module@^2.9.0: +is-core-module@2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-retry-allowed@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d" integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg== is-typedarray@~1.0.0: @@ -1633,18 +1616,18 @@ is-typedarray@~1.0.0: isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isstream@~0.1.2: version "0.1.2" @@ -1669,17 +1652,17 @@ joi@17.6.0: join-component@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz" - integrity sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU= + resolved "https://registry.yarnpkg.com/join-component/-/join-component-1.1.0.tgz#b8417b750661a392bee2c2537c68b2a9d4977cd5" + integrity sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ== js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -1692,12 +1675,12 @@ jsbn@~0.1.0: json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-schema@0.4.0: @@ -1707,17 +1690,17 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -1776,26 +1759,26 @@ koa-passport@4.1.4: level-codec@9.0.2, level-codec@^9.0.0: version "9.0.2" - resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== dependencies: buffer "^5.6.0" level-concat-iterator@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== level-errors@^2.0.0, level-errors@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== dependencies: errno "~0.1.1" level-iterator-stream@~4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== dependencies: inherits "^2.0.4" @@ -1804,7 +1787,7 @@ level-iterator-stream@~4.0.0: level-js@^5.0.0: version "5.0.2" - resolved "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55" integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg== dependencies: abstract-leveldown "~6.2.3" @@ -1814,7 +1797,7 @@ level-js@^5.0.0: level-packager@^5.1.0: version "5.1.1" - resolved "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== dependencies: encoding-down "^6.3.0" @@ -1822,21 +1805,21 @@ level-packager@^5.1.0: level-supports@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== dependencies: xtend "^4.0.2" level-write-stream@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/level-write-stream/-/level-write-stream-1.0.0.tgz#3f7fbb679a55137c0feb303dee766e12ee13c1dc" integrity sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw== dependencies: end-stream "~0.1.0" level@6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/level/-/level-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6" integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw== dependencies: level-js "^5.0.0" @@ -1845,7 +1828,7 @@ level@6.0.1: leveldown@5.6.0, leveldown@^5.4.0: version "5.6.0" - resolved "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== dependencies: abstract-leveldown "~6.2.1" @@ -1854,7 +1837,7 @@ leveldown@5.6.0, leveldown@^5.4.0: levelup@4.4.0, levelup@^4.3.2: version "4.4.0" - resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== dependencies: deferred-leveldown "~5.3.0" @@ -1865,7 +1848,7 @@ levelup@4.4.0, levelup@^4.3.2: levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -1873,15 +1856,15 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lie@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw== dependencies: immediate "~3.0.5" @@ -1945,7 +1928,7 @@ lodash.isstring@^4.0.1: lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.noop@^3.0.1: @@ -1960,13 +1943,13 @@ lodash.once@^4.0.0: lodash.pick@^4.0.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.truncate@^4.4.2: version "4.4.2" - resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.21: version "4.17.21" @@ -1980,14 +1963,14 @@ lookpath@1.1.0: lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" ltgt@2.2.1, ltgt@^2.1.2: version "2.2.1" - resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== make-dir@^3.1.0: @@ -1999,7 +1982,7 @@ make-dir@^3.1.0: md5@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== dependencies: charenc "0.0.2" @@ -2012,12 +1995,12 @@ merge2@^1.3.0, merge2@^1.4.1: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" mime-db@1.52.0: version "1.52.0" @@ -2038,28 +2021,21 @@ mime@^1.4.1: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== -minimatch@^3.0.3, minimatch@^3.1.1: +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" @@ -2067,14 +2043,14 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: minipass@^3.0.0: version "3.3.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -2082,27 +2058,27 @@ minizlib@^2.1.1: mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" - resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multistream@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== dependencies: once "^1.4.0" @@ -2110,27 +2086,27 @@ multistream@^4.1.0: mute-stream@0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== napi-build-utils@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== napi-macros@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== ndjson@^1.4.3: version "1.5.0" - resolved "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" integrity sha512-hUPLuaziboGjNF7wHngkgVc0FOclR8dDk/HfEvTtDr/iUrqBWiRcRSTK3/nLOqKH33th714BrMmTPtObI9gZxQ== dependencies: json-stringify-safe "^5.0.1" @@ -2152,7 +2128,7 @@ node-addon-api@^3.1.0: node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.6, node-fetch@^2.6.7: version "2.6.7" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" @@ -2169,7 +2145,7 @@ node-forge@^0.7.1: node-gyp-build@~4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== noms@0.0.0: @@ -2189,7 +2165,7 @@ nopt@^5.0.0: npmlog@^4.0.1: version "4.1.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" @@ -2209,8 +2185,8 @@ npmlog@^5.0.1: number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== oauth-sign@~0.9.0: version "0.9.0" @@ -2229,21 +2205,21 @@ object-assign@^4.1.0, object-assign@^4.1.1: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" optionator@^0.8.1: version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -2255,7 +2231,7 @@ optionator@^0.8.1: optionator@^0.9.1: version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: deep-is "^0.1.3" @@ -2267,12 +2243,12 @@ optionator@^0.9.1: os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-is-promise@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== p-map@^2.1.0: @@ -2282,7 +2258,7 @@ p-map@^2.1.0: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" @@ -2372,12 +2348,12 @@ passport@^0.4.0: path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: @@ -2387,7 +2363,7 @@ path-parse@^1.0.7: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pause@0.0.1: @@ -2400,10 +2376,10 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pkg-fetch@3.4.1: version "3.4.1" @@ -2441,7 +2417,7 @@ pkg@5.7.0: posthog-node@1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/posthog-node/-/posthog-node-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/posthog-node/-/posthog-node-1.0.7.tgz#a7a9525eebff23312117e57cff3ddac82afb2262" integrity sha512-KTCwyU+PU1eAQtjy5ZSJ47mrxv2d/mMkxo+vvV5c+YqfE4mBAY1UPEPMv1nElb5Vq0UnxvyQXaUnOn8d8Xr6Eg== dependencies: axios "^0.21.1" @@ -2469,7 +2445,7 @@ posthog-node@1.3.0: pouch-stream@^0.4.0: version "0.4.1" - resolved "https://registry.npmjs.org/pouch-stream/-/pouch-stream-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/pouch-stream/-/pouch-stream-0.4.1.tgz#0c6d8475c9307677627991a2f079b301c3b89bdd" integrity sha512-RAWFhsGDbG4xZQpvrrQlhrITVUNVCKmglfe5WWDnJaDf1u9DMaRLHv//m65tBZevuo4QTGjwcyggwYxd7AGLsg== dependencies: inherits "^2.0.1" @@ -2555,7 +2531,7 @@ pouchdb-md5@7.2.2: pouchdb-promise@^6.0.4: version "6.4.3" - resolved "https://registry.npmjs.org/pouchdb-promise/-/pouchdb-promise-6.4.3.tgz" + resolved "https://registry.yarnpkg.com/pouchdb-promise/-/pouchdb-promise-6.4.3.tgz#74516f4acf74957b54debd0fb2c0e5b5a68ca7b3" integrity sha512-ruJaSFXwzsxRHQfwNHjQfsj58LBOY1RzGzde4PM5CWINZwFjCQAhZwfMrch2o/0oZT6d+Xtt0HTWhq35p3b0qw== dependencies: lie "3.1.1" @@ -2642,13 +2618,13 @@ prebuild-install@6.1.4: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== printj@^1.3.0: version "1.3.1" @@ -2657,32 +2633,27 @@ printj@^1.3.0: process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.0, progress@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prr@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -psl@^1.1.28: +psl@^1.1.28, psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -2695,7 +2666,7 @@ punycode@1.3.2: punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@~6.5.2: @@ -2708,9 +2679,14 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randomstring@1.1.5: @@ -2722,7 +2698,7 @@ randomstring@1.1.5: rc@^1.2.7: version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -2732,7 +2708,7 @@ rc@^1.2.7: readable-stream@1.1.14, readable-stream@^1.0.27-1: version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" @@ -2742,7 +2718,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1: "readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -2751,7 +2727,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1: readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@~2.3.6: version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -2764,7 +2740,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, readable readable-stream@~0.0.2: version "0.0.4" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-0.0.4.tgz#f32d76e3fb863344a548d79923007173665b3b8d" integrity sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw== readable-stream@~1.0.31: @@ -2808,17 +2784,17 @@ reduce-flatten@^2.0.0: regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regexpp@^3.1.0: version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== remove-trailing-slash@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz#be2285a59f39c74d1bce4f825950061915e3780d" integrity sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA== renamer@^4.0.0: @@ -2867,17 +2843,22 @@ request@^2.72.0, request@^2.74.0, request@^2.88.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.22.0: @@ -2891,7 +2872,7 @@ resolve@^1.22.0: restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -2899,7 +2880,7 @@ restore-cursor@^3.1.0: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.2: @@ -2911,12 +2892,12 @@ rimraf@^3.0.2: run-async@^2.4.0: version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" @@ -2930,12 +2911,12 @@ rxjs@^6.6.6: safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: @@ -2958,7 +2939,7 @@ sax@>=0.1.1, sax@>=0.6.0: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -semver@7.3.7: +semver@7.3.7, semver@^7.2.1, semver@^7.3.5: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -2975,13 +2956,6 @@ semver@^6.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -2989,14 +2963,14 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shimmer@^1.2.0: @@ -3005,18 +2979,18 @@ shimmer@^1.2.0: integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.5" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^3.0.3: version "3.1.1" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== dependencies: decompress-response "^4.2.0" @@ -3025,12 +2999,12 @@ simple-get@^3.0.3: slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -3039,7 +3013,7 @@ slice-ansi@^4.0.0: source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spark-md5@3.0.1: @@ -3049,20 +3023,20 @@ spark-md5@3.0.1: spark-md5@3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== split2@^2.1.0: version "2.2.0" - resolved "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== dependencies: through2 "^2.0.2" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: version "1.17.0" @@ -3091,8 +3065,8 @@ step@0.0.x: stream-meter@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz" - integrity sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0= + resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d" + integrity sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ== dependencies: readable-stream "^2.1.4" @@ -3108,8 +3082,8 @@ string-template@~1.0.0: string-width@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -3117,7 +3091,7 @@ string-width@^1.0.1: "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -3126,57 +3100,57 @@ string-width@^1.0.1: string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~0.10.x: version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" @@ -3197,9 +3171,9 @@ table-layout@^1.0.2: wordwrapjs "^4.0.0" table@^6.0.9: - version "6.7.3" - resolved "https://registry.npmjs.org/table/-/table-6.7.3.tgz" - integrity sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw== + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -3219,7 +3193,7 @@ tar-fs@2.1.1, tar-fs@^2.0.0, tar-fs@^2.1.1: tar-stream@^2.1.4: version "2.2.0" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" @@ -3242,12 +3216,12 @@ tar@6.1.11, tar@^6.1.11: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through2@3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== dependencies: inherits "^2.0.4" @@ -3255,7 +3229,7 @@ through2@3.0.2: through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" @@ -3263,36 +3237,37 @@ through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: through@^2.3.6: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tmp@^0.0.33: version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" "tough-cookie@^2.3.3 || ^3.0.1 || ^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== dependencies: psl "^1.1.33" punycode "^2.1.1" - universalify "^0.1.2" + universalify "^0.2.0" + url-parse "^1.5.3" tough-cookie@~2.5.0: version "2.5.0" @@ -3304,8 +3279,8 @@ tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== tslib@^1.9.0: version "1.14.1" @@ -3314,8 +3289,8 @@ tslib@^1.9.0: tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" @@ -3326,26 +3301,26 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== typical@^4.0.0: @@ -3368,14 +3343,14 @@ uid2@0.0.x: resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== untildify@^4.0.0: @@ -3385,11 +3360,19 @@ untildify@^4.0.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" @@ -3400,8 +3383,8 @@ url@0.10.3: util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.x.x: version "1.0.1" @@ -3420,7 +3403,7 @@ uuid@8.1.0: uuid@8.3.2, uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^3.3.2: @@ -3430,7 +3413,7 @@ uuid@^3.3.2: v8-compile-cache@^2.0.3: version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== verror@1.10.0: @@ -3444,7 +3427,7 @@ verror@1.10.0: vuvuzela@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" integrity sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ== webfinger@^0.4.2: @@ -3457,20 +3440,20 @@ webfinger@^0.4.2: webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" @@ -3484,7 +3467,7 @@ wide-align@^1.1.0, wide-align@^1.1.2: word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== wordwrapjs@^4.0.0: @@ -3497,7 +3480,7 @@ wordwrapjs@^4.0.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -3506,12 +3489,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-stream@~0.4.3: version "0.4.3" - resolved "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz" + resolved "https://registry.yarnpkg.com/write-stream/-/write-stream-0.4.3.tgz#83cc8c0347d0af6057a93862b4e3ae01de5c81c1" integrity sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A== dependencies: readable-stream "~0.0.2" @@ -3538,27 +3521,27 @@ xmlbuilder@~9.0.1: xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs@^16.1.0, yargs@^16.2.0: version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -3572,4 +3555,4 @@ yargs@^16.1.0, yargs@^16.2.0: zlib@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0" - integrity sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w== + integrity sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w== \ No newline at end of file diff --git a/packages/worker/package.json b/packages/worker/package.json index 0ade9a8363..01a0347249 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -23,6 +23,7 @@ "dev:stack:init": "node ./scripts/dev/manage.js init", "dev:builder": "npm run dev:stack:init && nodemon", "test": "jest --runInBand", + "test:watch": "jest --watch", "env:multi:enable": "node scripts/multiTenancy.js enable", "env:multi:disable": "node scripts/multiTenancy.js disable", "env:selfhost:enable": "node scripts/selfhost.js enable", @@ -104,4 +105,4 @@ ] }, "gitHead": "d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc" -} +} \ No newline at end of file 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 7762c2e7e2..170320dc7e 100644 --- a/packages/worker/src/api/routes/global/tests/users.spec.ts +++ b/packages/worker/src/api/routes/global/tests/users.spec.ts @@ -242,6 +242,26 @@ describe("/api/global/users", () => { expect(response.body.message).toBe(`Unavailable`) expect(events.user.created).toBeCalledTimes(0) }) + + it("should not be able to create a user with the same email and different casing", async () => { + const user = structures.users.user() + await api.users.saveUser(user) + + user.email = user.email.toUpperCase() + await api.users.saveUser(user) + + expect(events.user.created).toBeCalledTimes(1) + }) + + it("should not be able to bulk create a user with the same email and different casing", async () => { + const user = structures.users.user() + await api.users.saveUser(user) + + user.email = user.email.toUpperCase() + await api.users.bulkCreateUsers([user]) + + expect(events.user.created).toBeCalledTimes(1) + }) }) describe("update", () => { diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index 42cc0faa00..be3f565d42 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -267,8 +267,9 @@ export const addTenant = async ( } const getExistingTenantUsers = async (emails: string[]): Promise => { + const lcEmails = emails.map(email => email.toLowerCase()) return dbUtils.queryGlobalView(ViewName.USER_BY_EMAIL, { - keys: emails, + keys: lcEmails, include_docs: true, arrayResponse: true, }) @@ -277,8 +278,9 @@ const getExistingTenantUsers = async (emails: string[]): Promise => { const getExistingPlatformUsers = async ( emails: string[] ): Promise => { + const lcEmails = emails.map(email => email.toLowerCase()) return dbUtils.queryPlatformView(ViewName.PLATFORM_USERS_LOWERCASE, { - keys: emails.map(email => email.toLowerCase()), + keys: lcEmails, include_docs: true, arrayResponse: true, }) @@ -287,8 +289,9 @@ const getExistingPlatformUsers = async ( const getExistingAccounts = async ( emails: string[] ): Promise => { + const lcEmails = emails.map(email => email.toLowerCase()) return dbUtils.queryPlatformView(ViewName.ACCOUNT_BY_EMAIL, { - keys: emails, + keys: lcEmails, include_docs: true, arrayResponse: true, }) @@ -333,7 +336,7 @@ export const bulkCreate = async ( for (const newUser of newUsersRequested) { if ( newUsers.find( - (x: any) => x.email.toLowerCase() === newUser.email.toLowerCase() + (x: User) => x.email.toLowerCase() === newUser.email.toLowerCase() ) || existingEmails.includes(newUser.email.toLowerCase()) ) { From 010767bcfb071ec8b63f680690998b321d6cc2f0 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 7 Sep 2022 23:27:20 +0100 Subject: [PATCH 21/94] lowercase response emails --- packages/worker/src/sdk/users/users.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index be3f565d42..c1e492fb6a 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -316,7 +316,7 @@ const searchExistingEmails = async (emails: string[]) => { const existingAccounts = await getExistingAccounts(emails) matchedEmails.push(...existingAccounts.map(account => account.email)) - return [...new Set(matchedEmails)] + return [...new Set(matchedEmails.map(email => email.toLowerCase()))] } export const bulkCreate = async ( From ae2f199807c0faeef462e4fa1bc964118c9511c3 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Sun, 11 Sep 2022 20:25:51 +0100 Subject: [PATCH 22/94] Update InlineAlert with additional spacing around button --- packages/bbui/src/InlineAlert/InlineAlert.svelte | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/bbui/src/InlineAlert/InlineAlert.svelte b/packages/bbui/src/InlineAlert/InlineAlert.svelte index 25e14b7caf..b99399bf8b 100644 --- a/packages/bbui/src/InlineAlert/InlineAlert.svelte +++ b/packages/bbui/src/InlineAlert/InlineAlert.svelte @@ -39,13 +39,16 @@
{splitMsg}
{/each} {#if onConfirm} - From 8750d9fbbd91d107fb3c3499d854c44bac28c1f5 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Mon, 12 Sep 2022 09:20:28 +0100 Subject: [PATCH 24/94] Move date range picker into data --- .../[componentId]/new/_components/componentStructure.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/new/_components/componentStructure.json b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/new/_components/componentStructure.json index acd28c6a41..671637f381 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/new/_components/componentStructure.json +++ b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/new/_components/componentStructure.json @@ -23,7 +23,8 @@ "dataprovider", "repeater", "table", - "dynamicfilter" + "dynamicfilter", + "daterangepicker" ] }, { @@ -60,7 +61,6 @@ "booleanfield", "longformfield", "attachmentfield", - "daterangepicker", "jsonfield", "relationshipfield", "datetimefield", @@ -80,5 +80,4 @@ "donut" ] } -] - +] \ No newline at end of file From 5523b638329a0515afb7d9f185dc82441fff4e44 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Mon, 12 Sep 2022 10:43:26 +0100 Subject: [PATCH 25/94] Add buttonText to InlineAlert, export TooltipWrapper, update Account type with license key activate time, convert error package to TS --- packages/backend-core/src/environment.ts | 2 +- packages/backend-core/src/errors/base.js | 11 ----- packages/backend-core/src/errors/base.ts | 10 +++++ packages/backend-core/src/errors/generic.js | 11 ----- packages/backend-core/src/errors/generic.ts | 7 +++ packages/backend-core/src/errors/http.js | 12 ------ packages/backend-core/src/errors/http.ts | 15 +++++++ .../src/errors/{index.js => index.ts} | 17 +++++--- packages/backend-core/src/errors/licensing.js | 43 ------------------- packages/backend-core/src/errors/licensing.ts | 39 +++++++++++++++++ .../builder/portal/settings/upgrade.svelte | 12 ++++-- .../types/src/documents/account/account.ts | 1 + 12 files changed, 91 insertions(+), 89 deletions(-) delete mode 100644 packages/backend-core/src/errors/base.js create mode 100644 packages/backend-core/src/errors/base.ts delete mode 100644 packages/backend-core/src/errors/generic.js create mode 100644 packages/backend-core/src/errors/generic.ts delete mode 100644 packages/backend-core/src/errors/http.js create mode 100644 packages/backend-core/src/errors/http.ts rename packages/backend-core/src/errors/{index.js => index.ts} (65%) delete mode 100644 packages/backend-core/src/errors/licensing.js create mode 100644 packages/backend-core/src/errors/licensing.ts diff --git a/packages/backend-core/src/environment.ts b/packages/backend-core/src/environment.ts index 0348d921ab..0588ece793 100644 --- a/packages/backend-core/src/environment.ts +++ b/packages/backend-core/src/environment.ts @@ -36,7 +36,7 @@ const env = { MULTI_TENANCY: process.env.MULTI_TENANCY, ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL || "https://account.budibase.app", - ACCOUNT_PORTAL_API_KEY: process.env.ACCOUNT_PORTAL_API_KEY, + ACCOUNT_PORTAL_API_KEY: process.env.ACCOUNT_PORTAL_API_KEY || "", DISABLE_ACCOUNT_PORTAL: process.env.DISABLE_ACCOUNT_PORTAL, SELF_HOSTED: !!parseInt(process.env.SELF_HOSTED || ""), COOKIE_DOMAIN: process.env.COOKIE_DOMAIN, diff --git a/packages/backend-core/src/errors/base.js b/packages/backend-core/src/errors/base.js deleted file mode 100644 index 7cb0c0fc23..0000000000 --- a/packages/backend-core/src/errors/base.js +++ /dev/null @@ -1,11 +0,0 @@ -class BudibaseError extends Error { - constructor(message, code, type) { - super(message) - this.code = code - this.type = type - } -} - -module.exports = { - BudibaseError, -} diff --git a/packages/backend-core/src/errors/base.ts b/packages/backend-core/src/errors/base.ts new file mode 100644 index 0000000000..801dcf168d --- /dev/null +++ b/packages/backend-core/src/errors/base.ts @@ -0,0 +1,10 @@ +export class BudibaseError extends Error { + code: string + type: string + + constructor(message: string, code: string, type: string) { + super(message) + this.code = code + this.type = type + } +} diff --git a/packages/backend-core/src/errors/generic.js b/packages/backend-core/src/errors/generic.js deleted file mode 100644 index 5c7661f035..0000000000 --- a/packages/backend-core/src/errors/generic.js +++ /dev/null @@ -1,11 +0,0 @@ -const { BudibaseError } = require("./base") - -class GenericError extends BudibaseError { - constructor(message, code, type) { - super(message, code, type ? type : "generic") - } -} - -module.exports = { - GenericError, -} diff --git a/packages/backend-core/src/errors/generic.ts b/packages/backend-core/src/errors/generic.ts new file mode 100644 index 0000000000..71b3352438 --- /dev/null +++ b/packages/backend-core/src/errors/generic.ts @@ -0,0 +1,7 @@ +import { BudibaseError } from "./base" + +export class GenericError extends BudibaseError { + constructor(message: string, code: string, type: string) { + super(message, code, type ? type : "generic") + } +} diff --git a/packages/backend-core/src/errors/http.js b/packages/backend-core/src/errors/http.js deleted file mode 100644 index 8e7cab4638..0000000000 --- a/packages/backend-core/src/errors/http.js +++ /dev/null @@ -1,12 +0,0 @@ -const { GenericError } = require("./generic") - -class HTTPError extends GenericError { - constructor(message, httpStatus, code = "http", type = "generic") { - super(message, code, type) - this.status = httpStatus - } -} - -module.exports = { - HTTPError, -} diff --git a/packages/backend-core/src/errors/http.ts b/packages/backend-core/src/errors/http.ts new file mode 100644 index 0000000000..182e009f58 --- /dev/null +++ b/packages/backend-core/src/errors/http.ts @@ -0,0 +1,15 @@ +import { GenericError } from "./generic" + +export class HTTPError extends GenericError { + status: number + + constructor( + message: string, + httpStatus: number, + code = "http", + type = "generic" + ) { + super(message, code, type) + this.status = httpStatus + } +} diff --git a/packages/backend-core/src/errors/index.js b/packages/backend-core/src/errors/index.ts similarity index 65% rename from packages/backend-core/src/errors/index.js rename to packages/backend-core/src/errors/index.ts index 31ffd739a0..be6657093d 100644 --- a/packages/backend-core/src/errors/index.js +++ b/packages/backend-core/src/errors/index.ts @@ -1,5 +1,6 @@ -const http = require("./http") -const licensing = require("./licensing") +import { HTTPError } from "./http" +import { UsageLimitError, FeatureDisabledError } from "./licensing" +import * as licensing from "./licensing" const codes = { ...licensing.codes, @@ -11,7 +12,7 @@ const context = { ...licensing.context, } -const getPublicError = err => { +const getPublicError = (err: any) => { let error if (err.code || err.type) { // add generic error information @@ -32,13 +33,15 @@ const getPublicError = err => { return error } -module.exports = { +const pkg = { codes, types, errors: { - UsageLimitError: licensing.UsageLimitError, - FeatureDisabledError: licensing.FeatureDisabledError, - HTTPError: http.HTTPError, + UsageLimitError, + FeatureDisabledError, + HTTPError, }, getPublicError, } + +export = pkg diff --git a/packages/backend-core/src/errors/licensing.js b/packages/backend-core/src/errors/licensing.js deleted file mode 100644 index 85d207ac35..0000000000 --- a/packages/backend-core/src/errors/licensing.js +++ /dev/null @@ -1,43 +0,0 @@ -const { HTTPError } = require("./http") - -const type = "license_error" - -const codes = { - USAGE_LIMIT_EXCEEDED: "usage_limit_exceeded", - FEATURE_DISABLED: "feature_disabled", -} - -const context = { - [codes.USAGE_LIMIT_EXCEEDED]: err => { - return { - limitName: err.limitName, - } - }, - [codes.FEATURE_DISABLED]: err => { - return { - featureName: err.featureName, - } - }, -} - -class UsageLimitError extends HTTPError { - constructor(message, limitName) { - super(message, 400, codes.USAGE_LIMIT_EXCEEDED, type) - this.limitName = limitName - } -} - -class FeatureDisabledError extends HTTPError { - constructor(message, featureName) { - super(message, 400, codes.FEATURE_DISABLED, type) - this.featureName = featureName - } -} - -module.exports = { - type, - codes, - context, - UsageLimitError, - FeatureDisabledError, -} diff --git a/packages/backend-core/src/errors/licensing.ts b/packages/backend-core/src/errors/licensing.ts new file mode 100644 index 0000000000..7ffcefa167 --- /dev/null +++ b/packages/backend-core/src/errors/licensing.ts @@ -0,0 +1,39 @@ +import { HTTPError } from "./http" + +export const type = "license_error" + +export const codes = { + USAGE_LIMIT_EXCEEDED: "usage_limit_exceeded", + FEATURE_DISABLED: "feature_disabled", +} + +export const context = { + [codes.USAGE_LIMIT_EXCEEDED]: (err: any) => { + return { + limitName: err.limitName, + } + }, + [codes.FEATURE_DISABLED]: (err: any) => { + return { + featureName: err.featureName, + } + }, +} + +export class UsageLimitError extends HTTPError { + limitName: string + + constructor(message: string, limitName: string) { + super(message, 400, codes.USAGE_LIMIT_EXCEEDED, type) + this.limitName = limitName + } +} + +export class FeatureDisabledError extends HTTPError { + featureName: string + + constructor(message: string, featureName: string) { + super(message, 400, codes.FEATURE_DISABLED, type) + this.featureName = featureName + } +} diff --git a/packages/builder/src/pages/builder/portal/settings/upgrade.svelte b/packages/builder/src/pages/builder/portal/settings/upgrade.svelte index 5200834ffa..68ace1a157 100644 --- a/packages/builder/src/pages/builder/portal/settings/upgrade.svelte +++ b/packages/builder/src/pages/builder/portal/settings/upgrade.svelte @@ -35,10 +35,14 @@ } const activate = async () => { - await API.activateLicenseKey({ licenseKey }) - await auth.getSelf() - await setLicenseInfo() - notifications.success("Successfully activated") + try { + await API.activateLicenseKey({ licenseKey }) + await auth.getSelf() + await setLicenseInfo() + notifications.success("Successfully activated") + } catch (e) { + notifications.error(e.message) + } } const refresh = async () => { diff --git a/packages/types/src/documents/account/account.ts b/packages/types/src/documents/account/account.ts index e6f48ff001..33c96033a0 100644 --- a/packages/types/src/documents/account/account.ts +++ b/packages/types/src/documents/account/account.ts @@ -33,6 +33,7 @@ export interface Account extends CreateAccount { tier: string // deprecated stripeCustomerId?: string licenseKey?: string + licenseKeyActivatedAt?: number } export interface PasswordAccount extends Account { From 462e0121fd989f7b7e9e2114f4010a846cc26404 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Mon, 12 Sep 2022 11:04:34 +0100 Subject: [PATCH 26/94] Allow JS bindings in EDC --- .../components/automation/SetupPanel/QueryParamSelector.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/builder/src/components/automation/SetupPanel/QueryParamSelector.svelte b/packages/builder/src/components/automation/SetupPanel/QueryParamSelector.svelte index 0b6a48ff9d..9c47178b0e 100644 --- a/packages/builder/src/components/automation/SetupPanel/QueryParamSelector.svelte +++ b/packages/builder/src/components/automation/SetupPanel/QueryParamSelector.svelte @@ -50,7 +50,6 @@ type="string" {bindings} fillWidth={true} - allowJS={false} /> {/each}
From 490735bff6054ff980c368d5246369ef2b8cce70 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Mon, 12 Sep 2022 13:38:21 +0100 Subject: [PATCH 27/94] Update string-templates/yarn.lock --- packages/string-templates/yarn.lock | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/packages/string-templates/yarn.lock b/packages/string-templates/yarn.lock index dc7e8f1852..8e71e59912 100644 --- a/packages/string-templates/yarn.lock +++ b/packages/string-templates/yarn.lock @@ -568,15 +568,6 @@ magic-string "^0.25.7" resolve "^1.17.0" -"@rollup/plugin-inject@^4.0.0": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-4.0.4.tgz#fbeee66e9a700782c4f65c8b0edbafe58678fbc2" - integrity sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - estree-walker "^2.0.1" - magic-string "^0.25.7" - "@rollup/plugin-json@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" @@ -3796,13 +3787,6 @@ rollup-plugin-node-resolve@^5.2.0: resolve "^1.11.1" rollup-pluginutils "^2.8.1" -rollup-plugin-polyfill-node@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.10.2.tgz#b2128646851fcb9475ddfd5bc22ca1a8c568738d" - integrity sha512-5GMywXiLiuQP6ZzED/LO/Q0HyDi2W6b8VN+Zd3oB0opIjyRs494Me2ZMaqKWDNbGiW4jvvzl6L2n4zRgxS9cSQ== - dependencies: - "@rollup/plugin-inject" "^4.0.0" - rollup-plugin-terser@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" From 3b928e0ffbed39f86ae5778666ddfd2d2519ae18 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Mon, 12 Sep 2022 14:21:32 +0100 Subject: [PATCH 28/94] Compare string versions of relationship columns --- packages/server/src/api/controllers/row/ExternalRequest.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/api/controllers/row/ExternalRequest.ts b/packages/server/src/api/controllers/row/ExternalRequest.ts index dd5778b9d9..25b26d461f 100644 --- a/packages/server/src/api/controllers/row/ExternalRequest.ts +++ b/packages/server/src/api/controllers/row/ExternalRequest.ts @@ -371,7 +371,7 @@ module External { const toColumn = `${linkedTable.name}.${relationship.to}` // this is important when working with multiple relationships // between the same tables, don't want to overlap/multiply the relations - if (!relationship.through && row[fromColumn] !== row[toColumn]) { + if (!relationship.through && row[fromColumn]?.toString() !== row[toColumn]?.toString()) { continue } let linked = basicProcessing(row, linkedTable) From 0ed5647782950d5c617e0bf9e13d6892140a6eb4 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Mon, 12 Sep 2022 14:22:07 +0100 Subject: [PATCH 29/94] lint --- packages/server/src/api/controllers/row/ExternalRequest.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/server/src/api/controllers/row/ExternalRequest.ts b/packages/server/src/api/controllers/row/ExternalRequest.ts index 25b26d461f..dc62453f77 100644 --- a/packages/server/src/api/controllers/row/ExternalRequest.ts +++ b/packages/server/src/api/controllers/row/ExternalRequest.ts @@ -371,7 +371,10 @@ module External { const toColumn = `${linkedTable.name}.${relationship.to}` // this is important when working with multiple relationships // between the same tables, don't want to overlap/multiply the relations - if (!relationship.through && row[fromColumn]?.toString() !== row[toColumn]?.toString()) { + if ( + !relationship.through && + row[fromColumn]?.toString() !== row[toColumn]?.toString() + ) { continue } let linked = basicProcessing(row, linkedTable) From cd6874b2b00ce6bf0dc61f270fc8b73b4f99d947 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 12 Sep 2022 15:16:31 +0100 Subject: [PATCH 30/94] Fixing an intermettient test issue. --- packages/server/src/utilities/fileSystem/index.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/server/src/utilities/fileSystem/index.js b/packages/server/src/utilities/fileSystem/index.js index 518bcc62bd..885b167d5e 100644 --- a/packages/server/src/utilities/fileSystem/index.js +++ b/packages/server/src/utilities/fileSystem/index.js @@ -44,7 +44,15 @@ const NODE_MODULES_PATH = join(TOP_LEVEL_PATH, "node_modules") exports.init = () => { const tempDir = budibaseTempDir() if (!fs.existsSync(tempDir)) { - fs.mkdirSync(tempDir) + // some test cases fire this quickly enough that + // synchronous cases can end up here at the same time + try { + fs.mkdirSync(tempDir) + } catch (err) { + if (!err || err.code !== "EEXIST") { + throw err + } + } } const clientLibPath = join(budibaseTempDir(), "budibase-client.js") if (env.isTest() && !fs.existsSync(clientLibPath)) { From 3c857ec501bcf01795090afb292402af9ef007d8 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 12 Sep 2022 15:17:39 +0100 Subject: [PATCH 31/94] Prefer worker/app port to generic port env variable - #7736. --- packages/server/src/environment.js | 4 ++-- packages/worker/src/environment.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/server/src/environment.js b/packages/server/src/environment.js index 7f929f79e1..fe05a296e2 100644 --- a/packages/server/src/environment.js +++ b/packages/server/src/environment.js @@ -37,8 +37,8 @@ function parseIntSafe(number) { let inThread = false module.exports = { - // important - PORT: process.env.PORT || process.env.APP_PORT, + // important - prefer app port to generic port + PORT: process.env.APP_PORT || process.env.PORT, JWT_SECRET: process.env.JWT_SECRET, COUCH_DB_URL: process.env.COUCH_DB_URL, MINIO_URL: process.env.MINIO_URL, diff --git a/packages/worker/src/environment.ts b/packages/worker/src/environment.ts index fd6749a0f7..1e6d0da637 100644 --- a/packages/worker/src/environment.ts +++ b/packages/worker/src/environment.ts @@ -43,7 +43,8 @@ const env = { PLATFORM_URL: process.env.PLATFORM_URL, APPS_URL: process.env.APPS_URL, // ports - PORT: process.env.PORT || process.env.WORKER_PORT, + // prefer worker port to generic port + PORT: process.env.WORKER_PORT || process.env.PORT, CLUSTER_PORT: process.env.CLUSTER_PORT, // flags NODE_ENV: process.env.NODE_ENV, From 735709a59a4f62b5b91d1e4477da7c9b5dd5d8ac Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Mon, 12 Sep 2022 14:51:31 +0000 Subject: [PATCH 32/94] v1.3.15 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 4 ++-- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index 1292aa521e..95c9e27959 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.14", + "version": "1.3.15", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 887e9ae095..e97a573365 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.14", + "version": "1.3.15", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.3.14", + "@budibase/types": "^1.3.15", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0b901ac40a..33d07040e3 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": "1.3.14", + "version": "1.3.15", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.3.14", + "@budibase/string-templates": "^1.3.15", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 3762a9eb6f..3e4040151c 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.14", + "version": "1.3.15", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.3.14", - "@budibase/client": "^1.3.14", - "@budibase/frontend-core": "^1.3.14", - "@budibase/string-templates": "^1.3.14", + "@budibase/bbui": "^1.3.15", + "@budibase/client": "^1.3.15", + "@budibase/frontend-core": "^1.3.15", + "@budibase/string-templates": "^1.3.15", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index b2c44a4ab2..4b3be558f2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.14", + "version": "1.3.15", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,7 +26,7 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "^1.3.14", + "@budibase/backend-core": "^1.3.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 881f0e59f7..ea731d4cf0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.14", + "version": "1.3.15", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.3.14", - "@budibase/frontend-core": "^1.3.14", - "@budibase/string-templates": "^1.3.14", + "@budibase/bbui": "^1.3.15", + "@budibase/frontend-core": "^1.3.15", + "@budibase/string-templates": "^1.3.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 309aee4f2b..2288699f6a 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.14", + "version": "1.3.15", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.3.14", + "@budibase/bbui": "^1.3.15", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index a4dc104d06..01facb6513 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.14", + "version": "1.3.15", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.3.14", - "@budibase/client": "^1.3.14", + "@budibase/backend-core": "^1.3.15", + "@budibase/client": "^1.3.15", "@budibase/pro": "1.3.13", - "@budibase/string-templates": "^1.3.14", - "@budibase/types": "^1.3.14", + "@budibase/string-templates": "^1.3.15", + "@budibase/types": "^1.3.15", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 4258c8daeb..68028539b7 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.14", + "version": "1.3.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 5b1e86ed38..fbf869be33 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.14", + "version": "1.3.15", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 53d174afa1..578d41bcf0 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.14", + "version": "1.3.15", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -35,10 +35,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.3.14", + "@budibase/backend-core": "^1.3.15", "@budibase/pro": "1.3.13", - "@budibase/string-templates": "^1.3.14", - "@budibase/types": "^1.3.14", + "@budibase/string-templates": "^1.3.15", + "@budibase/types": "^1.3.15", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 1a20129034a3bd9d0c613f905cf57d3b5927be06 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Mon, 12 Sep 2022 14:55:19 +0000 Subject: [PATCH 33/94] Update pro version to 1.3.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 01facb6513..5c01ab8e82 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.3.15", "@budibase/client": "^1.3.15", - "@budibase/pro": "1.3.13", + "@budibase/pro": "1.3.15", "@budibase/string-templates": "^1.3.15", "@budibase/types": "^1.3.15", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index b04878dd0c..442b37032c 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.13": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.13.tgz#62341d7eb2daba955069b4b54d1e7ef6ade62598" - integrity sha512-ib+ojvO8Yw5wCoHkE6Gc09D5EZiQL72g/KVEs0y2oRD92VGnv9VGpY3dA1A1UIRdi8wELDz20LrDaV/4lFbmfg== +"@budibase/backend-core@1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15.tgz#e0dfe610ff12bd51e0166d09b5e50847e4351a11" + integrity sha512-dhuQ+fjqbhhjXzDmgF36DUT05CCc0uCeIu0ZNK14aXagJLdjI6siqb20AgWSwjGF5AU6tKK4ldsPokd6wZcxqw== dependencies: - "@budibase/types" "^1.3.13" + "@budibase/types" "^1.3.15" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1179,13 +1179,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.13": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.13.tgz#2833898c04b041716f712ba95599da46d07e2d1d" - integrity sha512-l9AkPCCmOtX9htB7rT+cisgcihVXI4b5wsPzDwHKYfAj1rSRa/0FA+m6/V6D5FzwHAILY3//YOZmgPavL9gvMw== +"@budibase/pro@1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15.tgz#387d7a75edc2f472b9203d062c7c075ab099c907" + integrity sha512-BgUwkhjYAXPCdR7J+/qprysPtJIlYCxBfXBVhfFJkHUXc5sXy/+ODnMmKuYvWdXoI+Ht7A1e6Zo8U+L1IPYlOg== dependencies: - "@budibase/backend-core" "1.3.13" - "@budibase/types" "1.3.13" + "@budibase/backend-core" "1.3.15" + "@budibase/types" "1.3.15" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1208,10 +1208,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.13", "@budibase/types@^1.3.13": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.13.tgz#d71986f4785311322636231589ca5e1d29e87985" - integrity sha512-iqBjB3wart+rjQ8q/QbZU5JEljixVzzDwZu3i9rFCWbHAUH+GVeuP4CehdLlDRhCjoecFw+UxA6SuhCwdLi+yQ== +"@budibase/types@1.3.15", "@budibase/types@^1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15.tgz#c5ad71f2d57cd5bcfd955937f7faf522c4dbdab3" + integrity sha512-lkkMjGpzNdLwk7YjPEqzWhcaXabhsXERIg6j6nBCerX6/RFIG+Bf/nLNAcwTzOOeQ8ye09bLnNDYgyFXv/g/5g== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 578d41bcf0..de4b0e372b 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -36,7 +36,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.3.15", - "@budibase/pro": "1.3.13", + "@budibase/pro": "1.3.15", "@budibase/string-templates": "^1.3.15", "@budibase/types": "^1.3.15", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 908b8a09c3..2c484abc80 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.13": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.13.tgz#62341d7eb2daba955069b4b54d1e7ef6ade62598" - integrity sha512-ib+ojvO8Yw5wCoHkE6Gc09D5EZiQL72g/KVEs0y2oRD92VGnv9VGpY3dA1A1UIRdi8wELDz20LrDaV/4lFbmfg== +"@budibase/backend-core@1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15.tgz#e0dfe610ff12bd51e0166d09b5e50847e4351a11" + integrity sha512-dhuQ+fjqbhhjXzDmgF36DUT05CCc0uCeIu0ZNK14aXagJLdjI6siqb20AgWSwjGF5AU6tKK4ldsPokd6wZcxqw== dependencies: - "@budibase/types" "^1.3.13" + "@budibase/types" "^1.3.15" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -326,21 +326,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.13": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.13.tgz#2833898c04b041716f712ba95599da46d07e2d1d" - integrity sha512-l9AkPCCmOtX9htB7rT+cisgcihVXI4b5wsPzDwHKYfAj1rSRa/0FA+m6/V6D5FzwHAILY3//YOZmgPavL9gvMw== +"@budibase/pro@1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15.tgz#387d7a75edc2f472b9203d062c7c075ab099c907" + integrity sha512-BgUwkhjYAXPCdR7J+/qprysPtJIlYCxBfXBVhfFJkHUXc5sXy/+ODnMmKuYvWdXoI+Ht7A1e6Zo8U+L1IPYlOg== dependencies: - "@budibase/backend-core" "1.3.13" - "@budibase/types" "1.3.13" + "@budibase/backend-core" "1.3.15" + "@budibase/types" "1.3.15" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.13", "@budibase/types@^1.3.13": - version "1.3.13" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.13.tgz#d71986f4785311322636231589ca5e1d29e87985" - integrity sha512-iqBjB3wart+rjQ8q/QbZU5JEljixVzzDwZu3i9rFCWbHAUH+GVeuP4CehdLlDRhCjoecFw+UxA6SuhCwdLi+yQ== +"@budibase/types@1.3.15", "@budibase/types@^1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15.tgz#c5ad71f2d57cd5bcfd955937f7faf522c4dbdab3" + integrity sha512-lkkMjGpzNdLwk7YjPEqzWhcaXabhsXERIg6j6nBCerX6/RFIG+Bf/nLNAcwTzOOeQ8ye09bLnNDYgyFXv/g/5g== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 596ee07675e4dc0882ee5bf7a84eadabe8fe54be Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Tue, 13 Sep 2022 07:39:52 +0000 Subject: [PATCH 34/94] v1.3.16 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 4 ++-- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index 95c9e27959..fa769192d9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.15", + "version": "1.3.16", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index e97a573365..b05681e054 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.15", + "version": "1.3.16", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.3.15", + "@budibase/types": "^1.3.16", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 33d07040e3..fab372fc5d 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": "1.3.15", + "version": "1.3.16", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.3.15", + "@budibase/string-templates": "^1.3.16", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 3e4040151c..c484992604 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.15", + "version": "1.3.16", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.3.15", - "@budibase/client": "^1.3.15", - "@budibase/frontend-core": "^1.3.15", - "@budibase/string-templates": "^1.3.15", + "@budibase/bbui": "^1.3.16", + "@budibase/client": "^1.3.16", + "@budibase/frontend-core": "^1.3.16", + "@budibase/string-templates": "^1.3.16", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 4b3be558f2..fa39349cc9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.15", + "version": "1.3.16", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,7 +26,7 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "^1.3.15", + "@budibase/backend-core": "^1.3.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 ea731d4cf0..d7a599325c 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.15", + "version": "1.3.16", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.3.15", - "@budibase/frontend-core": "^1.3.15", - "@budibase/string-templates": "^1.3.15", + "@budibase/bbui": "^1.3.16", + "@budibase/frontend-core": "^1.3.16", + "@budibase/string-templates": "^1.3.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 2288699f6a..751894fbf2 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.15", + "version": "1.3.16", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.3.15", + "@budibase/bbui": "^1.3.16", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 5c01ab8e82..4271f7001e 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.15", + "version": "1.3.16", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.3.15", - "@budibase/client": "^1.3.15", + "@budibase/backend-core": "^1.3.16", + "@budibase/client": "^1.3.16", "@budibase/pro": "1.3.15", - "@budibase/string-templates": "^1.3.15", - "@budibase/types": "^1.3.15", + "@budibase/string-templates": "^1.3.16", + "@budibase/types": "^1.3.16", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 68028539b7..80e091af4c 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.15", + "version": "1.3.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 fbf869be33..e2f0a51fe7 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.15", + "version": "1.3.16", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index de4b0e372b..f170facb53 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.15", + "version": "1.3.16", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -35,10 +35,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.3.15", + "@budibase/backend-core": "^1.3.16", "@budibase/pro": "1.3.15", - "@budibase/string-templates": "^1.3.15", - "@budibase/types": "^1.3.15", + "@budibase/string-templates": "^1.3.16", + "@budibase/types": "^1.3.16", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 5b0dea5de25e496815306b9270df2a0866fd830b Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Tue, 13 Sep 2022 07:44:35 +0000 Subject: [PATCH 35/94] Update pro version to 1.3.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 4271f7001e..3851bb68e4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.3.16", "@budibase/client": "^1.3.16", - "@budibase/pro": "1.3.15", + "@budibase/pro": "1.3.16", "@budibase/string-templates": "^1.3.16", "@budibase/types": "^1.3.16", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 442b37032c..28b43fd7e8 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15.tgz#e0dfe610ff12bd51e0166d09b5e50847e4351a11" - integrity sha512-dhuQ+fjqbhhjXzDmgF36DUT05CCc0uCeIu0ZNK14aXagJLdjI6siqb20AgWSwjGF5AU6tKK4ldsPokd6wZcxqw== +"@budibase/backend-core@1.3.16": + version "1.3.16" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.16.tgz#b61068b4a7196aeb5c02b2b9526e59393a43f93c" + integrity sha512-KKuX7UWDkfhBgl4tqKeoAjwMFiS3KJyGgUv8I12go9XjtxyIX39NLS4vEEYWJacI/yO/eyWGGlONx3T4AYaH7g== dependencies: - "@budibase/types" "^1.3.15" + "@budibase/types" "^1.3.16" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1179,13 +1179,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15.tgz#387d7a75edc2f472b9203d062c7c075ab099c907" - integrity sha512-BgUwkhjYAXPCdR7J+/qprysPtJIlYCxBfXBVhfFJkHUXc5sXy/+ODnMmKuYvWdXoI+Ht7A1e6Zo8U+L1IPYlOg== +"@budibase/pro@1.3.16": + version "1.3.16" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.16.tgz#ebb0ec5401e394436069361b4390ca2c4acc170c" + integrity sha512-9KBk6jNTkPyptFzI5LDECdGtTx3wJjuyRv4b+5ZFyo5kZkDBIcTHuRZXCxHzYIuWG7Mypj4bounvwjo9h53Nkw== dependencies: - "@budibase/backend-core" "1.3.15" - "@budibase/types" "1.3.15" + "@budibase/backend-core" "1.3.16" + "@budibase/types" "1.3.16" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1208,10 +1208,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.15", "@budibase/types@^1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15.tgz#c5ad71f2d57cd5bcfd955937f7faf522c4dbdab3" - integrity sha512-lkkMjGpzNdLwk7YjPEqzWhcaXabhsXERIg6j6nBCerX6/RFIG+Bf/nLNAcwTzOOeQ8ye09bLnNDYgyFXv/g/5g== +"@budibase/types@1.3.16", "@budibase/types@^1.3.16": + version "1.3.16" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.16.tgz#0516e17c46fa915b1ce15969849f3109ee37881c" + integrity sha512-fRA00purKkwJQcEFB4ICluB8IwEh3EkH2xy86gcWit3RlNAVobxhzB91mi4BR26KiYgFS7+wXKKFeK29UWmTCw== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index f170facb53..ab81e053ad 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -36,7 +36,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.3.16", - "@budibase/pro": "1.3.15", + "@budibase/pro": "1.3.16", "@budibase/string-templates": "^1.3.16", "@budibase/types": "^1.3.16", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 2c484abc80..f3b5fc152a 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15.tgz#e0dfe610ff12bd51e0166d09b5e50847e4351a11" - integrity sha512-dhuQ+fjqbhhjXzDmgF36DUT05CCc0uCeIu0ZNK14aXagJLdjI6siqb20AgWSwjGF5AU6tKK4ldsPokd6wZcxqw== +"@budibase/backend-core@1.3.16": + version "1.3.16" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.16.tgz#b61068b4a7196aeb5c02b2b9526e59393a43f93c" + integrity sha512-KKuX7UWDkfhBgl4tqKeoAjwMFiS3KJyGgUv8I12go9XjtxyIX39NLS4vEEYWJacI/yO/eyWGGlONx3T4AYaH7g== dependencies: - "@budibase/types" "^1.3.15" + "@budibase/types" "^1.3.16" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -326,21 +326,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15.tgz#387d7a75edc2f472b9203d062c7c075ab099c907" - integrity sha512-BgUwkhjYAXPCdR7J+/qprysPtJIlYCxBfXBVhfFJkHUXc5sXy/+ODnMmKuYvWdXoI+Ht7A1e6Zo8U+L1IPYlOg== +"@budibase/pro@1.3.16": + version "1.3.16" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.16.tgz#ebb0ec5401e394436069361b4390ca2c4acc170c" + integrity sha512-9KBk6jNTkPyptFzI5LDECdGtTx3wJjuyRv4b+5ZFyo5kZkDBIcTHuRZXCxHzYIuWG7Mypj4bounvwjo9h53Nkw== dependencies: - "@budibase/backend-core" "1.3.15" - "@budibase/types" "1.3.15" + "@budibase/backend-core" "1.3.16" + "@budibase/types" "1.3.16" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.15", "@budibase/types@^1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15.tgz#c5ad71f2d57cd5bcfd955937f7faf522c4dbdab3" - integrity sha512-lkkMjGpzNdLwk7YjPEqzWhcaXabhsXERIg6j6nBCerX6/RFIG+Bf/nLNAcwTzOOeQ8ye09bLnNDYgyFXv/g/5g== +"@budibase/types@1.3.16", "@budibase/types@^1.3.16": + version "1.3.16" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.16.tgz#0516e17c46fa915b1ce15969849f3109ee37881c" + integrity sha512-fRA00purKkwJQcEFB4ICluB8IwEh3EkH2xy86gcWit3RlNAVobxhzB91mi4BR26KiYgFS7+wXKKFeK29UWmTCw== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 01d7c9d994aa66a1d08ab71acc9e6c8eab825a47 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Tue, 13 Sep 2022 09:52:59 +0000 Subject: [PATCH 36/94] v1.3.17 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 4 ++-- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 29 insertions(+), 29 deletions(-) diff --git a/lerna.json b/lerna.json index fa769192d9..eb7210ee53 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.16", + "version": "1.3.17", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index b05681e054..76e2a66dbf 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.16", + "version": "1.3.17", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.3.16", + "@budibase/types": "^1.3.17", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index fab372fc5d..0b36a31286 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": "1.3.16", + "version": "1.3.17", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.3.16", + "@budibase/string-templates": "^1.3.17", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index c484992604..d2944fd37f 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.16", + "version": "1.3.17", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.3.16", - "@budibase/client": "^1.3.16", - "@budibase/frontend-core": "^1.3.16", - "@budibase/string-templates": "^1.3.16", + "@budibase/bbui": "^1.3.17", + "@budibase/client": "^1.3.17", + "@budibase/frontend-core": "^1.3.17", + "@budibase/string-templates": "^1.3.17", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index fa39349cc9..983978c0be 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.16", + "version": "1.3.17", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,7 +26,7 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "^1.3.16", + "@budibase/backend-core": "^1.3.17", "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 d7a599325c..c60b65848c 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.16", + "version": "1.3.17", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.3.16", - "@budibase/frontend-core": "^1.3.16", - "@budibase/string-templates": "^1.3.16", + "@budibase/bbui": "^1.3.17", + "@budibase/frontend-core": "^1.3.17", + "@budibase/string-templates": "^1.3.17", "@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 751894fbf2..732db93e10 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.16", + "version": "1.3.17", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.3.16", + "@budibase/bbui": "^1.3.17", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 3851bb68e4..1ceb64e1bb 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.16", + "version": "1.3.17", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.3.16", - "@budibase/client": "^1.3.16", + "@budibase/backend-core": "^1.3.17", + "@budibase/client": "^1.3.17", "@budibase/pro": "1.3.16", - "@budibase/string-templates": "^1.3.16", - "@budibase/types": "^1.3.16", + "@budibase/string-templates": "^1.3.17", + "@budibase/types": "^1.3.17", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 80e091af4c..eaf1ccba14 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.16", + "version": "1.3.17", "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 e2f0a51fe7..0df1a5519c 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.16", + "version": "1.3.17", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index ab81e053ad..7d5b4918b9 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.16", + "version": "1.3.17", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -35,10 +35,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.3.16", + "@budibase/backend-core": "^1.3.17", "@budibase/pro": "1.3.16", - "@budibase/string-templates": "^1.3.16", - "@budibase/types": "^1.3.16", + "@budibase/string-templates": "^1.3.17", + "@budibase/types": "^1.3.17", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From d33ae7b039a1fa80ef7ab49cb7754b1b86b85cdc Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Tue, 13 Sep 2022 09:56:22 +0000 Subject: [PATCH 37/94] Update pro version to 1.3.17 --- 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 1ceb64e1bb..609d7e82f3 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.3.17", "@budibase/client": "^1.3.17", - "@budibase/pro": "1.3.16", + "@budibase/pro": "1.3.17", "@budibase/string-templates": "^1.3.17", "@budibase/types": "^1.3.17", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 28b43fd7e8..406d93d873 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.16.tgz#b61068b4a7196aeb5c02b2b9526e59393a43f93c" - integrity sha512-KKuX7UWDkfhBgl4tqKeoAjwMFiS3KJyGgUv8I12go9XjtxyIX39NLS4vEEYWJacI/yO/eyWGGlONx3T4AYaH7g== +"@budibase/backend-core@1.3.17": + version "1.3.17" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.17.tgz#9d1266d044f5ca1a787182a64a7574a45cbeaea9" + integrity sha512-h7wshkCzkk0aGo4+FP9RUSJp6vJB0vHLkXu8Px98MuP991saU7YePhpKGNg9mnAAWGgmaI/Yb+MmLoXD1T7a7w== dependencies: - "@budibase/types" "^1.3.16" + "@budibase/types" "^1.3.17" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1179,13 +1179,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.16.tgz#ebb0ec5401e394436069361b4390ca2c4acc170c" - integrity sha512-9KBk6jNTkPyptFzI5LDECdGtTx3wJjuyRv4b+5ZFyo5kZkDBIcTHuRZXCxHzYIuWG7Mypj4bounvwjo9h53Nkw== +"@budibase/pro@1.3.17": + version "1.3.17" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.17.tgz#ef19f00e22a347498bb036db71ee1fa63384500c" + integrity sha512-WwJPM/bs23vGeW/hw3Tl9l5adVMjgyRkaoCFUDFxbwnTpkl6c2sfrwa1xMDJPYbXCFWHcOqQitKjSjRP3i5LJw== dependencies: - "@budibase/backend-core" "1.3.16" - "@budibase/types" "1.3.16" + "@budibase/backend-core" "1.3.17" + "@budibase/types" "1.3.17" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1208,10 +1208,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.16", "@budibase/types@^1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.16.tgz#0516e17c46fa915b1ce15969849f3109ee37881c" - integrity sha512-fRA00purKkwJQcEFB4ICluB8IwEh3EkH2xy86gcWit3RlNAVobxhzB91mi4BR26KiYgFS7+wXKKFeK29UWmTCw== +"@budibase/types@1.3.17", "@budibase/types@^1.3.17": + version "1.3.17" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.17.tgz#f0eba7a659a98b69b978d4ebac9a7080ea33f9ac" + integrity sha512-eBkAonREYGuxkUZgChBgZ7RMd38StpG2D3rP5Tw+YpxxZKp43SNtt9ppZeHLnPc+9QiwVgCF4SMHZCOjbCPRlg== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 7d5b4918b9..fdd706c8a4 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -36,7 +36,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.3.17", - "@budibase/pro": "1.3.16", + "@budibase/pro": "1.3.17", "@budibase/string-templates": "^1.3.17", "@budibase/types": "^1.3.17", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index f3b5fc152a..15b9021ef5 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.16.tgz#b61068b4a7196aeb5c02b2b9526e59393a43f93c" - integrity sha512-KKuX7UWDkfhBgl4tqKeoAjwMFiS3KJyGgUv8I12go9XjtxyIX39NLS4vEEYWJacI/yO/eyWGGlONx3T4AYaH7g== +"@budibase/backend-core@1.3.17": + version "1.3.17" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.17.tgz#9d1266d044f5ca1a787182a64a7574a45cbeaea9" + integrity sha512-h7wshkCzkk0aGo4+FP9RUSJp6vJB0vHLkXu8Px98MuP991saU7YePhpKGNg9mnAAWGgmaI/Yb+MmLoXD1T7a7w== dependencies: - "@budibase/types" "^1.3.16" + "@budibase/types" "^1.3.17" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -326,21 +326,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.16.tgz#ebb0ec5401e394436069361b4390ca2c4acc170c" - integrity sha512-9KBk6jNTkPyptFzI5LDECdGtTx3wJjuyRv4b+5ZFyo5kZkDBIcTHuRZXCxHzYIuWG7Mypj4bounvwjo9h53Nkw== +"@budibase/pro@1.3.17": + version "1.3.17" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.17.tgz#ef19f00e22a347498bb036db71ee1fa63384500c" + integrity sha512-WwJPM/bs23vGeW/hw3Tl9l5adVMjgyRkaoCFUDFxbwnTpkl6c2sfrwa1xMDJPYbXCFWHcOqQitKjSjRP3i5LJw== dependencies: - "@budibase/backend-core" "1.3.16" - "@budibase/types" "1.3.16" + "@budibase/backend-core" "1.3.17" + "@budibase/types" "1.3.17" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.16", "@budibase/types@^1.3.16": - version "1.3.16" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.16.tgz#0516e17c46fa915b1ce15969849f3109ee37881c" - integrity sha512-fRA00purKkwJQcEFB4ICluB8IwEh3EkH2xy86gcWit3RlNAVobxhzB91mi4BR26KiYgFS7+wXKKFeK29UWmTCw== +"@budibase/types@1.3.17", "@budibase/types@^1.3.17": + version "1.3.17" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.17.tgz#f0eba7a659a98b69b978d4ebac9a7080ea33f9ac" + integrity sha512-eBkAonREYGuxkUZgChBgZ7RMd38StpG2D3rP5Tw+YpxxZKp43SNtt9ppZeHLnPc+9QiwVgCF4SMHZCOjbCPRlg== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 0d097f48e45ff0b976d8b7a0cc0c40103e6dbc00 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Tue, 13 Sep 2022 11:44:33 +0100 Subject: [PATCH 38/94] add backend name validation for app creation / update --- packages/server/src/api/routes/application.ts | 15 +++++++++++++-- .../server/src/api/routes/utils/validators.js | 3 ++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/server/src/api/routes/application.ts b/packages/server/src/api/routes/application.ts index 49ecc2ee6f..0ebdf548e3 100644 --- a/packages/server/src/api/routes/application.ts +++ b/packages/server/src/api/routes/application.ts @@ -2,16 +2,27 @@ import Router from "@koa/router" import * as controller from "../controllers/application" import authorized from "../../middleware/authorized" import { BUILDER } from "@budibase/backend-core/permissions" +import { applicationValidator } from "./utils/validators" const router = new Router() router .post("/api/applications/:appId/sync", authorized(BUILDER), controller.sync) - .post("/api/applications", authorized(BUILDER), controller.create) + .post( + "/api/applications", + authorized(BUILDER), + applicationValidator(), + controller.create + ) .get("/api/applications/:appId/definition", controller.fetchAppDefinition) .get("/api/applications", controller.fetch) .get("/api/applications/:appId/appPackage", controller.fetchAppPackage) - .put("/api/applications/:appId", authorized(BUILDER), controller.update) + .put( + "/api/applications/:appId", + authorized(BUILDER), + applicationValidator(), + controller.update + ) .post( "/api/applications/:appId/client/update", authorized(BUILDER), diff --git a/packages/server/src/api/routes/utils/validators.js b/packages/server/src/api/routes/utils/validators.js index b43eea9e36..000c9655bc 100644 --- a/packages/server/src/api/routes/utils/validators.js +++ b/packages/server/src/api/routes/utils/validators.js @@ -10,6 +10,7 @@ const Joi = require("joi") const OPTIONAL_STRING = Joi.string().optional().allow(null).allow("") const OPTIONAL_NUMBER = Joi.number().optional().allow(null) const OPTIONAL_BOOLEAN = Joi.boolean().optional().allow(null) +const APP_NAME_REGEX = /^[\w\s]+$/ exports.tableValidator = () => { // prettier-ignore @@ -214,7 +215,7 @@ exports.applicationValidator = () => { return joiValidator.body(Joi.object({ _id: OPTIONAL_STRING, _rev: OPTIONAL_STRING, - name: Joi.string().required(), + name: Joi.string().pattern(new RegExp(APP_NAME_REGEX)).required().error(new Error('App name must be letters, numbers and spaces only')), url: OPTIONAL_STRING, template: Joi.object({ templateString: OPTIONAL_STRING, From 98333b87912a93da212da930b1b0abc01a4f2be2 Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 13 Sep 2022 11:52:31 +0100 Subject: [PATCH 39/94] Merge commit --- packages/bbui/src/Banner/BannerDisplay.svelte | 22 ++- packages/bbui/src/Stores/banner.js | 18 ++- .../bbui/src/Tooltip/TooltipWrapper.svelte | 3 +- packages/bbui/src/index.js | 1 + packages/builder/src/App.svelte | 4 + packages/builder/src/builderStore/index.js | 2 + .../src/builderStore/store/temporal.js | 44 ++++++ .../components/common/TemplateDisplay.svelte | 21 +-- .../licensing/AccountDowngradedModal.svelte | 51 +++++++ .../portal/licensing/AppLimitModal.svelte | 46 ++++++ .../licensing/DayPassWarningModal.svelte | 54 +++++++ .../portal/licensing/LicensingOverlays.svelte | 117 ++++++++++++++++ .../licensing/PaymentFailedModal.svelte | 87 ++++++++++++ .../components/portal/licensing/banners.js | 132 ++++++++++++++++++ .../components/portal/licensing/constants.js | 15 ++ .../builder/src/pages/builder/_layout.svelte | 5 +- .../pages/builder/portal/apps/create.svelte | 27 +++- .../pages/builder/portal/apps/index.svelte | 18 ++- .../builder/src/stores/portal/licensing.js | 121 +++++++++------- 19 files changed, 707 insertions(+), 81 deletions(-) create mode 100644 packages/builder/src/builderStore/store/temporal.js create mode 100644 packages/builder/src/components/portal/licensing/AccountDowngradedModal.svelte create mode 100644 packages/builder/src/components/portal/licensing/AppLimitModal.svelte create mode 100644 packages/builder/src/components/portal/licensing/DayPassWarningModal.svelte create mode 100644 packages/builder/src/components/portal/licensing/LicensingOverlays.svelte create mode 100644 packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte create mode 100644 packages/builder/src/components/portal/licensing/banners.js create mode 100644 packages/builder/src/components/portal/licensing/constants.js diff --git a/packages/bbui/src/Banner/BannerDisplay.svelte b/packages/bbui/src/Banner/BannerDisplay.svelte index aad742b1bd..4785fcb9ba 100644 --- a/packages/bbui/src/Banner/BannerDisplay.svelte +++ b/packages/bbui/src/Banner/BannerDisplay.svelte @@ -4,22 +4,30 @@ import { banner } from "../Stores/banner" import Banner from "./Banner.svelte" import { fly } from "svelte/transition" + import TooltipWrapper from "../Tooltip/TooltipWrapper.svelte" diff --git a/packages/bbui/src/Stores/banner.js b/packages/bbui/src/Stores/banner.js index 81a9ee2204..745c77e188 100644 --- a/packages/bbui/src/Stores/banner.js +++ b/packages/bbui/src/Stores/banner.js @@ -1,7 +1,9 @@ import { writable } from "svelte/store" export function createBannerStore() { - const DEFAULT_CONFIG = {} + const DEFAULT_CONFIG = { + messages: [], + } const banner = writable(DEFAULT_CONFIG) @@ -28,9 +30,23 @@ export function createBannerStore() { await show(config) } + const queue = async entries => { + banner.update(store => { + const sorted = [...store.messages, ...entries].sort( + (a, b) => a.priority > b.priority + ) + return { + ...store, + messages: sorted, + } + }) + } + return { subscribe: banner.subscribe, showStatus, + show, + queue, } } diff --git a/packages/bbui/src/Tooltip/TooltipWrapper.svelte b/packages/bbui/src/Tooltip/TooltipWrapper.svelte index 92f5c6f474..0c6c8e167b 100644 --- a/packages/bbui/src/Tooltip/TooltipWrapper.svelte +++ b/packages/bbui/src/Tooltip/TooltipWrapper.svelte @@ -54,7 +54,6 @@ transform: scale(0.75); } .icon-small { - margin-top: -2px; - margin-bottom: -5px; + margin-bottom: -2px; } diff --git a/packages/bbui/src/index.js b/packages/bbui/src/index.js index b45f3e9ed6..11424b1261 100644 --- a/packages/bbui/src/index.js +++ b/packages/bbui/src/index.js @@ -34,6 +34,7 @@ export { default as Layout } from "./Layout/Layout.svelte" export { default as Page } from "./Layout/Page.svelte" export { default as Link } from "./Link/Link.svelte" export { default as Tooltip } from "./Tooltip/Tooltip.svelte" +export { default as TooltipWrapper } from "./Tooltip/TooltipWrapper.svelte" export { default as Menu } from "./Menu/Menu.svelte" export { default as MenuSection } from "./Menu/Section.svelte" export { default as MenuSeparator } from "./Menu/Separator.svelte" diff --git a/packages/builder/src/App.svelte b/packages/builder/src/App.svelte index 0fb0fe59d5..4d193df104 100644 --- a/packages/builder/src/App.svelte +++ b/packages/builder/src/App.svelte @@ -4,6 +4,7 @@ import { NotificationDisplay, BannerDisplay } from "@budibase/bbui" import { parse, stringify } from "qs" import HelpIcon from "components/common/HelpIcon.svelte" + import LicensingOverlays from "components/portal/licensing/LicensingOverlays.svelte" const queryHandler = { parse, stringify } @@ -12,6 +13,9 @@ + + + @@ -65,6 +71,11 @@ +
+ + +
+
Date: Wed, 14 Sep 2022 13:24:11 +0100 Subject: [PATCH 50/94] move env vars to runner.sh --- hosting/single/Dockerfile | 19 ++----------------- hosting/single/runner.sh | 1 + 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/hosting/single/Dockerfile b/hosting/single/Dockerfile index e01b0bf61e..f34290f627 100644 --- a/hosting/single/Dockerfile +++ b/hosting/single/Dockerfile @@ -29,23 +29,8 @@ ENV TARGETBUILD $TARGETBUILD COPY --from=build /app /app COPY --from=build /worker /worker -ENV \ - APP_PORT=4001 \ - ARCHITECTURE=amd \ - BUDIBASE_ENVIRONMENT=PRODUCTION \ - CLUSTER_PORT=80 \ - # CUSTOM_DOMAIN=budi001.custom.com \ - DATA_DIR=/data \ - DEPLOYMENT_ENVIRONMENT=docker \ - MINIO_URL=http://localhost:9000 \ - POSTHOG_TOKEN=phc_bIjZL7oh2GEUd2vqvTBH8WvrX0fWTFQMs6H5KQxiUxU \ - REDIS_URL=localhost:6379 \ - SELF_HOSTED=1 \ - TARGETBUILD=$TARGETBUILD \ - WORKER_PORT=4002 \ - WORKER_URL=http://localhost:4002 \ - APPS_URL=http://localhost:4001 - +# ENV CUSTOM_DOMAIN=budi001.custom.com \ +# See runner.sh for Env Vars # These secret env variables are generated by the runner at startup # their values can be overriden by the user, they will be written # to the .env file in the /data directory for use later on diff --git a/hosting/single/runner.sh b/hosting/single/runner.sh index b432813769..cf82e6701b 100644 --- a/hosting/single/runner.sh +++ b/hosting/single/runner.sh @@ -15,6 +15,7 @@ declare -a DOCKER_VARS=("APP_PORT" "APPS_URL" "ARCHITECTURE" "BUDIBASE_ENVIRONME [[ -z "${WORKER_PORT}" ]] && export WORKER_PORT=4002 [[ -z "${WORKER_URL}" ]] && export WORKER_URL=http://localhost:4002 [[ -z "${APPS_URL}" ]] && export APPS_URL=http://localhost:4001 +# export CUSTOM_DOMAIN=budi001.custom.com # Azure App Service customisations if [[ "${TARGETBUILD}" = "aas" ]]; then DATA_DIR=/home From a4af9ad32e9c93f3616ca99447159b481e855b42 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 14 Sep 2022 13:59:54 +0100 Subject: [PATCH 51/94] Minor fix - remove double friendlyname check. --- .../portal/manage/plugins/_components/PluginRow.svelte | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte b/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte index 0c82c37e2f..18390c7fcb 100644 --- a/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte +++ b/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte @@ -20,8 +20,7 @@ ? plugin.schema.schema.icon || "Book" : plugin.schema.schema.icon || "Beaker" - $: friendlyName = - plugin?.schema?.friendlyName || plugin?.schema?.schema?.friendlyName + $: friendlyName = plugin?.schema?.schema?.friendlyName function pluginDeleted() { if (detailsModal) { @@ -138,7 +137,7 @@ .details-row { display: grid; - grid-template-columns: 60px 1fr; + grid-template-columns: 70px 1fr; grid-gap: var(--spacing-l) var(--spacing-l); align-items: center; } From 2216ff1987d23278a3ab72309c4a43f733b56346 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 14 Sep 2022 14:07:00 +0100 Subject: [PATCH 52/94] Fixing linting issue. --- packages/server/src/api/controllers/component.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/server/src/api/controllers/component.js b/packages/server/src/api/controllers/component.js index 86a0b1938f..e949db3042 100644 --- a/packages/server/src/api/controllers/component.js +++ b/packages/server/src/api/controllers/component.js @@ -2,7 +2,6 @@ const { DocumentType, getPluginParams } = require("../../db/utils") const { getComponentLibraryManifest } = require("../../utilities/fileSystem") const { getAppDB } = require("@budibase/backend-core/context") const { getGlobalDB } = require("@budibase/backend-core/tenancy") -const env = require("../../environment") exports.fetchAppComponentDefinitions = async function (ctx) { try { From 23594d7d1241899c706a2e2041058345c7660ab0 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Wed, 14 Sep 2022 14:20:50 +0100 Subject: [PATCH 53/94] Update navigation --- .../src/pages/builder/portal/_layout.svelte | 57 ++++++++++++------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/_layout.svelte b/packages/builder/src/pages/builder/portal/_layout.svelte index a5642cf639..b5b6556f06 100644 --- a/packages/builder/src/pages/builder/portal/_layout.svelte +++ b/packages/builder/src/pages/builder/portal/_layout.svelte @@ -37,15 +37,6 @@ href: "/builder/portal/apps", }, ] - if (isEnabled(FEATURE_FLAGS.LICENSING)) { - menu = menu.concat([ - { - title: "Usage", - href: "/builder/portal/settings/usage", - badge: "New", - }, - ]) - } if (admin) { menu = menu.concat([ @@ -81,14 +72,6 @@ href: "/builder/portal/settings/update", }, ]) - - if (isEnabled(FEATURE_FLAGS.LICENSING)) { - menu = menu.concat({ - title: "Upgrade", - href: "/builder/portal/settings/upgrade", - badge: "New", - }) - } } } else { menu = menu.concat([ @@ -101,7 +84,11 @@ } // add link to account portal if the user has access - if ($auth?.user?.accountPortalAccess) { + let accountSectionAdded = false + + // link out to account-portal if account holder in cloud or always in self-host + if ($auth?.user?.accountPortalAccess || (!$adminStore.cloud && admin)) { + accountSectionAdded = true menu = menu.concat([ { title: "Account", @@ -109,8 +96,20 @@ heading: "Account", }, ]) + } - if (isEnabled(FEATURE_FLAGS.LICENSING)) { + if (isEnabled(FEATURE_FLAGS.LICENSING)) { + // always show usage in self-host or cloud if licensing enabled + menu = menu.concat([ + { + title: "Usage", + href: "/builder/portal/settings/usage", + heading: accountSectionAdded ? "" : "Account", + }, + ]) + + // show the relevant hosting upgrade page + if ($adminStore.cloud && $auth?.user?.accountPortalAccess) { menu = menu.concat([ { title: "Upgrade", @@ -118,8 +117,28 @@ badge: "New", }, ]) + } else if (!$adminStore.cloud && admin) { + menu = menu.concat({ + title: "Upgrade", + href: "/builder/portal/settings/upgrade", + badge: "New", + }) + } + + // show the billing page to licensed account holders in cloud + if ( + $auth?.user?.accountPortalAccess && + $auth.user.account.stripeCustomerId + ) { + menu = menu.concat([ + { + title: "Billing", + href: $adminStore.accountPortalUrl + "/portal/billing", + }, + ]) } } + menu = menu.filter(item => !!item) return menu } From be396dc3c0cd0160a06fdfc7bdae39961f003024 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 14 Sep 2022 14:22:53 +0100 Subject: [PATCH 54/94] fixing tests --- packages/backend-core/src/tenancy/tenancy.ts | 9 ++++++--- packages/types/src/documents/platform/users.ts | 9 +++++++++ .../worker/src/api/routes/global/tests/users.spec.ts | 2 +- packages/worker/src/sdk/users/users.ts | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/backend-core/src/tenancy/tenancy.ts b/packages/backend-core/src/tenancy/tenancy.ts index b28d098a0d..1c71935eb0 100644 --- a/packages/backend-core/src/tenancy/tenancy.ts +++ b/packages/backend-core/src/tenancy/tenancy.ts @@ -9,6 +9,7 @@ import { getTenantIDFromAppID, } from "../context" import env from "../environment" +import { PlatformUser, PlatformUserByEmail } from "@budibase/types" const TENANT_DOC = StaticDatabases.PLATFORM_INFO.docs.tenants const PLATFORM_INFO_DB = StaticDatabases.PLATFORM_INFO.name @@ -108,13 +109,15 @@ export const lookupTenantId = async (userId: string) => { } // lookup, could be email or userId, either will return a doc -export const getTenantUser = async (identifier: string) => { +export const getTenantUser = async ( + identifier: string +): Promise => { // use the view here and allow to find anyone regardless of casing // Use lowercase to ensure email login is case insensitive - const response = await queryPlatformView(ViewName.PLATFORM_USERS_LOWERCASE, { + const response = queryPlatformView(ViewName.PLATFORM_USERS_LOWERCASE, { keys: [identifier.toLowerCase()], include_docs: true, - }) + }) as Promise return response } diff --git a/packages/types/src/documents/platform/users.ts b/packages/types/src/documents/platform/users.ts index 1b65ea42f2..46cc44b31d 100644 --- a/packages/types/src/documents/platform/users.ts +++ b/packages/types/src/documents/platform/users.ts @@ -7,3 +7,12 @@ export interface PlatformUserByEmail extends Document { tenantId: string userId: string } + +/** + * doc id is userId + */ +export interface PlatformUserById extends Document { + tenantId: string +} + +export type PlatformUser = PlatformUserByEmail | PlatformUserById 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 170320dc7e..fd9ef7ff9f 100644 --- a/packages/worker/src/api/routes/global/tests/users.spec.ts +++ b/packages/worker/src/api/routes/global/tests/users.spec.ts @@ -248,7 +248,7 @@ describe("/api/global/users", () => { await api.users.saveUser(user) user.email = user.email.toUpperCase() - await api.users.saveUser(user) + await api.users.saveUser(user, 400) expect(events.user.created).toBeCalledTimes(1) }) diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index 33d78f350c..83b0510333 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -164,7 +164,7 @@ const buildUser = async ( const validateUniqueUser = async (email: string, tenantId: string) => { // check budibase users in other tenants if (env.MULTI_TENANCY) { - const tenantUser = (await tenancy.getTenantUser(email)) as User | undefined + const tenantUser = await tenancy.getTenantUser(email) if (tenantUser != null && tenantUser.tenantId !== tenantId) { throw `Unavailable` } From cf446aa85b7200ab86289bfcedd7e9ca7a955d78 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 14 Sep 2022 14:00:26 +0000 Subject: [PATCH 55/94] v1.3.15-alpha.8 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index 6b8eaa45b2..f8b68054e7 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 627cd16f8c..b9cdf99da8 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.15-alpha.7", + "@budibase/types": "1.3.15-alpha.8", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index da52ae0084..af06d0c38c 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": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.15-alpha.7", + "@budibase/string-templates": "1.3.15-alpha.8", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 33ad9c46a8..ea2db8412c 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.15-alpha.7", - "@budibase/client": "1.3.15-alpha.7", - "@budibase/frontend-core": "1.3.15-alpha.7", - "@budibase/string-templates": "1.3.15-alpha.7", + "@budibase/bbui": "1.3.15-alpha.8", + "@budibase/client": "1.3.15-alpha.8", + "@budibase/frontend-core": "1.3.15-alpha.8", + "@budibase/string-templates": "1.3.15-alpha.8", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 341cc8604a..51d940cdaf 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.15-alpha.7", - "@budibase/string-templates": "1.3.15-alpha.7", - "@budibase/types": "1.3.15-alpha.7", + "@budibase/backend-core": "1.3.15-alpha.8", + "@budibase/string-templates": "1.3.15-alpha.8", + "@budibase/types": "1.3.15-alpha.8", "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 dad087808b..75b11bd879 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.15-alpha.7", - "@budibase/frontend-core": "1.3.15-alpha.7", - "@budibase/string-templates": "1.3.15-alpha.7", + "@budibase/bbui": "1.3.15-alpha.8", + "@budibase/frontend-core": "1.3.15-alpha.8", + "@budibase/string-templates": "1.3.15-alpha.8", "@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 c51dc4dc05..1da7a73d83 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.15-alpha.7", + "@budibase/bbui": "1.3.15-alpha.8", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index fbda6c9649..93bc91ca5c 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.15-alpha.7", - "@budibase/client": "1.3.15-alpha.7", + "@budibase/backend-core": "1.3.15-alpha.8", + "@budibase/client": "1.3.15-alpha.8", "@budibase/pro": "1.3.15-alpha.7", - "@budibase/string-templates": "1.3.15-alpha.7", - "@budibase/types": "1.3.15-alpha.7", + "@budibase/string-templates": "1.3.15-alpha.8", + "@budibase/types": "1.3.15-alpha.8", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index b294b95d8a..d1b65fff06 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "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 0b195ba541..c59f9c005a 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 1d5967b14e..4dafc2180c 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.15-alpha.7", + "version": "1.3.15-alpha.8", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -35,10 +35,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.15-alpha.7", + "@budibase/backend-core": "1.3.15-alpha.8", "@budibase/pro": "1.3.15-alpha.7", - "@budibase/string-templates": "1.3.15-alpha.7", - "@budibase/types": "1.3.15-alpha.7", + "@budibase/string-templates": "1.3.15-alpha.8", + "@budibase/types": "1.3.15-alpha.8", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From de09eb18ef8a8b5fc67ae08ae80b56467716c361 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 14 Sep 2022 14:03:57 +0000 Subject: [PATCH 56/94] Update pro version to 1.3.15-alpha.8 --- 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 93bc91ca5c..09ac78d9d8 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.15-alpha.8", "@budibase/client": "1.3.15-alpha.8", - "@budibase/pro": "1.3.15-alpha.7", + "@budibase/pro": "1.3.15-alpha.8", "@budibase/string-templates": "1.3.15-alpha.8", "@budibase/types": "1.3.15-alpha.8", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 180833b456..40985a0376 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.15-alpha.7": - version "1.3.15-alpha.7" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.7.tgz#322e842c9371c807f89b71ee2aed4ab4479b6d27" - integrity sha512-eymmLjHhEzBQEztmVRqLpAw4YzZ4xDBAtA1lnJ50AZs/ZlHE+W4BR6LX2jGvIhYK2QDGbNQtXDzkut+0Sacj0w== +"@budibase/backend-core@1.3.15-alpha.8": + version "1.3.15-alpha.8" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.8.tgz#e4c18550f81fc250fe554e46a376c88d613f97fe" + integrity sha512-Ck2p5nP5lpv7XkowVBxvgVxlAv7ZLWL1d0RePIpTQAjWH+Fmq9RG9vvxfKXVidQ1ej5Sv3PQXItSFBMIkmix+g== dependencies: - "@budibase/types" "1.3.15-alpha.7" + "@budibase/types" "1.3.15-alpha.8" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.15-alpha.7": - version "1.3.15-alpha.7" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.7.tgz#3743a26fb99d58070c8ab2741ee912a4d973baf7" - integrity sha512-RerlV0A6wSU3mSOtY5ET4WR5Qaga1WNfUeG8Lqzx3z09vC23YuB0qvpadpKoUKUanzCyprrU4zBrLED8973stQ== +"@budibase/pro@1.3.15-alpha.8": + version "1.3.15-alpha.8" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.8.tgz#b328d53506751edbf22f4e39b1ca15bd3202b2bc" + integrity sha512-x2gHmaLlBJ01R3Oo3SDza5Xt643IEvNMgA6AjyvAK+dVwfLDKG5eNTRnLuTEGVasJ+xpVFwgZQVsXcbJEaL8hQ== dependencies: - "@budibase/backend-core" "1.3.15-alpha.7" - "@budibase/types" "1.3.15-alpha.7" + "@budibase/backend-core" "1.3.15-alpha.8" + "@budibase/types" "1.3.15-alpha.8" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.15-alpha.7": - version "1.3.15-alpha.7" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.7.tgz#c69a38194786ea66a2c6137aa961292902472ee9" - integrity sha512-9XW5Qr0FxXRO5rC1SlwS8dcDDPYGEG5+tJcrQ0gzk+5uzQfYIB/crhB0z++9vAwkBEm09XKbjBvdf4w5haEi2w== +"@budibase/types@1.3.15-alpha.8": + version "1.3.15-alpha.8" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.8.tgz#046c1bb6c62037a4048d513d4074132599ab5033" + integrity sha512-Z74soj0Tp6x5M+OO+4nqAUSzVkjWmGjDM6y+KTlfGT/Q4Ecq1xz+ftaHNS8f7KdhHZGkjACX4ad/34kdWJdWoQ== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 4dafc2180c..b67369d291 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -36,7 +36,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.15-alpha.8", - "@budibase/pro": "1.3.15-alpha.7", + "@budibase/pro": "1.3.15-alpha.8", "@budibase/string-templates": "1.3.15-alpha.8", "@budibase/types": "1.3.15-alpha.8", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index dc60272795..f3e768eaad 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.15-alpha.7": - version "1.3.15-alpha.7" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.7.tgz#322e842c9371c807f89b71ee2aed4ab4479b6d27" - integrity sha512-eymmLjHhEzBQEztmVRqLpAw4YzZ4xDBAtA1lnJ50AZs/ZlHE+W4BR6LX2jGvIhYK2QDGbNQtXDzkut+0Sacj0w== +"@budibase/backend-core@1.3.15-alpha.8": + version "1.3.15-alpha.8" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.8.tgz#e4c18550f81fc250fe554e46a376c88d613f97fe" + integrity sha512-Ck2p5nP5lpv7XkowVBxvgVxlAv7ZLWL1d0RePIpTQAjWH+Fmq9RG9vvxfKXVidQ1ej5Sv3PQXItSFBMIkmix+g== dependencies: - "@budibase/types" "1.3.15-alpha.7" + "@budibase/types" "1.3.15-alpha.8" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.15-alpha.7": - version "1.3.15-alpha.7" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.7.tgz#3743a26fb99d58070c8ab2741ee912a4d973baf7" - integrity sha512-RerlV0A6wSU3mSOtY5ET4WR5Qaga1WNfUeG8Lqzx3z09vC23YuB0qvpadpKoUKUanzCyprrU4zBrLED8973stQ== +"@budibase/pro@1.3.15-alpha.8": + version "1.3.15-alpha.8" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.8.tgz#b328d53506751edbf22f4e39b1ca15bd3202b2bc" + integrity sha512-x2gHmaLlBJ01R3Oo3SDza5Xt643IEvNMgA6AjyvAK+dVwfLDKG5eNTRnLuTEGVasJ+xpVFwgZQVsXcbJEaL8hQ== dependencies: - "@budibase/backend-core" "1.3.15-alpha.7" - "@budibase/types" "1.3.15-alpha.7" + "@budibase/backend-core" "1.3.15-alpha.8" + "@budibase/types" "1.3.15-alpha.8" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.15-alpha.7": - version "1.3.15-alpha.7" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.7.tgz#c69a38194786ea66a2c6137aa961292902472ee9" - integrity sha512-9XW5Qr0FxXRO5rC1SlwS8dcDDPYGEG5+tJcrQ0gzk+5uzQfYIB/crhB0z++9vAwkBEm09XKbjBvdf4w5haEi2w== +"@budibase/types@1.3.15-alpha.8": + version "1.3.15-alpha.8" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.8.tgz#046c1bb6c62037a4048d513d4074132599ab5033" + integrity sha512-Z74soj0Tp6x5M+OO+4nqAUSzVkjWmGjDM6y+KTlfGT/Q4Ecq1xz+ftaHNS8f7KdhHZGkjACX4ad/34kdWJdWoQ== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 5bf9d38233aee1f117a4c0ac8ba3782763fedb36 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Wed, 14 Sep 2022 15:21:19 +0000 Subject: [PATCH 57/94] v1.3.18 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 4 ++-- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 10 +++++----- 11 files changed, 30 insertions(+), 30 deletions(-) diff --git a/lerna.json b/lerna.json index eb7210ee53..1c19e55de0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.17", + "version": "1.3.18", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 76e2a66dbf..2b491715bc 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.17", + "version": "1.3.18", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.3.17", + "@budibase/types": "^1.3.18", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0b36a31286..b554bdfc21 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": "1.3.17", + "version": "1.3.18", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.3.17", + "@budibase/string-templates": "^1.3.18", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index d2944fd37f..5de1f5ecb6 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.17", + "version": "1.3.18", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.3.17", - "@budibase/client": "^1.3.17", - "@budibase/frontend-core": "^1.3.17", - "@budibase/string-templates": "^1.3.17", + "@budibase/bbui": "^1.3.18", + "@budibase/client": "^1.3.18", + "@budibase/frontend-core": "^1.3.18", + "@budibase/string-templates": "^1.3.18", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 983978c0be..274522bc53 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.17", + "version": "1.3.18", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,7 +26,7 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "^1.3.17", + "@budibase/backend-core": "^1.3.18", "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 c60b65848c..c7a28cc163 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.17", + "version": "1.3.18", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.3.17", - "@budibase/frontend-core": "^1.3.17", - "@budibase/string-templates": "^1.3.17", + "@budibase/bbui": "^1.3.18", + "@budibase/frontend-core": "^1.3.18", + "@budibase/string-templates": "^1.3.18", "@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 732db93e10..aab5cb7bd9 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.17", + "version": "1.3.18", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.3.17", + "@budibase/bbui": "^1.3.18", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 609d7e82f3..0fc54e5d87 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.17", + "version": "1.3.18", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.3.17", - "@budibase/client": "^1.3.17", + "@budibase/backend-core": "^1.3.18", + "@budibase/client": "^1.3.18", "@budibase/pro": "1.3.17", - "@budibase/string-templates": "^1.3.17", - "@budibase/types": "^1.3.17", + "@budibase/string-templates": "^1.3.18", + "@budibase/types": "^1.3.18", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index eaf1ccba14..65ee9895bf 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.17", + "version": "1.3.18", "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 0df1a5519c..bc59e79328 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.17", + "version": "1.3.18", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 2e7ada0928..5435dc204f 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.17", + "version": "1.3.18", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.3.17", + "@budibase/backend-core": "^1.3.18", "@budibase/pro": "1.3.17", - "@budibase/string-templates": "^1.3.17", - "@budibase/types": "^1.3.17", + "@budibase/string-templates": "^1.3.18", + "@budibase/types": "^1.3.18", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", @@ -105,4 +105,4 @@ ] }, "gitHead": "d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc" -} \ No newline at end of file +} From 32b6db34790dd58ac35d1168c6e03b4e461a08ad Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Wed, 14 Sep 2022 15:24:43 +0000 Subject: [PATCH 58/94] Update pro version to 1.3.18 --- 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 0fc54e5d87..a95993467c 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.3.18", "@budibase/client": "^1.3.18", - "@budibase/pro": "1.3.17", + "@budibase/pro": "1.3.18", "@budibase/string-templates": "^1.3.18", "@budibase/types": "^1.3.18", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 406d93d873..0f07a6d623 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.17": - version "1.3.17" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.17.tgz#9d1266d044f5ca1a787182a64a7574a45cbeaea9" - integrity sha512-h7wshkCzkk0aGo4+FP9RUSJp6vJB0vHLkXu8Px98MuP991saU7YePhpKGNg9mnAAWGgmaI/Yb+MmLoXD1T7a7w== +"@budibase/backend-core@1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.18.tgz#5ef26e3283f46b321103766b0359ca72035c8942" + integrity sha512-utux5ydlnejKavU2H2HlCJkIyymVmGj+rVJp+SR1JrtPW2wkzHzpYn2k9eXFOYnAwqTF8jpCj4FVOEeDTfQcbw== dependencies: - "@budibase/types" "^1.3.17" + "@budibase/types" "^1.3.18" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1179,13 +1179,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.17": - version "1.3.17" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.17.tgz#ef19f00e22a347498bb036db71ee1fa63384500c" - integrity sha512-WwJPM/bs23vGeW/hw3Tl9l5adVMjgyRkaoCFUDFxbwnTpkl6c2sfrwa1xMDJPYbXCFWHcOqQitKjSjRP3i5LJw== +"@budibase/pro@1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.18.tgz#35a59e86c00971dd77a0b196e381a5ffd3be767c" + integrity sha512-aFGUr/ut4Ki56qLSdFaDLoEIPmwMqT5dGmY1xBT3Bwvhoq7hXevk1bcPFGj0rWBJnYG9zg/jmik9V4mE/lUOag== dependencies: - "@budibase/backend-core" "1.3.17" - "@budibase/types" "1.3.17" + "@budibase/backend-core" "1.3.18" + "@budibase/types" "1.3.18" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1208,10 +1208,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.17", "@budibase/types@^1.3.17": - version "1.3.17" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.17.tgz#f0eba7a659a98b69b978d4ebac9a7080ea33f9ac" - integrity sha512-eBkAonREYGuxkUZgChBgZ7RMd38StpG2D3rP5Tw+YpxxZKp43SNtt9ppZeHLnPc+9QiwVgCF4SMHZCOjbCPRlg== +"@budibase/types@1.3.18", "@budibase/types@^1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.18.tgz#cd65213f476a2f37065796d0ccba18c8e8e07504" + integrity sha512-bMtS2RbbI3Ztl5aAwEVlsK+2PQ0vRSZm8n6YDRjC9Arc94B4GDl/sqowRndKYqVtUeA/gVW0HH8x+qzhuMX6Dw== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 5435dc204f..c4ce118996 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.3.18", - "@budibase/pro": "1.3.17", + "@budibase/pro": "1.3.18", "@budibase/string-templates": "^1.3.18", "@budibase/types": "^1.3.18", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 15b9021ef5..b6dd949d64 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.17": - version "1.3.17" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.17.tgz#9d1266d044f5ca1a787182a64a7574a45cbeaea9" - integrity sha512-h7wshkCzkk0aGo4+FP9RUSJp6vJB0vHLkXu8Px98MuP991saU7YePhpKGNg9mnAAWGgmaI/Yb+MmLoXD1T7a7w== +"@budibase/backend-core@1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.18.tgz#5ef26e3283f46b321103766b0359ca72035c8942" + integrity sha512-utux5ydlnejKavU2H2HlCJkIyymVmGj+rVJp+SR1JrtPW2wkzHzpYn2k9eXFOYnAwqTF8jpCj4FVOEeDTfQcbw== dependencies: - "@budibase/types" "^1.3.17" + "@budibase/types" "^1.3.18" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -326,21 +326,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.17": - version "1.3.17" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.17.tgz#ef19f00e22a347498bb036db71ee1fa63384500c" - integrity sha512-WwJPM/bs23vGeW/hw3Tl9l5adVMjgyRkaoCFUDFxbwnTpkl6c2sfrwa1xMDJPYbXCFWHcOqQitKjSjRP3i5LJw== +"@budibase/pro@1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.18.tgz#35a59e86c00971dd77a0b196e381a5ffd3be767c" + integrity sha512-aFGUr/ut4Ki56qLSdFaDLoEIPmwMqT5dGmY1xBT3Bwvhoq7hXevk1bcPFGj0rWBJnYG9zg/jmik9V4mE/lUOag== dependencies: - "@budibase/backend-core" "1.3.17" - "@budibase/types" "1.3.17" + "@budibase/backend-core" "1.3.18" + "@budibase/types" "1.3.18" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.17", "@budibase/types@^1.3.17": - version "1.3.17" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.17.tgz#f0eba7a659a98b69b978d4ebac9a7080ea33f9ac" - integrity sha512-eBkAonREYGuxkUZgChBgZ7RMd38StpG2D3rP5Tw+YpxxZKp43SNtt9ppZeHLnPc+9QiwVgCF4SMHZCOjbCPRlg== +"@budibase/types@1.3.18", "@budibase/types@^1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.18.tgz#cd65213f476a2f37065796d0ccba18c8e8e07504" + integrity sha512-bMtS2RbbI3Ztl5aAwEVlsK+2PQ0vRSZm8n6YDRjC9Arc94B4GDl/sqowRndKYqVtUeA/gVW0HH8x+qzhuMX6Dw== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From d7f38a38bcfec28c654d7cf694760ebf56dcc055 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 14 Sep 2022 17:35:46 +0100 Subject: [PATCH 59/94] Adding types for plugin events, specifically for plugin init, import and deletion, this is across the CLI and the server. --- .../src/events/publishers/datasource.ts | 10 +++++ .../src/events/publishers/index.ts | 1 + .../src/events/publishers/plugin.ts | 41 +++++++++++++++++++ packages/cli/src/constants.js | 3 ++ packages/cli/src/events.js | 11 +++++ packages/cli/src/hosting/index.js | 12 ++---- packages/cli/src/plugins/index.js | 13 ++++-- .../src/api/controllers/plugin/index.ts | 13 +++--- packages/types/src/documents/plugin/index.ts | 15 +++++++ packages/types/src/sdk/events/datasource.ts | 3 ++ packages/types/src/sdk/events/event.ts | 5 +++ packages/types/src/sdk/events/index.ts | 1 + packages/types/src/sdk/events/plugin.ts | 26 ++++++++++++ 13 files changed, 137 insertions(+), 17 deletions(-) create mode 100644 packages/backend-core/src/events/publishers/plugin.ts create mode 100644 packages/cli/src/events.js create mode 100644 packages/types/src/sdk/events/plugin.ts diff --git a/packages/backend-core/src/events/publishers/datasource.ts b/packages/backend-core/src/events/publishers/datasource.ts index 3cd68033fc..d3ea7402f9 100644 --- a/packages/backend-core/src/events/publishers/datasource.ts +++ b/packages/backend-core/src/events/publishers/datasource.ts @@ -5,8 +5,15 @@ import { DatasourceCreatedEvent, DatasourceUpdatedEvent, DatasourceDeletedEvent, + SourceName, } from "@budibase/types" +function isCustom(datasource: Datasource) { + const sources = Object.values(SourceName) + // if not in the base source list, then it must be custom + return !sources.includes(datasource.source) +} + export async function created( datasource: Datasource, timestamp?: string | number @@ -14,6 +21,7 @@ export async function created( const properties: DatasourceCreatedEvent = { datasourceId: datasource._id as string, source: datasource.source, + custom: isCustom(datasource), } await publishEvent(Event.DATASOURCE_CREATED, properties, timestamp) } @@ -22,6 +30,7 @@ export async function updated(datasource: Datasource) { const properties: DatasourceUpdatedEvent = { datasourceId: datasource._id as string, source: datasource.source, + custom: isCustom(datasource), } await publishEvent(Event.DATASOURCE_UPDATED, properties) } @@ -30,6 +39,7 @@ export async function deleted(datasource: Datasource) { const properties: DatasourceDeletedEvent = { datasourceId: datasource._id as string, source: datasource.source, + custom: isCustom(datasource), } await publishEvent(Event.DATASOURCE_DELETED, properties) } diff --git a/packages/backend-core/src/events/publishers/index.ts b/packages/backend-core/src/events/publishers/index.ts index 57fd0bf8e2..6fe42c4bda 100644 --- a/packages/backend-core/src/events/publishers/index.ts +++ b/packages/backend-core/src/events/publishers/index.ts @@ -18,3 +18,4 @@ export * as view from "./view" export * as installation from "./installation" export * as backfill from "./backfill" export * as group from "./group" +export * as plugin from "./plugin" diff --git a/packages/backend-core/src/events/publishers/plugin.ts b/packages/backend-core/src/events/publishers/plugin.ts new file mode 100644 index 0000000000..4e4d87cf56 --- /dev/null +++ b/packages/backend-core/src/events/publishers/plugin.ts @@ -0,0 +1,41 @@ +import { publishEvent } from "../events" +import { + Event, + Plugin, + PluginDeletedEvent, + PluginImportedEvent, + PluginInitEvent, +} from "@budibase/types" + +export async function init(plugin: Plugin) { + const properties: PluginInitEvent = { + type: plugin.schema.type, + name: plugin.name, + description: plugin.description, + version: plugin.version, + } + await publishEvent(Event.PLUGIN_INIT, properties) +} + +export async function imported(plugin: Plugin) { + const properties: PluginImportedEvent = { + pluginId: plugin._id as string, + type: plugin.schema.type, + source: plugin.source, + name: plugin.name, + description: plugin.description, + version: plugin.version, + } + await publishEvent(Event.PLUGIN_IMPORTED, properties) +} + +export async function deleted(plugin: Plugin) { + const properties: PluginDeletedEvent = { + pluginId: plugin._id as string, + type: plugin.schema.type, + name: plugin.name, + description: plugin.description, + version: plugin.version, + } + await publishEvent(Event.PLUGIN_DELETED, properties) +} diff --git a/packages/cli/src/constants.js b/packages/cli/src/constants.js index 8fe6c8602d..aa49523d4e 100644 --- a/packages/cli/src/constants.js +++ b/packages/cli/src/constants.js @@ -1,3 +1,5 @@ +const { Event } = require("@budibase/types") + exports.CommandWords = { BACKUPS: "backups", HOSTING: "hosting", @@ -15,6 +17,7 @@ exports.AnalyticsEvents = { OptOut: "analytics:opt:out", OptIn: "analytics:opt:in", SelfHostInit: "hosting:init", + PluginInit: Event.PLUGIN_INIT, } exports.POSTHOG_TOKEN = "phc_yGOn4i7jWKaCTapdGR6lfA4AvmuEQ2ijn5zAVSFYPlS" diff --git a/packages/cli/src/events.js b/packages/cli/src/events.js new file mode 100644 index 0000000000..63d4fca1ea --- /dev/null +++ b/packages/cli/src/events.js @@ -0,0 +1,11 @@ +const AnalyticsClient = require("./analytics/Client") + +const client = new AnalyticsClient() + +exports.captureEvent = (event, properties) => { + client.capture({ + distinctId: "cli", + event, + properties, + }) +} diff --git a/packages/cli/src/hosting/index.js b/packages/cli/src/hosting/index.js index 2ebcee43a5..ae62c45992 100644 --- a/packages/cli/src/hosting/index.js +++ b/packages/cli/src/hosting/index.js @@ -13,7 +13,7 @@ const fs = require("fs") const compose = require("docker-compose") const makeEnv = require("./makeEnv") const axios = require("axios") -const AnalyticsClient = require("../analytics/Client") +const { captureEvent } = require("../events") const BUDIBASE_SERVICES = ["app-service", "worker-service", "proxy-service"] const ERROR_FILE = "docker-error.log" @@ -22,8 +22,6 @@ const FILE_URLS = [ ] const DO_USER_DATA_URL = "http://169.254.169.254/metadata/v1/user-data" -const client = new AnalyticsClient() - async function downloadFiles() { const promises = [] for (let url of FILE_URLS) { @@ -72,12 +70,8 @@ async function init(type) { return } } - client.capture({ - distinctId: "cli", - event: AnalyticsEvents.SelfHostInit, - properties: { - type, - }, + captureEvent(AnalyticsEvents.SelfHostInit, { + type, }) await downloadFiles() const config = isQuick ? makeEnv.QUICK_CONFIG : {} diff --git a/packages/cli/src/plugins/index.js b/packages/cli/src/plugins/index.js index d184c6e70a..66cca8c19d 100644 --- a/packages/cli/src/plugins/index.js +++ b/packages/cli/src/plugins/index.js @@ -1,5 +1,5 @@ const Command = require("../structures/Command") -const { CommandWords } = require("../constants") +const { CommandWords, AnalyticsEvents } = require("../constants") const { getSkeleton, fleshOutSkeleton } = require("./skeleton") const questions = require("../questions") const fs = require("fs") @@ -8,6 +8,7 @@ const { validate } = require("@budibase/backend-core/plugins") const { runPkgCommand } = require("../exec") const { join } = require("path") const { success, error, info, moveDirectory } = require("../utils") +const { captureEvent } = require("../events") function checkInPlugin() { if (!fs.existsSync("package.json")) { @@ -58,7 +59,7 @@ async function init(opts) { ) return } - const desc = await questions.string( + const description = await questions.string( "Description", `An amazing Budibase ${type}!` ) @@ -67,7 +68,7 @@ async function init(opts) { // get the skeleton console.log(info("Retrieving project...")) await getSkeleton(type, name) - await fleshOutSkeleton(type, name, desc, version) + await fleshOutSkeleton(type, name, description, version) console.log(info("Installing dependencies...")) await runPkgCommand("install", join(process.cwd(), name)) // if no parent directory desired move to cwd @@ -77,6 +78,12 @@ async function init(opts) { } else { console.log(info(`Plugin created in directory "${name}"`)) } + captureEvent(AnalyticsEvents.PluginInit, { + type, + name, + description, + version, + }) } async function verify() { diff --git a/packages/server/src/api/controllers/plugin/index.ts b/packages/server/src/api/controllers/plugin/index.ts index 0cd074e16b..f560572082 100644 --- a/packages/server/src/api/controllers/plugin/index.ts +++ b/packages/server/src/api/controllers/plugin/index.ts @@ -8,9 +8,10 @@ import { uploadDirectory, deleteFolder, } from "@budibase/backend-core/objectStore" -import { PluginType, FileType, PluginSource } from "@budibase/types" +import { PluginType, FileType, PluginSource, Plugin } from "@budibase/types" import env from "../../../environment" import { ClientAppSocket } from "../../../websocket" +import { events } from "@budibase/backend-core" export async function getPlugins(type?: PluginType) { const db = getGlobalDB() @@ -113,11 +114,12 @@ export async function destroy(ctx: any) { const { pluginId } = ctx.params try { - const plugin = await db.get(pluginId) + const plugin: Plugin = await db.get(pluginId) const bucketPath = `${plugin.name}/` await deleteFolder(ObjectStoreBuckets.PLUGINS, bucketPath) await db.remove(pluginId, plugin._rev) + await events.plugin.deleted(plugin) } catch (err: any) { const errMsg = err?.message ? err?.message : err @@ -131,7 +133,7 @@ export async function destroy(ctx: any) { export async function storePlugin( metadata: any, directory: any, - source?: string + source?: PluginSource ) { const db = getGlobalDB() const version = metadata.package.version, @@ -173,7 +175,7 @@ export async function storePlugin( } catch (err) { rev = undefined } - let doc = { + let doc: Plugin = { _id: pluginId, _rev: rev, ...metadata, @@ -192,6 +194,7 @@ export async function storePlugin( } const response = await db.put(doc) + await events.plugin.imported(doc) ClientAppSocket.emit("plugin-update", { name, hash }) return { ...doc, @@ -199,7 +202,7 @@ export async function storePlugin( } } -export async function processPlugin(plugin: FileType, source?: string) { +export async function processPlugin(plugin: FileType, source?: PluginSource) { const { metadata, directory } = await fileUpload(plugin) validate(metadata?.schema) diff --git a/packages/types/src/documents/plugin/index.ts b/packages/types/src/documents/plugin/index.ts index 7fbfececd6..8b9607c41d 100644 --- a/packages/types/src/documents/plugin/index.ts +++ b/packages/types/src/documents/plugin/index.ts @@ -1,3 +1,5 @@ +import { Document } from "../document" + export enum PluginType { DATASOURCE = "datasource", COMPONENT = "component", @@ -14,4 +16,17 @@ export interface FileType { name: string } +export interface Plugin extends Document { + description: string + name: string + version: string + jsUrl?: string + source: PluginSource + package: { [key: string]: any } + schema: { + type: PluginType + [key: string]: any + } +} + export const PLUGIN_TYPE_ARR = Object.values(PluginType) diff --git a/packages/types/src/sdk/events/datasource.ts b/packages/types/src/sdk/events/datasource.ts index 20d1b78fbb..1d07cf055a 100644 --- a/packages/types/src/sdk/events/datasource.ts +++ b/packages/types/src/sdk/events/datasource.ts @@ -3,14 +3,17 @@ import { BaseEvent } from "./event" export interface DatasourceCreatedEvent extends BaseEvent { datasourceId: string source: string + custom: boolean } export interface DatasourceUpdatedEvent extends BaseEvent { datasourceId: string source: string + custom: boolean } export interface DatasourceDeletedEvent extends BaseEvent { datasourceId: string source: string + custom: boolean } diff --git a/packages/types/src/sdk/events/event.ts b/packages/types/src/sdk/events/event.ts index d7086370ec..de56740e44 100644 --- a/packages/types/src/sdk/events/event.ts +++ b/packages/types/src/sdk/events/event.ts @@ -158,6 +158,11 @@ export enum Event { USER_GROUP_USERS_REMOVED = "user_group:users_deleted", USER_GROUP_PERMISSIONS_EDITED = "user_group:permissions_edited", USER_GROUP_ONBOARDING = "user_group:onboarding_added", + + // PLUGIN + PLUGIN_INIT = "plugin:init", + PLUGIN_IMPORTED = "plugin:imported", + PLUGIN_DELETED = "plugin:deleted", } // properties added at the final stage of the event pipeline diff --git a/packages/types/src/sdk/events/index.ts b/packages/types/src/sdk/events/index.ts index 88d5a12e6e..cc0c2b9aa1 100644 --- a/packages/types/src/sdk/events/index.ts +++ b/packages/types/src/sdk/events/index.ts @@ -19,3 +19,4 @@ export * from "./account" export * from "./backfill" export * from "./identification" export * from "./userGroup" +export * from "./plugin" diff --git a/packages/types/src/sdk/events/plugin.ts b/packages/types/src/sdk/events/plugin.ts new file mode 100644 index 0000000000..a32589493a --- /dev/null +++ b/packages/types/src/sdk/events/plugin.ts @@ -0,0 +1,26 @@ +import { BaseEvent } from "./event" +import { PluginSource, PluginType } from "../../" + +export interface PluginInitEvent extends BaseEvent { + type: PluginType + name: string + version: string + description: string +} + +export interface PluginImportedEvent extends BaseEvent { + pluginId: string + type: PluginType + source: PluginSource + name: string + version: string + description: string +} + +export interface PluginDeletedEvent extends BaseEvent { + pluginId: string + type: PluginType + name: string + version: string + description: string +} From 46eece76b6b6b41113af134325bc8924b96e444b Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 14 Sep 2022 16:58:05 +0000 Subject: [PATCH 60/94] v1.3.15-alpha.9 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index f8b68054e7..ea81293bd9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index b9cdf99da8..24df48b8f7 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.15-alpha.8", + "@budibase/types": "1.3.15-alpha.9", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index af06d0c38c..c05ea9b038 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": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.15-alpha.8", + "@budibase/string-templates": "1.3.15-alpha.9", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index ea2db8412c..18e0c56eb1 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.15-alpha.8", - "@budibase/client": "1.3.15-alpha.8", - "@budibase/frontend-core": "1.3.15-alpha.8", - "@budibase/string-templates": "1.3.15-alpha.8", + "@budibase/bbui": "1.3.15-alpha.9", + "@budibase/client": "1.3.15-alpha.9", + "@budibase/frontend-core": "1.3.15-alpha.9", + "@budibase/string-templates": "1.3.15-alpha.9", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 51d940cdaf..32c377e842 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.15-alpha.8", - "@budibase/string-templates": "1.3.15-alpha.8", - "@budibase/types": "1.3.15-alpha.8", + "@budibase/backend-core": "1.3.15-alpha.9", + "@budibase/string-templates": "1.3.15-alpha.9", + "@budibase/types": "1.3.15-alpha.9", "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 75b11bd879..0ed9b93428 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.15-alpha.8", - "@budibase/frontend-core": "1.3.15-alpha.8", - "@budibase/string-templates": "1.3.15-alpha.8", + "@budibase/bbui": "1.3.15-alpha.9", + "@budibase/frontend-core": "1.3.15-alpha.9", + "@budibase/string-templates": "1.3.15-alpha.9", "@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 1da7a73d83..7c915469b3 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.15-alpha.8", + "@budibase/bbui": "1.3.15-alpha.9", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 09ac78d9d8..a4a7876cbe 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.15-alpha.8", - "@budibase/client": "1.3.15-alpha.8", + "@budibase/backend-core": "1.3.15-alpha.9", + "@budibase/client": "1.3.15-alpha.9", "@budibase/pro": "1.3.15-alpha.8", - "@budibase/string-templates": "1.3.15-alpha.8", - "@budibase/types": "1.3.15-alpha.8", + "@budibase/string-templates": "1.3.15-alpha.9", + "@budibase/types": "1.3.15-alpha.9", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index d1b65fff06..40958b3434 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "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 c59f9c005a..b42417b229 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index b67369d291..3e9cd3de37 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.15-alpha.8", + "version": "1.3.15-alpha.9", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -35,10 +35,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.15-alpha.8", + "@budibase/backend-core": "1.3.15-alpha.9", "@budibase/pro": "1.3.15-alpha.8", - "@budibase/string-templates": "1.3.15-alpha.8", - "@budibase/types": "1.3.15-alpha.8", + "@budibase/string-templates": "1.3.15-alpha.9", + "@budibase/types": "1.3.15-alpha.9", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 63b7c9d9c553836a86960d0afe5ce8d3927a377c Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 14 Sep 2022 17:01:11 +0000 Subject: [PATCH 61/94] Update pro version to 1.3.15-alpha.9 --- 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 a4a7876cbe..f951743347 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.15-alpha.9", "@budibase/client": "1.3.15-alpha.9", - "@budibase/pro": "1.3.15-alpha.8", + "@budibase/pro": "1.3.15-alpha.9", "@budibase/string-templates": "1.3.15-alpha.9", "@budibase/types": "1.3.15-alpha.9", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 40985a0376..62cc591d47 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.15-alpha.8": - version "1.3.15-alpha.8" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.8.tgz#e4c18550f81fc250fe554e46a376c88d613f97fe" - integrity sha512-Ck2p5nP5lpv7XkowVBxvgVxlAv7ZLWL1d0RePIpTQAjWH+Fmq9RG9vvxfKXVidQ1ej5Sv3PQXItSFBMIkmix+g== +"@budibase/backend-core@1.3.15-alpha.9": + version "1.3.15-alpha.9" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.9.tgz#06c582d1aac93ba689a9738ea35939ccc5bac430" + integrity sha512-uShQQVPE2EsfPY6BNZnl/yKQoR8VwJyiIfCNE/EYl5aIVvhrqva+vA7JeYAs4sf/vf8Y5kkZaJGzfvzEws4dHg== dependencies: - "@budibase/types" "1.3.15-alpha.8" + "@budibase/types" "1.3.15-alpha.9" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.15-alpha.8": - version "1.3.15-alpha.8" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.8.tgz#b328d53506751edbf22f4e39b1ca15bd3202b2bc" - integrity sha512-x2gHmaLlBJ01R3Oo3SDza5Xt643IEvNMgA6AjyvAK+dVwfLDKG5eNTRnLuTEGVasJ+xpVFwgZQVsXcbJEaL8hQ== +"@budibase/pro@1.3.15-alpha.9": + version "1.3.15-alpha.9" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.9.tgz#cb0ab3041df4c412eed9a8c7950f20ca0e3b62c5" + integrity sha512-1eE7O/bYeHxSoG8V61B2OZN3bGD44RAinAFJLHvBK7ncHZSTOOH4fe5HLvFiWPm0gV5ONDHpqr9W5Vs6ZBXukQ== dependencies: - "@budibase/backend-core" "1.3.15-alpha.8" - "@budibase/types" "1.3.15-alpha.8" + "@budibase/backend-core" "1.3.15-alpha.9" + "@budibase/types" "1.3.15-alpha.9" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.15-alpha.8": - version "1.3.15-alpha.8" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.8.tgz#046c1bb6c62037a4048d513d4074132599ab5033" - integrity sha512-Z74soj0Tp6x5M+OO+4nqAUSzVkjWmGjDM6y+KTlfGT/Q4Ecq1xz+ftaHNS8f7KdhHZGkjACX4ad/34kdWJdWoQ== +"@budibase/types@1.3.15-alpha.9": + version "1.3.15-alpha.9" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.9.tgz#443cab0ca757a37af7a45f99caac35643fe273e5" + integrity sha512-r1Z2PLPF3nR/bGzVyZ0/6RcOYb4Csmk4J/b1KJ57wzTeDdsRwgVgGO6QS+XYdwZctsKDNOm9FvpIQj3tNM8Rjw== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 3e9cd3de37..7495d39eeb 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -36,7 +36,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.15-alpha.9", - "@budibase/pro": "1.3.15-alpha.8", + "@budibase/pro": "1.3.15-alpha.9", "@budibase/string-templates": "1.3.15-alpha.9", "@budibase/types": "1.3.15-alpha.9", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index f3e768eaad..828b02f1b8 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.15-alpha.8": - version "1.3.15-alpha.8" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.8.tgz#e4c18550f81fc250fe554e46a376c88d613f97fe" - integrity sha512-Ck2p5nP5lpv7XkowVBxvgVxlAv7ZLWL1d0RePIpTQAjWH+Fmq9RG9vvxfKXVidQ1ej5Sv3PQXItSFBMIkmix+g== +"@budibase/backend-core@1.3.15-alpha.9": + version "1.3.15-alpha.9" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.15-alpha.9.tgz#06c582d1aac93ba689a9738ea35939ccc5bac430" + integrity sha512-uShQQVPE2EsfPY6BNZnl/yKQoR8VwJyiIfCNE/EYl5aIVvhrqva+vA7JeYAs4sf/vf8Y5kkZaJGzfvzEws4dHg== dependencies: - "@budibase/types" "1.3.15-alpha.8" + "@budibase/types" "1.3.15-alpha.9" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.15-alpha.8": - version "1.3.15-alpha.8" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.8.tgz#b328d53506751edbf22f4e39b1ca15bd3202b2bc" - integrity sha512-x2gHmaLlBJ01R3Oo3SDza5Xt643IEvNMgA6AjyvAK+dVwfLDKG5eNTRnLuTEGVasJ+xpVFwgZQVsXcbJEaL8hQ== +"@budibase/pro@1.3.15-alpha.9": + version "1.3.15-alpha.9" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.15-alpha.9.tgz#cb0ab3041df4c412eed9a8c7950f20ca0e3b62c5" + integrity sha512-1eE7O/bYeHxSoG8V61B2OZN3bGD44RAinAFJLHvBK7ncHZSTOOH4fe5HLvFiWPm0gV5ONDHpqr9W5Vs6ZBXukQ== dependencies: - "@budibase/backend-core" "1.3.15-alpha.8" - "@budibase/types" "1.3.15-alpha.8" + "@budibase/backend-core" "1.3.15-alpha.9" + "@budibase/types" "1.3.15-alpha.9" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.15-alpha.8": - version "1.3.15-alpha.8" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.8.tgz#046c1bb6c62037a4048d513d4074132599ab5033" - integrity sha512-Z74soj0Tp6x5M+OO+4nqAUSzVkjWmGjDM6y+KTlfGT/Q4Ecq1xz+ftaHNS8f7KdhHZGkjACX4ad/34kdWJdWoQ== +"@budibase/types@1.3.15-alpha.9": + version "1.3.15-alpha.9" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.15-alpha.9.tgz#443cab0ca757a37af7a45f99caac35643fe273e5" + integrity sha512-r1Z2PLPF3nR/bGzVyZ0/6RcOYb4Csmk4J/b1KJ57wzTeDdsRwgVgGO6QS+XYdwZctsKDNOm9FvpIQj3tNM8Rjw== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From bcd6b711bf442628278900917587660d494fd16c Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 14 Sep 2022 18:04:58 +0100 Subject: [PATCH 62/94] Apps Page update to hide apps when sessions are maxed. General refactoring and updates to the licensing notification flows. --- packages/bbui/src/Banner/BannerDisplay.svelte | 6 +- packages/bbui/src/Stores/banner.js | 22 ++++-- .../bbui/src/Tooltip/TooltipWrapper.svelte | 3 +- packages/bbui/src/index.js | 2 +- .../src/builderStore/store/temporal.js | 3 +- .../licensing/AccountDowngradedModal.svelte | 14 ++-- .../portal/licensing/AppLimitModal.svelte | 9 ++- .../licensing/DayPassWarningModal.svelte | 52 +++++++++---- .../portal/licensing/LicensingOverlays.svelte | 31 ++++---- .../licensing/PaymentFailedModal.svelte | 25 +++---- .../components/portal/licensing/constants.js | 2 +- .../{banners.js => licensingBanners.js} | 74 ++++++++++++------- .../src/pages/builder/apps/index.svelte | 22 +++++- .../builder/src/stores/portal/licensing.js | 72 ++++++++---------- 14 files changed, 198 insertions(+), 139 deletions(-) rename packages/builder/src/components/portal/licensing/{banners.js => licensingBanners.js} (62%) diff --git a/packages/bbui/src/Banner/BannerDisplay.svelte b/packages/bbui/src/Banner/BannerDisplay.svelte index 4785fcb9ba..9ea2eaf2ec 100644 --- a/packages/bbui/src/Banner/BannerDisplay.svelte +++ b/packages/bbui/src/Banner/BannerDisplay.svelte @@ -16,13 +16,15 @@ extraButtonText={message.extraButtonText} extraButtonAction={message.extraButtonAction} on:change={() => { - message.onChange() + if (message.onChange) { + message.onChange() + } }} showCloseButton={typeof message.showCloseButton === "boolean" ? message.showCloseButton : true} > - + {message.message} diff --git a/packages/bbui/src/Stores/banner.js b/packages/bbui/src/Stores/banner.js index 745c77e188..ba6d187d97 100644 --- a/packages/bbui/src/Stores/banner.js +++ b/packages/bbui/src/Stores/banner.js @@ -1,5 +1,10 @@ import { writable } from "svelte/store" +export const BANNER_TYPES = { + INFO: "info", + NEGATIVE: "negative", +} + export function createBannerStore() { const DEFAULT_CONFIG = { messages: [], @@ -22,19 +27,26 @@ export function createBannerStore() { const showStatus = async () => { const config = { message: "Some systems are experiencing issues", - type: "negative", + type: BANNER_TYPES.NEGATIVE, extraButtonText: "View Status", extraButtonAction: () => window.open("https://status.budibase.com/"), } - await show(config) + await queue([config]) } const queue = async entries => { + const priority = { + [BANNER_TYPES.NEGATIVE]: 0, + [BANNER_TYPES.INFO]: 1, + } banner.update(store => { - const sorted = [...store.messages, ...entries].sort( - (a, b) => a.priority > b.priority - ) + const sorted = [...store.messages, ...entries].sort((a, b) => { + if (priority[a.type] == priority[b.type]) { + return 0 + } + return priority[a.type] < priority[b.type] ? -1 : 1 + }) return { ...store, messages: sorted, diff --git a/packages/bbui/src/Tooltip/TooltipWrapper.svelte b/packages/bbui/src/Tooltip/TooltipWrapper.svelte index 0c6c8e167b..e7a96f6cd8 100644 --- a/packages/bbui/src/Tooltip/TooltipWrapper.svelte +++ b/packages/bbui/src/Tooltip/TooltipWrapper.svelte @@ -4,6 +4,7 @@ export let tooltip = "" export let size = "M" + export let disabled = true let showTooltip = false @@ -19,7 +20,7 @@ on:mouseleave={() => (showTooltip = false)} on:focus > - +
{#if showTooltip}
diff --git a/packages/bbui/src/index.js b/packages/bbui/src/index.js index 11424b1261..ead226bdc3 100644 --- a/packages/bbui/src/index.js +++ b/packages/bbui/src/index.js @@ -95,7 +95,7 @@ export { default as clickOutside } from "./Actions/click_outside" // Stores export { notifications, createNotificationStore } from "./Stores/notifications" -export { banner } from "./Stores/banner" +export { banner, BANNER_TYPES } from "./Stores/banner" // Helpers export * as Helpers from "./helpers" diff --git a/packages/builder/src/builderStore/store/temporal.js b/packages/builder/src/builderStore/store/temporal.js index b8a75e1905..ca70fd6293 100644 --- a/packages/builder/src/builderStore/store/temporal.js +++ b/packages/builder/src/builderStore/store/temporal.js @@ -4,8 +4,7 @@ import { get } from "svelte/store" export const getTemporalStore = () => { const initialValue = {} - //const appId = window["##BUDIBASE_APP_ID##"] || "app" - const localStorageKey = `${123}.bb-temporal` + const localStorageKey = `bb-temporal` const store = createLocalStorageStore(localStorageKey, initialValue) const setExpiring = (key, data, duration) => { diff --git a/packages/builder/src/components/portal/licensing/AccountDowngradedModal.svelte b/packages/builder/src/components/portal/licensing/AccountDowngradedModal.svelte index 81fe340354..53683faa87 100644 --- a/packages/builder/src/components/portal/licensing/AccountDowngradedModal.svelte +++ b/packages/builder/src/components/portal/licensing/AccountDowngradedModal.svelte @@ -7,7 +7,8 @@ let accountDowngradeModal - const upgradeUrl = `${$admin.accountPortalUrl}/portal/upgrade` + $: accountUrl = $admin.accountPortalUrl + $: upgradeUrl = `${accountUrl}/portal/upgrade` export function show() { accountDowngradeModal.show() @@ -31,15 +32,12 @@ : null} > - The payment for your Business Subscription failed and we have downgraded - your account to the Free plan. - - - Update to Business to get all your apps and user sessions back up and - running. + The payment for your subscription has failed and we have downgraded your + account to the Free plan. + Upgrade to restore full functionality. {#if !$auth.user.accountPortalAccess} - Please contact the account holder. + Please contact the account holder to upgrade. {/if} diff --git a/packages/builder/src/components/portal/licensing/AppLimitModal.svelte b/packages/builder/src/components/portal/licensing/AppLimitModal.svelte index 45259edd76..39f553517e 100644 --- a/packages/builder/src/components/portal/licensing/AppLimitModal.svelte +++ b/packages/builder/src/components/portal/licensing/AppLimitModal.svelte @@ -6,7 +6,8 @@ let appLimitModal - const upgradeUrl = `${$admin.accountPortalUrl}/portal/upgrade` + $: accountUrl = $admin.accountPortalUrl + $: upgradeUrl = `${accountUrl}/portal/upgrade` export function show() { appLimitModal.show() @@ -19,7 +20,7 @@ You are currently on our Free plan. Upgrade - to our Pro plan to get unlimited apps. + to our Pro plan to get unlimited apps and additional features. {#if !$auth.user.accountPortalAccess} - Please contact the account holder. + Please contact the account holder to upgrade. {/if} diff --git a/packages/builder/src/components/portal/licensing/DayPassWarningModal.svelte b/packages/builder/src/components/portal/licensing/DayPassWarningModal.svelte index f164df1105..b1aade2ca5 100644 --- a/packages/builder/src/components/portal/licensing/DayPassWarningModal.svelte +++ b/packages/builder/src/components/portal/licensing/DayPassWarningModal.svelte @@ -1,31 +1,40 @@ - + {#if $auth.user.accountPortalAccess} { @@ -33,22 +42,37 @@ }} > - You have used {sessionsUsed}% of + You have used {dayPassesUsed}% of your plans Day Passes with {daysRemaining} day{daysRemaining == 1 ? "" : "s"} remaining. + + + - Upgrade your account to prevent your apps from going offline. + {dayPassesBody} {:else} - + - You have used {sessionsUsed}% of + You have used {dayPassesUsed}% of your plans Day Passes with {daysRemaining} day{daysRemaining == 1 ? "" : "s"} remaining. + + + - Please contact your account holder. + Please contact your account holder to upgrade. {/if} + + diff --git a/packages/builder/src/components/portal/licensing/LicensingOverlays.svelte b/packages/builder/src/components/portal/licensing/LicensingOverlays.svelte index 2a744179c0..8431b860e8 100644 --- a/packages/builder/src/components/portal/licensing/LicensingOverlays.svelte +++ b/packages/builder/src/components/portal/licensing/LicensingOverlays.svelte @@ -6,7 +6,7 @@ import PaymentFailedModal from "./PaymentFailedModal.svelte" import AccountDowngradedModal from "./AccountDowngradedModal.svelte" import { ExpiringKeys } from "./constants" - import { getBanners } from "./banners" + import { getBanners } from "./licensingBanners" import { banner } from "@budibase/bbui" const oneDayInSeconds = 86400 @@ -42,7 +42,7 @@ { key: ExpiringKeys.LICENSING_PAYMENT_FAILED, criteria: () => { - return $licensing.accountPastDue + return $licensing.accountPastDue && !$licensing.isFreePlan() }, action: () => { paymentFailedModal.show() @@ -69,14 +69,7 @@ }) } - $: if (userLoaded && licensingLoaded && loaded) { - queuedModals = processModals() - queuedBanners = getBanners() - showNext() - banner.queue(queuedBanners) - } - - const showNext = () => { + const showNextModal = () => { if (currentModalCfg) { currentModalCfg.cache() } @@ -88,6 +81,13 @@ } } + $: if (userLoaded && licensingLoaded && loaded) { + queuedModals = processModals() + queuedBanners = getBanners() + showNextModal() + banner.queue(queuedBanners) + } + onMount(async () => { auth.subscribe(state => { if (state.user && !userLoaded) { @@ -100,18 +100,13 @@ licensingLoaded = true } }) - - temporalStore.subscribe(state => { - console.log("Stored temporal ", state) - }) - loaded = true }) - - + + diff --git a/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte b/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte index f952684998..591742a3d0 100644 --- a/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte +++ b/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte @@ -7,10 +7,11 @@ export let onShow = () => {} let paymentFailedModal - let pastDueAt + let pastDueEndDate const paymentFailedTitle = "Payment failed" - const upgradeUrl = `${$admin.accountPortalUrl}/portal/upgrade` + $: accountUrl = $admin.accountPortalUrl + $: upgradeUrl = `${accountUrl}/portal/upgrade` export function show() { paymentFailedModal.show() @@ -21,12 +22,8 @@ } onMount(() => { - auth.subscribe(state => { - if (state.user && state.user.license?.billing?.subscription) { - pastDueAt = new Date( - state.user.license?.billing?.subscription.pastDueAt * 1000 - ) - } + licensing.subscribe(state => { + pastDueEndDate = state.pastDueEndDate }) }) @@ -48,11 +45,11 @@
- {`${$licensing.paymentDueDaysRemaining} day${ - $licensing.paymentDueDaysRemaining == 1 ? "" : "s" + {`${$licensing.pastDueDaysRemaining} day${ + $licensing.pastDueDaysRemaining == 1 ? "" : "s" } remaining`} - +
@@ -67,11 +64,11 @@ Please contact your account holder.
- {`${$licensing.paymentDueDaysRemaining} day${ - $licensing.paymentDueDaysRemaining == 1 ? "" : "s" + {`${$licensing.pastDueDaysRemaining} day${ + $licensing.pastDueDaysRemaining == 1 ? "" : "s" } remaining`} - +
diff --git a/packages/builder/src/components/portal/licensing/constants.js b/packages/builder/src/components/portal/licensing/constants.js index 6474b7c78f..57f3a36709 100644 --- a/packages/builder/src/components/portal/licensing/constants.js +++ b/packages/builder/src/components/portal/licensing/constants.js @@ -6,7 +6,7 @@ export const ExpiringKeys = { LICENSING_APP_LIMIT_MODAL: "licensing_app_limit_modal", LICENSING_ROWS_WARNING_BANNER: "licensing_rows_warning_banner", LICENSING_AUTOMATIONS_WARNING_BANNER: "licensing_automations_warning_banner", - LICENSING_QUERIES_WARNING_BANNER: "licensing_automations_warning_banner", + LICENSING_QUERIES_WARNING_BANNER: "licensing_queries_warning_banner", } export const StripeStatus = { diff --git a/packages/builder/src/components/portal/licensing/banners.js b/packages/builder/src/components/portal/licensing/licensingBanners.js similarity index 62% rename from packages/builder/src/components/portal/licensing/banners.js rename to packages/builder/src/components/portal/licensing/licensingBanners.js index 3f8a2fbb0f..37d8e4a540 100644 --- a/packages/builder/src/components/portal/licensing/banners.js +++ b/packages/builder/src/components/portal/licensing/licensingBanners.js @@ -2,9 +2,9 @@ import { ExpiringKeys } from "./constants" import { temporalStore } from "builderStore" import { admin, auth, licensing } from "stores/portal" import { get } from "svelte/store" +import { BANNER_TYPES } from "@budibase/bbui" const oneDayInSeconds = 86400 -const upgradeUrl = `${get(admin).accountPortalUrl}/portal/upgrade` const defaultCacheFn = key => { temporalStore.actions.setExpiring(key, {}, oneDayInSeconds) @@ -18,36 +18,47 @@ const defaultAction = key => { extraButtonText: "Upgrade Plan", extraButtonAction: () => { defaultCacheFn(key) - window.location.href = upgradeUrl + window.location.href = `${get(admin).accountPortalUrl}/portal/upgrade` }, } } -const buildUsageInfoBanner = (metricKey, metricLabel, cacheKey, percentage) => { +const buildUsageInfoBanner = ( + metricKey, + metricLabel, + cacheKey, + percentageThreshold, + customMessage +) => { const appAuth = get(auth) const appLicensing = get(licensing) + const displayPercent = + appLicensing?.usageMetrics[metricKey] > 100 + ? 100 + : appLicensing?.usageMetrics[metricKey] + let bannerConfig = { key: cacheKey, - type: "info", + type: BANNER_TYPES.INFO, onChange: () => { defaultCacheFn(cacheKey) }, - message: `You have used ${ - appLicensing?.usageMetrics[metricKey] - }% of your monthly usage of ${metricLabel} with ${ - appLicensing.quotaResetDaysRemaining - } day${ - appLicensing.quotaResetDaysRemaining == 1 ? "" : "s" - } remaining. All apps will be taken offline if this limit is reached. ${ - appAuth.user.accountPortalAccess - ? "" - : "Please contact your account holder." - }`, + message: customMessage + ? customMessage + : `You have used ${displayPercent}% of your monthly usage of ${metricLabel} with ${ + appLicensing.quotaResetDaysRemaining + } day${ + appLicensing.quotaResetDaysRemaining == 1 ? "" : "s" + } remaining. ${ + appAuth.user.accountPortalAccess + ? "" + : "Please contact your account holder to upgrade" + }`, criteria: () => { - return appLicensing?.usageMetrics[metricKey] >= percentage + return appLicensing?.usageMetrics[metricKey] >= percentageThreshold }, - priority: 0, //Banners.Priority 0, 1, 2 ?? + tooltip: appLicensing?.quotaResetDate, } return !get(auth).user.accountPortalAccess @@ -60,17 +71,18 @@ const buildUsageInfoBanner = (metricKey, metricLabel, cacheKey, percentage) => { const buildDayPassBanner = () => { const appAuth = get(auth) + const appLicensing = get(licensing) if (get(licensing)?.usageMetrics["dayPasses"] >= 100) { return { key: "max_dayPasses", - type: "negative", + type: BANNER_TYPES.NEGATIVE, criteria: () => { return true }, message: `Your apps are currently offline. You have exceeded your plans limit for Day Passes. ${ appAuth.user.accountPortalAccess ? "" - : "Please contact your account holder." + : "Please contact your account holder to upgrade." }`, ...defaultAction(), showCloseButton: false, @@ -81,23 +93,35 @@ const buildDayPassBanner = () => { "dayPasses", "Day Passes", ExpiringKeys.LICENSING_DAYPASS_WARNING_BANNER, - 90 + 90, + `You have used ${ + appLicensing?.usageMetrics["dayPasses"] + }% of your monthly usage of Day Passes with ${ + appLicensing?.quotaResetDaysRemaining + } day${ + get(licensing).quotaResetDaysRemaining == 1 ? "" : "s" + } remaining. All apps will be taken offline if this limit is reached. ${ + appAuth.user.accountPortalAccess + ? "" + : "Please contact your account holder to upgrade." + }` ) } const buildPaymentFailedBanner = () => { return { key: "payment_Failed", - type: "negative", + type: BANNER_TYPES.NEGATIVE, criteria: () => { - return get(licensing)?.accountPastDue + return get(licensing)?.accountPastDue && !get(licensing).isFreePlan() }, message: `Payment Failed - Please update your billing details or your account will be downgrades in - ${get(licensing)?.paymentDueDaysRemaining} day${ - get(licensing)?.paymentDueDaysRemaining == 1 ? "" : "s" + ${get(licensing)?.pastDueDaysRemaining} day${ + get(licensing)?.pastDueDaysRemaining == 1 ? "" : "s" }`, ...defaultAction(), showCloseButton: false, + tooltip: get(licensing).pastDueEndDate, } } @@ -121,7 +145,7 @@ export const getBanners = () => { "queries", "Queries", ExpiringKeys.LICENSING_QUERIES_WARNING_BANNER, - 90 // could be an array [50,75,90] + 90 ), ].filter(licensingBanner => { return ( diff --git a/packages/builder/src/pages/builder/apps/index.svelte b/packages/builder/src/pages/builder/apps/index.svelte index 1f5a761a42..3b606480cc 100644 --- a/packages/builder/src/pages/builder/apps/index.svelte +++ b/packages/builder/src/pages/builder/apps/index.svelte @@ -13,13 +13,14 @@ notifications, } from "@budibase/bbui" import { onMount } from "svelte" - import { apps, organisation, auth, groups } from "stores/portal" + import { apps, organisation, auth, groups, licensing } from "stores/portal" import { goto } from "@roxi/routify" import { AppStatus } from "constants" import { gradient } from "actions" import UpdateUserInfoModal from "components/settings/UpdateUserInfoModal.svelte" import ChangePasswordModal from "components/settings/ChangePasswordModal.svelte" import { processStringSync } from "@budibase/string-templates" + import Spaceman from "assets/bb-space-man.svg" import Logo from "assets/bb-emblem.svg" let loaded = false @@ -91,7 +92,7 @@
- logo +
- {#if userApps.length} + {#if $licensing.usageMetrics.dayPasses >= 100} +
+ + spaceman + + {"Your apps are currently offline."} + + Please contact the account holder to get them back online. + +
+ {:else if userApps.length} Apps
@@ -194,10 +205,13 @@ justify-content: space-between; align-items: center; } - img { + img.logo { width: 40px; margin-bottom: -12px; } + img.spaceman { + width: 100px; + } .avatar { display: grid; grid-template-columns: auto auto; diff --git a/packages/builder/src/stores/portal/licensing.js b/packages/builder/src/stores/portal/licensing.js index cccb733a5e..ecf0ccb8c2 100644 --- a/packages/builder/src/stores/portal/licensing.js +++ b/packages/builder/src/stores/portal/licensing.js @@ -8,7 +8,6 @@ export const createLicensingStore = () => { const DEFAULT = { plans: {}, } - const oneDayInMilliseconds = 86400000 const store = writable(DEFAULT) @@ -26,8 +25,7 @@ export const createLicensingStore = () => { getUsageMetrics: async () => { const quota = get(store).quotaUsage const license = get(auth).user.license - const now = Date.now() - const nowSeconds = now / 1000 + const now = new Date() const getMetrics = (keys, license, quota) => { if (!license || !quota || !keys) { @@ -36,16 +34,12 @@ export const createLicensingStore = () => { return keys.reduce((acc, key) => { const quotaLimit = license[key].value const quotaUsed = (quota[key] / quotaLimit) * 100 - - // Catch for sessions - key = key === "sessions" ? "dayPasses" : key - acc[key] = quotaLimit > -1 ? Math.round(quotaUsed) : -1 return acc }, {}) } const monthlyMetrics = getMetrics( - ["sessions", "queries", "automations"], + ["dayPasses", "queries", "automations"], license.quotas.usage.monthly, quota.monthly.current ) @@ -55,52 +49,50 @@ export const createLicensingStore = () => { quota.usageQuota ) - // DEBUG - console.log("Store licensing val ", { - ...monthlyMetrics, - ...staticMetrics, - }) - - let subscriptionDaysRemaining - if (license?.billing?.subscription) { - const currentPeriodEnd = license.billing.subscription.currentPeriodEnd - const currentPeriodEndMilliseconds = currentPeriodEnd * 1000 - - subscriptionDaysRemaining = Math.round( - (currentPeriodEndMilliseconds - now) / oneDayInMilliseconds - ) + const getDaysBetween = (dateStart, dateEnd) => { + return dateEnd > dateStart + ? Math.round( + (dateEnd.getTime() - dateStart.getTime()) / oneDayInMilliseconds + ) + : 0 } - const quotaResetDaysRemaining = - quota.quotaReset > now - ? Math.round((quota.quotaReset - now) / oneDayInMilliseconds) - : 0 + const quotaResetDate = new Date(quota.quotaReset) + const quotaResetDaysRemaining = getDaysBetween(now, quotaResetDate) const accountDowngraded = + license?.billing?.subscription?.downgradeAt && + license?.billing?.subscription?.downgradeAt <= now.getTime() && license?.billing?.subscription?.status === StripeStatus.PAST_DUE && - license?.plan === Constants.PlanType.FREE + license?.plan.type === Constants.PlanType.FREE - const accountPastDue = - nowSeconds >= license?.billing?.subscription?.currentPeriodEnd && - nowSeconds <= license?.billing?.subscription?.pastDueAt && - license?.billing?.subscription?.status === StripeStatus.PAST_DUE && - !accountDowngraded + const pastDueAtMilliseconds = license?.billing?.subscription?.pastDueAt + const downgradeAtMilliseconds = + license?.billing?.subscription?.downgradeAt + let pastDueDaysRemaining + let pastDueEndDate - const pastDueAtSeconds = license?.billing?.subscription?.pastDueAt - const pastDueAtMilliseconds = pastDueAtSeconds * 1000 - const paymentDueDaysRemaining = Math.round( - (pastDueAtMilliseconds - now) / oneDayInMilliseconds - ) + if (pastDueAtMilliseconds && downgradeAtMilliseconds) { + pastDueEndDate = new Date(downgradeAtMilliseconds) + pastDueDaysRemaining = getDaysBetween( + new Date(pastDueAtMilliseconds), + pastDueEndDate + ) + } store.update(state => { return { ...state, usageMetrics: { ...monthlyMetrics, ...staticMetrics }, - subscriptionDaysRemaining, - paymentDueDaysRemaining, quotaResetDaysRemaining, + quotaResetDate, accountDowngraded, - accountPastDue, + accountPastDue: pastDueAtMilliseconds != null, + pastDueEndDate, + pastDueDaysRemaining, + isFreePlan: () => { + return license?.plan.type === Constants.PlanType.FREE + }, } }) }, From f7ee55cc0e2439015caab91d52ad4952429052ff Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 14 Sep 2022 18:24:10 +0100 Subject: [PATCH 63/94] PR comments. --- packages/types/src/documents/global/index.ts | 1 + .../types/src/documents/{plugin/index.ts => global/plugin.ts} | 0 packages/types/src/documents/index.ts | 1 - 3 files changed, 1 insertion(+), 1 deletion(-) rename packages/types/src/documents/{plugin/index.ts => global/plugin.ts} (100%) diff --git a/packages/types/src/documents/global/index.ts b/packages/types/src/documents/global/index.ts index 77785c72e4..1f8bb4a84f 100644 --- a/packages/types/src/documents/global/index.ts +++ b/packages/types/src/documents/global/index.ts @@ -1,3 +1,4 @@ export * from "./config" export * from "./user" export * from "./userGroup" +export * from "./plugin" diff --git a/packages/types/src/documents/plugin/index.ts b/packages/types/src/documents/global/plugin.ts similarity index 100% rename from packages/types/src/documents/plugin/index.ts rename to packages/types/src/documents/global/plugin.ts diff --git a/packages/types/src/documents/index.ts b/packages/types/src/documents/index.ts index 70e4dee1aa..47ec48f49c 100644 --- a/packages/types/src/documents/index.ts +++ b/packages/types/src/documents/index.ts @@ -1,7 +1,6 @@ export * from "./account" export * from "./app" export * from "./global" -export * from "./plugin" export * from "./platform" export * from "./document" export * from "./pouch" From 3697a4365b2779b9f87cba13d6034b60be666fae Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Wed, 14 Sep 2022 20:58:58 +0100 Subject: [PATCH 64/94] Update usage page --- .../builder/portal/settings/usage.svelte | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/settings/usage.svelte b/packages/builder/src/pages/builder/portal/settings/usage.svelte index 41a01e3cd3..f2809452fd 100644 --- a/packages/builder/src/pages/builder/portal/settings/usage.svelte +++ b/packages/builder/src/pages/builder/portal/settings/usage.svelte @@ -25,7 +25,8 @@ const upgradeUrl = `${$admin.accountPortalUrl}/portal/upgrade` const manageUrl = `${$admin.accountPortalUrl}/portal/billing` - const warnUsage = ["Queries", "Automations", "Rows", "Day Passes"] + const WARN_USAGE = ["Queries", "Automations", "Rows", "Day Passes"] + const EXCLUDE_QUOTAS = ["Queries"] $: quotaUsage = $licensing.quotaUsage $: license = $auth.user?.license @@ -36,11 +37,14 @@ monthlyUsage = [] if (quotaUsage.monthly) { for (let [key, value] of Object.entries(license.quotas.usage.monthly)) { + if (EXCLUDE_QUOTAS.includes(value.name)) { + continue + } const used = quotaUsage.monthly.current[key] - if (used !== undefined) { + if (value.value !== 0) { monthlyUsage.push({ name: value.name, - used: used, + used: used ? used : 0, total: value.value, }) } @@ -52,11 +56,14 @@ const setStaticUsage = () => { staticUsage = [] for (let [key, value] of Object.entries(license.quotas.usage.static)) { + if (EXCLUDE_QUOTAS.includes(value.name)) { + continue + } const used = quotaUsage.usageQuota[key] - if (used !== undefined) { + if (value.value !== 0) { staticUsage.push({ name: value.name, - used: used, + used: used ? used : 0, total: value.value, }) } @@ -199,7 +206,7 @@
{/each} @@ -222,7 +229,7 @@
{/each} From 25282c94554952e0ffdd29bf76cf1f014b465a55 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Wed, 14 Sep 2022 22:37:33 +0100 Subject: [PATCH 65/94] Show licensed group exceeded notification --- .../src/pages/builder/portal/manage/groups/index.svelte | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/builder/src/pages/builder/portal/manage/groups/index.svelte b/packages/builder/src/pages/builder/portal/manage/groups/index.svelte index ddd734dd69..bb8f18ff13 100644 --- a/packages/builder/src/pages/builder/portal/manage/groups/index.svelte +++ b/packages/builder/src/pages/builder/portal/manage/groups/index.svelte @@ -38,7 +38,11 @@ try { await groups.actions.save(group) } catch (error) { - notifications.error(`Failed to save group`) + if (error.status === 400) { + notifications.error(error.message) + } else { + notifications.error(`Failed to save group`) + } } } From 3c0b9344d80f34e6df22c8c7a63f4dacfad6351c Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 15 Sep 2022 00:58:08 +0100 Subject: [PATCH 66/94] complete refactor and total type safety of test suite - making use of OpenAPI types throughout --- package.json | 4 +- .../api/controllers/public/mapping/types.ts | 8 ++ .../server/src/api/routes/tests/user.spec.js | 1 + qa-core/package.json | 24 +++-- qa-core/scripts/jestSetup.js | 6 +- .../TestConfiguration}/PublicAPIClient.ts | 26 ++--- .../TestConfiguration/applications.ts | 49 ++++++++++ .../TestConfiguration}/generator.ts | 2 +- .../public-api/TestConfiguration/index.ts | 27 ++++++ .../public-api/TestConfiguration/rows.ts | 58 ++++++++++++ .../public-api/TestConfiguration/tables.ts | 62 ++++++++++++ .../public-api/TestConfiguration/users.ts | 41 ++++++++ .../public-api/fixtures/applications.ts | 10 ++ .../src/config/public-api/fixtures/tables.ts | 56 +++++++++++ .../src/config/public-api/fixtures/users.ts | 22 +++++ qa-core/src/environment.ts | 6 +- qa-core/src/jest.extends.ts | 11 ++- .../src/tests/public-api/TestConfiguration.ts | 39 -------- .../applications/applications.spec.ts | 39 ++++---- .../applications/fixtures/application.json | 4 - .../applications/fixtures/generate.ts | 9 -- .../applications/fixtures/seed.json | 4 - .../fixtures/update_application.json | 4 - .../tests/public-api/tables/fixtures/row.json | 8 -- .../public-api/tables/fixtures/seed.json | 94 ------------------- .../public-api/tables/fixtures/table.json | 94 ------------------- .../tables/fixtures/update_row.json | 8 -- .../tables/fixtures/update_table.json | 94 ------------------- .../src/tests/public-api/tables/rows.spec.ts | 43 ++++----- .../tests/public-api/tables/tables.spec.ts | 38 ++++---- .../public-api/users/fixtures/generate.ts | 22 ----- .../users/fixtures/update_user.json | 18 ---- .../tests/public-api/users/fixtures/user.json | 18 ---- .../src/tests/public-api/users/users.spec.ts | 32 +++---- qa-core/tsconfig.json | 3 - qa-core/yarn.lock | 43 +++++---- 36 files changed, 470 insertions(+), 557 deletions(-) rename qa-core/src/{tests/public-api => config/public-api/TestConfiguration}/PublicAPIClient.ts (74%) create mode 100644 qa-core/src/config/public-api/TestConfiguration/applications.ts rename qa-core/src/{tests/public-api => config/public-api/TestConfiguration}/generator.ts (54%) create mode 100644 qa-core/src/config/public-api/TestConfiguration/index.ts create mode 100644 qa-core/src/config/public-api/TestConfiguration/rows.ts create mode 100644 qa-core/src/config/public-api/TestConfiguration/tables.ts create mode 100644 qa-core/src/config/public-api/TestConfiguration/users.ts create mode 100644 qa-core/src/config/public-api/fixtures/applications.ts create mode 100644 qa-core/src/config/public-api/fixtures/tables.ts create mode 100644 qa-core/src/config/public-api/fixtures/users.ts delete mode 100644 qa-core/src/tests/public-api/TestConfiguration.ts delete mode 100644 qa-core/src/tests/public-api/applications/fixtures/application.json delete mode 100644 qa-core/src/tests/public-api/applications/fixtures/generate.ts delete mode 100644 qa-core/src/tests/public-api/applications/fixtures/seed.json delete mode 100644 qa-core/src/tests/public-api/applications/fixtures/update_application.json delete mode 100644 qa-core/src/tests/public-api/tables/fixtures/row.json delete mode 100644 qa-core/src/tests/public-api/tables/fixtures/seed.json delete mode 100644 qa-core/src/tests/public-api/tables/fixtures/table.json delete mode 100644 qa-core/src/tests/public-api/tables/fixtures/update_row.json delete mode 100644 qa-core/src/tests/public-api/tables/fixtures/update_table.json delete mode 100644 qa-core/src/tests/public-api/users/fixtures/generate.ts delete mode 100644 qa-core/src/tests/public-api/users/fixtures/update_user.json delete mode 100644 qa-core/src/tests/public-api/users/fixtures/user.json diff --git a/package.json b/package.json index 4c24e0025b..71acd886d3 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "lint:eslint": "eslint packages", "lint:prettier": "prettier --check \"packages/**/*.{js,ts,svelte}\"", "lint": "yarn run lint:eslint && yarn run lint:prettier", - "lint:fix:eslint": "eslint --fix packages", - "lint:fix:prettier": "prettier --write \"packages/**/*.{js,ts,svelte}\" && prettier --write \"examples/**/*.{js,ts,svelte}\"", + "lint:fix:eslint": "eslint --fix packages qa-core", + "lint:fix:prettier": "prettier --write \"packages/**/*.{js,ts,svelte}\" && prettier --write \"examples/**/*.{js,ts,svelte}\" && prettier --write \"qa-core/**/*.{js,ts,svelte}\"", "lint:fix": "yarn run lint:fix:prettier && yarn run lint:fix:eslint", "test:e2e": "lerna run cy:test --stream", "test:e2e:ci": "lerna run cy:ci --stream", diff --git a/packages/server/src/api/controllers/public/mapping/types.ts b/packages/server/src/api/controllers/public/mapping/types.ts index a82a525f9c..5d161ec17a 100644 --- a/packages/server/src/api/controllers/public/mapping/types.ts +++ b/packages/server/src/api/controllers/public/mapping/types.ts @@ -4,10 +4,18 @@ export type Query = components["schemas"]["query"] export type ExecuteQuery = components["schemas"]["executeQueryOutput"] export type Application = components["schemas"]["applicationOutput"]["data"] +export type CreateApplicationParams = components["schemas"]["application"] export type Table = components["schemas"]["tableOutput"]["data"] +export type CreateTableParams = components["schemas"]["table"] export type Row = components["schemas"]["rowOutput"]["data"] export type RowSearch = components["schemas"]["searchOutput"] +export type CreateRowParams = components["schemas"]["row"] export type User = components["schemas"]["userOutput"]["data"] +export type CreateUserParams = components["schemas"]["user"] + +export type SearchInputParams = + | components["schemas"]["nameSearch"] + | components["schemas"]["querySearch"] diff --git a/packages/server/src/api/routes/tests/user.spec.js b/packages/server/src/api/routes/tests/user.spec.js index a7f1e7e7dc..e699f818d6 100644 --- a/packages/server/src/api/routes/tests/user.spec.js +++ b/packages/server/src/api/routes/tests/user.spec.js @@ -23,6 +23,7 @@ describe("/users", () => { }) describe("fetch", () => { + it("returns a list of users from an instance db", async () => { await config.createUser("uuidx") await config.createUser("uuidy") diff --git a/qa-core/package.json b/qa-core/package.json index 30d2fc9526..2103f1670e 100644 --- a/qa-core/package.json +++ b/qa-core/package.json @@ -21,8 +21,6 @@ "preset": "ts-jest", "testEnvironment": "node", "moduleNameMapper": { - "@budibase/backend-core/(.*)": "/../packages/backend-core/$1", - "@budibase/backend-core": "/../packages/backend-core/src", "@budibase/types": "/../packages/types/src" }, "setupFiles": [ @@ -33,18 +31,18 @@ ] }, "devDependencies": { - "@budibase/types": "^1.3.4", - "@types/jest": "^29.0.0", - "@types/node-fetch": "^2.6.2", - "chance": "^1.1.8", - "jest": "^28.0.2", - "prettier": "^2.7.1", - "start-server-and-test": "^1.14.0", - "timekeeper": "^2.2.0", + "@budibase/types": "1.3.4", + "@types/jest": "29.0.0", + "@types/node-fetch": "2.6.2", + "chance": "1.1.8", + "jest": "28.0.2", + "prettier": "2.7.1", + "start-server-and-test": "1.14.0", + "timekeeper": "2.2.0", "ts-jest": "28.0.8", - "ts-node": "^10.9.1", - "tsconfig-paths": "^4.1.0", - "typescript": "^4.8.2" + "ts-node": "10.9.1", + "tsconfig-paths": "4.1.0", + "typescript": "4.7.3" }, "dependencies": { "node-fetch": "2" diff --git a/qa-core/scripts/jestSetup.js b/qa-core/scripts/jestSetup.js index 5902a68af7..8254fd6d34 100644 --- a/qa-core/scripts/jestSetup.js +++ b/qa-core/scripts/jestSetup.js @@ -1,12 +1,14 @@ const env = require("../src/environment") env._set("BUDIBASE_SERVER_URL", "http://localhost:4100") -env._set("BUDIBASE_PUBLIC_API_KEY", "a65722f06bee5caeadc5d7ca2f543a43-d610e627344210c643bb726f") +env._set( + "BUDIBASE_PUBLIC_API_KEY", + "a65722f06bee5caeadc5d7ca2f543a43-d610e627344210c643bb726f" +) // mock all dates to 2020-01-01T00:00:00.000Z // use tk.reset() to use real dates in individual tests const MOCK_DATE = new Date("2020-01-01T00:00:00.000Z") -const MOCK_DATE_TIMESTAMP = 1577836800000 const tk = require("timekeeper") tk.freeze(MOCK_DATE) diff --git a/qa-core/src/tests/public-api/PublicAPIClient.ts b/qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts similarity index 74% rename from qa-core/src/tests/public-api/PublicAPIClient.ts rename to qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts index 017d8088dd..405007b5aa 100644 --- a/qa-core/src/tests/public-api/PublicAPIClient.ts +++ b/qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts @@ -1,14 +1,14 @@ -import env from "../../environment" -import fetch from "node-fetch" - -interface HeaderOptions { - headers?: object; - body?: object; - json?: boolean; -} +import env from "../../../environment" +import fetch, { HeadersInit } from "node-fetch" type APIMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" +interface ApiOptions { + method?: APIMethod + body?: object + headers?: HeadersInit | undefined +} + class PublicAPIClient { host: string apiKey: string @@ -16,7 +16,9 @@ class PublicAPIClient { constructor(appId?: string) { if (!env.BUDIBASE_PUBLIC_API_KEY || !env.BUDIBASE_SERVER_URL) { - throw new Error("Must set BUDIBASE_PUBLIC_API_KEY and BUDIBASE_SERVER_URL env vars") + throw new Error( + "Must set BUDIBASE_PUBLIC_API_KEY and BUDIBASE_SERVER_URL env vars" + ) } this.host = `${env.BUDIBASE_SERVER_URL}/api/public/v1` this.apiKey = env.BUDIBASE_PUBLIC_API_KEY @@ -25,9 +27,9 @@ class PublicAPIClient { apiCall = (method: APIMethod) => - async (url = "", options: HeaderOptions = {}) => { + async (url = "", options: ApiOptions = {}) => { const requestOptions = { - method: method, + method, body: JSON.stringify(options.body), headers: { "x-budibase-api-key": this.apiKey, @@ -55,4 +57,4 @@ class PublicAPIClient { put = this.apiCall("PUT") } -export default PublicAPIClient \ No newline at end of file +export default PublicAPIClient diff --git a/qa-core/src/config/public-api/TestConfiguration/applications.ts b/qa-core/src/config/public-api/TestConfiguration/applications.ts new file mode 100644 index 0000000000..6232c14c28 --- /dev/null +++ b/qa-core/src/config/public-api/TestConfiguration/applications.ts @@ -0,0 +1,49 @@ +import PublicAPIClient from "./PublicAPIClient" +import { + Application, + SearchInputParams, + CreateApplicationParams, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { Response } from "node-fetch" +import generateApp from "../fixtures/applications" + +export default class AppApi { + api: PublicAPIClient + + constructor(apiClient: PublicAPIClient) { + this.api = apiClient + } + + async seed(): Promise<[Response, Application]> { + return this.create(generateApp()) + } + + async create( + body: CreateApplicationParams + ): Promise<[Response, Application]> { + const response = await this.api.post(`/applications`, { body }) + const json = await response.json() + return [response, json.data] + } + + async read(id: string): Promise<[Response, Application]> { + const response = await this.api.get(`/applications/${id}`) + const json = await response.json() + return [response, json.data] + } + + async search(body: SearchInputParams): Promise<[Response, Application]> { + const response = await this.api.post(`/applications/search`, { body }) + const json = await response.json() + return [response, json.data] + } + + async update( + id: string, + body: Application + ): Promise<[Response, Application]> { + const response = await this.api.put(`/applications/${id}`, { body }) + const json = await response.json() + return [response, json.data] + } +} diff --git a/qa-core/src/tests/public-api/generator.ts b/qa-core/src/config/public-api/TestConfiguration/generator.ts similarity index 54% rename from qa-core/src/tests/public-api/generator.ts rename to qa-core/src/config/public-api/TestConfiguration/generator.ts index f9ef06f243..c9395f7e47 100644 --- a/qa-core/src/tests/public-api/generator.ts +++ b/qa-core/src/config/public-api/TestConfiguration/generator.ts @@ -1,3 +1,3 @@ const Chance = require("chance") -export default new Chance() \ No newline at end of file +export default new Chance() diff --git a/qa-core/src/config/public-api/TestConfiguration/index.ts b/qa-core/src/config/public-api/TestConfiguration/index.ts new file mode 100644 index 0000000000..36cc3022b0 --- /dev/null +++ b/qa-core/src/config/public-api/TestConfiguration/index.ts @@ -0,0 +1,27 @@ +import PublicAPIClient from "./PublicAPIClient" +import ApplicationApi from "./applications" +import TableApi from "./tables" +import UserApi from "./users" +import RowApi from "./rows" + +export default class TestConfiguration { + applications: ApplicationApi + users: UserApi + tables: TableApi + rows: RowApi + context: T + + constructor(apiClient: PublicAPIClient) { + this.applications = new ApplicationApi(apiClient) + this.users = new UserApi(apiClient) + this.tables = new TableApi(apiClient) + this.rows = new RowApi(apiClient) + this.context = {} + } + + async beforeAll() {} + + async afterAll() { + this.context = {} + } +} diff --git a/qa-core/src/config/public-api/TestConfiguration/rows.ts b/qa-core/src/config/public-api/TestConfiguration/rows.ts new file mode 100644 index 0000000000..4e39e4ec9e --- /dev/null +++ b/qa-core/src/config/public-api/TestConfiguration/rows.ts @@ -0,0 +1,58 @@ +import PublicAPIClient from "./PublicAPIClient" +import { + CreateRowParams, + Row, + SearchInputParams, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { HeadersInit, Response } from "node-fetch" + +export default class RowApi { + api: PublicAPIClient + headers?: HeadersInit + tableId?: string + + constructor(apiClient: PublicAPIClient) { + this.api = apiClient + } + + set appId(appId: string) { + this.headers = { + "x-budibase-app-id": appId, + } + } + + async create(body: CreateRowParams): Promise<[Response, Row]> { + const response = await this.api.post(`/tables/${this.tableId}/rows`, { + body, + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } + + async read(id: string): Promise<[Response, Row]> { + const response = await this.api.get(`/tables/${this.tableId}/rows/${id}`, { + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } + + async search(body: SearchInputParams): Promise<[Response, Row]> { + const response = await this.api.post( + `/tables/${this.tableId}/rows/search`, + { body, headers: this.headers } + ) + const json = await response.json() + return [response, json.data] + } + + async update(id: string, body: Row): Promise<[Response, Row]> { + const response = await this.api.put(`/tables/${this.tableId}/rows/${id}`, { + body, + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } +} diff --git a/qa-core/src/config/public-api/TestConfiguration/tables.ts b/qa-core/src/config/public-api/TestConfiguration/tables.ts new file mode 100644 index 0000000000..c0b7e088e1 --- /dev/null +++ b/qa-core/src/config/public-api/TestConfiguration/tables.ts @@ -0,0 +1,62 @@ +import PublicAPIClient from "./PublicAPIClient" +import { + Table, + SearchInputParams, + CreateTableParams, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { HeadersInit, Response } from "node-fetch" +import { generateTable } from "../fixtures/tables" + +export default class TableApi { + api: PublicAPIClient + headers?: HeadersInit + + constructor(apiClient: PublicAPIClient) { + this.api = apiClient + } + + async seed() { + return this.create(generateTable()) + } + + set appId(appId: string) { + this.headers = { + "x-budibase-app-id": appId, + } + } + + async create(body: CreateTableParams): Promise<[Response, Table]> { + const response = await this.api.post(`/tables`, { + body, + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } + + async read(id: string): Promise<[Response, Table]> { + const response = await this.api.get(`/tables/${id}`, { + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } + + async search(body: SearchInputParams): Promise<[Response, Table]> { + const response = await this.api.post(`/tables/search`, { + body, + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } + + async update(id: string, body: Table): Promise<[Response, Table]> { + const response = await this.api.put(`/tables/${id}`, { + body, + headers: this.headers, + }) + const json = await response.json() + return [response, json.data] + } +} diff --git a/qa-core/src/config/public-api/TestConfiguration/users.ts b/qa-core/src/config/public-api/TestConfiguration/users.ts new file mode 100644 index 0000000000..79217620aa --- /dev/null +++ b/qa-core/src/config/public-api/TestConfiguration/users.ts @@ -0,0 +1,41 @@ +import PublicAPIClient from "./PublicAPIClient" +import { + CreateUserParams, + SearchInputParams, + User, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { Response } from "node-fetch" + +export default class UserApi { + api: PublicAPIClient + + constructor(apiClient: PublicAPIClient) { + this.api = apiClient + } + + async seed() {} + + async create(body: CreateUserParams): Promise<[Response, User]> { + const response = await this.api.post(`/users`, { body }) + const json = await response.json() + return [response, json.data] + } + + async read(id: string): Promise<[Response, User]> { + const response = await this.api.get(`/users/${id}`) + const json = await response.json() + return [response, json.data] + } + + async search(body: SearchInputParams): Promise<[Response, User]> { + const response = await this.api.post(`/users/search`, { body }) + const json = await response.json() + return [response, json.data] + } + + async update(id: string, body: User): Promise<[Response, User]> { + const response = await this.api.put(`/users/${id}`, { body }) + const json = await response.json() + return [response, json.data] + } +} diff --git a/qa-core/src/config/public-api/fixtures/applications.ts b/qa-core/src/config/public-api/fixtures/applications.ts new file mode 100644 index 0000000000..25456f4c4b --- /dev/null +++ b/qa-core/src/config/public-api/fixtures/applications.ts @@ -0,0 +1,10 @@ +import generator from "../TestConfiguration/generator" +import { CreateApplicationParams } from "../../../../../packages/server/src/api/controllers/public/mapping/types" + +const generate = (overrides = {}): CreateApplicationParams => ({ + name: generator.word(), + url: `/${generator.word()}`, + ...overrides, +}) + +export default generate diff --git a/qa-core/src/config/public-api/fixtures/tables.ts b/qa-core/src/config/public-api/fixtures/tables.ts new file mode 100644 index 0000000000..bbf93322c3 --- /dev/null +++ b/qa-core/src/config/public-api/fixtures/tables.ts @@ -0,0 +1,56 @@ +import { + CreateRowParams, + CreateTableParams, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import generator from "../TestConfiguration/generator" + +export const generateTable = (overrides = {}): CreateTableParams => ({ + name: generator.word(), + primaryDisplay: "sasa", + schema: { + "Auto ID": { + autocolumn: true, + name: "Auto ID", + type: "number", + }, + "Created At": { + autocolumn: true, + name: "Created At", + type: "datetime", + }, + "Created By": { + autocolumn: true, + fieldName: "test12-Created By", + name: "Created By", + relationshipType: "many-to-many", + tableId: "ta_users", + type: "link", + }, + sasa: { + name: "sasa", + type: "string", + }, + "Updated At": { + autocolumn: true, + name: "Updated At", + type: "datetime", + }, + "Updated By": { + autocolumn: true, + fieldName: "test12-Updated By", + name: "Updated By", + relationshipType: "many-to-many", + tableId: "ta_users", + type: "link", + }, + }, + ...overrides, +}) + +export const generateRow = (overrides = {}): CreateRowParams => ({ + type: "row", + tableId: "seed_table", + sasa: "Mike", + relationship: ["ro_ta_"], + ...overrides, +}) diff --git a/qa-core/src/config/public-api/fixtures/users.ts b/qa-core/src/config/public-api/fixtures/users.ts new file mode 100644 index 0000000000..52124024e7 --- /dev/null +++ b/qa-core/src/config/public-api/fixtures/users.ts @@ -0,0 +1,22 @@ +import { CreateUserParams } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import generator from "../TestConfiguration/generator" + +const generate = (overrides = {}): CreateUserParams => ({ + email: generator.email(), + roles: { + [generator.string({ length: 32, alpha: true, numeric: true })]: + generator.word(), + }, + password: generator.word(), + status: "active", + forceResetPassword: generator.bool(), + builder: { + global: generator.bool(), + }, + admin: { + global: generator.bool(), + }, + ...overrides, +}) + +export default generate diff --git a/qa-core/src/environment.ts b/qa-core/src/environment.ts index 4ef8de795a..b0ed3cec85 100644 --- a/qa-core/src/environment.ts +++ b/qa-core/src/environment.ts @@ -1,8 +1,10 @@ -export = { +const env = { BUDIBASE_SERVER_URL: process.env.BUDIBASE_SERVER_URL, BUDIBASE_PUBLIC_API_KEY: process.env.BUDIBASE_PUBLIC_API_KEY, _set(key: any, value: any) { process.env[key] = value module.exports[key] = value }, -} \ No newline at end of file +} + +export = env diff --git a/qa-core/src/jest.extends.ts b/qa-core/src/jest.extends.ts index 380bf85c81..653009f5f0 100644 --- a/qa-core/src/jest.extends.ts +++ b/qa-core/src/jest.extends.ts @@ -1,21 +1,22 @@ +import { Response } from "node-fetch" + // boilerplate to allow TS updates to the global scope -export {}; +export {} declare global { namespace jest { interface Matchers { - toHaveStatusCode(code: number): R; + toHaveStatusCode(code: number): R } } } // Expect extensions expect.extend({ - toHaveStatusCode(received, code) { + toHaveStatusCode(received: Response, code: number) { const pass = received.status === code return { - message: () => - `expected ${received.status} to match status code ${code}`, + message: () => `expected ${received.status} to match status code ${code}`, pass, } }, diff --git a/qa-core/src/tests/public-api/TestConfiguration.ts b/qa-core/src/tests/public-api/TestConfiguration.ts deleted file mode 100644 index 647e64758e..0000000000 --- a/qa-core/src/tests/public-api/TestConfiguration.ts +++ /dev/null @@ -1,39 +0,0 @@ -import PublicAPIClient from "./PublicAPIClient"; -import generateApp from "./applications/fixtures/generate" - -class TestConfiguration { - testContext: Record; - apiClient: PublicAPIClient; - - constructor() { - this.testContext = {} - this.apiClient = new PublicAPIClient() - } - - async beforeAll() { - - } - - async afterAll() { - } - - async seedTable(appId: string) { - const response = await this.apiClient.post("/tables", { - body: require("./tables/fixtures/seed.json"), - headers: { - "x-budibase-app-id": appId - } - }) - const json = await response.json() - return json.data - } - - async seedApp() { - const response = await this.apiClient.post("/applications", { - body: generateApp() - }) - return response.json() - } -} - -export default TestConfiguration diff --git a/qa-core/src/tests/public-api/applications/applications.spec.ts b/qa-core/src/tests/public-api/applications/applications.spec.ts index 83180429e0..1031f511b4 100644 --- a/qa-core/src/tests/public-api/applications/applications.spec.ts +++ b/qa-core/src/tests/public-api/applications/applications.spec.ts @@ -1,10 +1,11 @@ -import TestConfiguration from "../TestConfiguration" -import PublicAPIClient from "../PublicAPIClient" -import generateApp from "./fixtures/generate" +import TestConfiguration from "../../../config/public-api/TestConfiguration" +import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" +import generateApp from "../../../config/public-api/fixtures/applications" +import { Application } from "../../../../../packages/server/src/api/controllers/public/mapping/types" describe("Public API - /applications endpoints", () => { const api = new PublicAPIClient() - const config = new TestConfiguration() + const config = new TestConfiguration(api) beforeAll(async () => { await config.beforeAll() @@ -14,34 +15,30 @@ describe("Public API - /applications endpoints", () => { await config.afterAll() }) - it("POST - Create a application", async () => { - const response = await api.post(`/applications`, { - body: generateApp() - }) - const json = await response.json() - config.testContext.application = json.data + it("POST - Create an application", async () => { + const [response, app] = await config.applications.create(generateApp()) + config.context = app expect(response).toHaveStatusCode(200) }) it("POST - Search applications", async () => { - const response = await api.post(`/applications/search`, { - body: { - name: config.testContext.application.name - } + const [response, app] = await config.applications.search({ + name: config.context.name, }) expect(response).toHaveStatusCode(200) }) - it("GET - Retrieve a application", async () => { - const response = await api.get(`/applications/${config.testContext.application._id}`) + it("GET - Retrieve an application", async () => { + const [response, app] = await config.applications.read(config.context._id) expect(response).toHaveStatusCode(200) }) - - it("PUT - update a application", async () => { - const response = await api.put(`/applications/${config.testContext.application._id}`, { - body: require("./fixtures/update_application.json") - }) + it("PUT - update an application", async () => { + config.context.name = "UpdatedName" + const [response, app] = await config.applications.update( + config.context._id, + config.context + ) expect(response).toHaveStatusCode(200) }) }) diff --git a/qa-core/src/tests/public-api/applications/fixtures/application.json b/qa-core/src/tests/public-api/applications/fixtures/application.json deleted file mode 100644 index 093edbcb0e..0000000000 --- a/qa-core/src/tests/public-api/applications/fixtures/application.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "TestApp", - "url": "/testapp" -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/applications/fixtures/generate.ts b/qa-core/src/tests/public-api/applications/fixtures/generate.ts deleted file mode 100644 index 2e28f6fb06..0000000000 --- a/qa-core/src/tests/public-api/applications/fixtures/generate.ts +++ /dev/null @@ -1,9 +0,0 @@ -import generator from "../../generator" - -const generate = (overrides = {}) => ({ - name: generator.word(), - url: `/${generator.word()}`, - ...overrides -}) - -export default generate \ No newline at end of file diff --git a/qa-core/src/tests/public-api/applications/fixtures/seed.json b/qa-core/src/tests/public-api/applications/fixtures/seed.json deleted file mode 100644 index 7a5de02e82..0000000000 --- a/qa-core/src/tests/public-api/applications/fixtures/seed.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "SeedApp", - "url": "/seedapp" -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/applications/fixtures/update_application.json b/qa-core/src/tests/public-api/applications/fixtures/update_application.json deleted file mode 100644 index ea3b3d0b31..0000000000 --- a/qa-core/src/tests/public-api/applications/fixtures/update_application.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "UpdatedTestApp", - "url": "/updatedtestapp" -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/row.json b/qa-core/src/tests/public-api/tables/fixtures/row.json deleted file mode 100644 index 9436576947..0000000000 --- a/qa-core/src/tests/public-api/tables/fixtures/row.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "row", - "tableId": "seed_table", - "sasa": "Mike", - "relationship": [ - "ro_ta_" - ] -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/seed.json b/qa-core/src/tests/public-api/tables/fixtures/seed.json deleted file mode 100644 index acbaeaff6c..0000000000 --- a/qa-core/src/tests/public-api/tables/fixtures/seed.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "test", - "primaryDisplay": "sasa", - "schema": { - "Auto ID": { - "autocolumn": true, - "constraints": { - "numericality": { - "greaterThanOrEqualTo": "", - "lessThanOrEqualTo": "" - }, - "presence": false, - "type": "number" - }, - "icon": "ri-magic-line", - "name": "Auto ID", - "subtype": "autoID", - "type": "number" - }, - "Created At": { - "autocolumn": true, - "constraints": { - "datetime": { - "earliest": "", - "latest": "" - }, - "length": {}, - "presence": false, - "type": "string" - }, - "icon": "ri-magic-line", - "name": "Created At", - "subtype": "createdAt", - "type": "datetime" - }, - "Created By": { - "autocolumn": true, - "constraints": { - "presence": false, - "type": "array" - }, - "fieldName": "test12-Created By", - "icon": "ri-magic-line", - "name": "Created By", - "relationshipType": "many-to-many", - "subtype": "createdBy", - "tableId": "ta_users", - "type": "link" - }, - "sasa": { - "constraints": { - "length": { - "maximum": null - }, - "presence": { - "allowEmpty": false - }, - "type": "string" - }, - "name": "sasa", - "type": "string" - }, - "Updated At": { - "autocolumn": true, - "constraints": { - "datetime": { - "earliest": "", - "latest": "" - }, - "length": {}, - "presence": false, - "type": "string" - }, - "icon": "ri-magic-line", - "name": "Updated At", - "subtype": "updatedAt", - "type": "datetime" - }, - "Updated By": { - "autocolumn": true, - "constraints": { - "presence": false, - "type": "array" - }, - "fieldName": "test12-Updated By", - "icon": "ri-magic-line", - "name": "Updated By", - "relationshipType": "many-to-many", - "subtype": "updatedBy", - "tableId": "ta_users", - "type": "link" - } - } -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/table.json b/qa-core/src/tests/public-api/tables/fixtures/table.json deleted file mode 100644 index acbaeaff6c..0000000000 --- a/qa-core/src/tests/public-api/tables/fixtures/table.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "test", - "primaryDisplay": "sasa", - "schema": { - "Auto ID": { - "autocolumn": true, - "constraints": { - "numericality": { - "greaterThanOrEqualTo": "", - "lessThanOrEqualTo": "" - }, - "presence": false, - "type": "number" - }, - "icon": "ri-magic-line", - "name": "Auto ID", - "subtype": "autoID", - "type": "number" - }, - "Created At": { - "autocolumn": true, - "constraints": { - "datetime": { - "earliest": "", - "latest": "" - }, - "length": {}, - "presence": false, - "type": "string" - }, - "icon": "ri-magic-line", - "name": "Created At", - "subtype": "createdAt", - "type": "datetime" - }, - "Created By": { - "autocolumn": true, - "constraints": { - "presence": false, - "type": "array" - }, - "fieldName": "test12-Created By", - "icon": "ri-magic-line", - "name": "Created By", - "relationshipType": "many-to-many", - "subtype": "createdBy", - "tableId": "ta_users", - "type": "link" - }, - "sasa": { - "constraints": { - "length": { - "maximum": null - }, - "presence": { - "allowEmpty": false - }, - "type": "string" - }, - "name": "sasa", - "type": "string" - }, - "Updated At": { - "autocolumn": true, - "constraints": { - "datetime": { - "earliest": "", - "latest": "" - }, - "length": {}, - "presence": false, - "type": "string" - }, - "icon": "ri-magic-line", - "name": "Updated At", - "subtype": "updatedAt", - "type": "datetime" - }, - "Updated By": { - "autocolumn": true, - "constraints": { - "presence": false, - "type": "array" - }, - "fieldName": "test12-Updated By", - "icon": "ri-magic-line", - "name": "Updated By", - "relationshipType": "many-to-many", - "subtype": "updatedBy", - "tableId": "ta_users", - "type": "link" - } - } -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/update_row.json b/qa-core/src/tests/public-api/tables/fixtures/update_row.json deleted file mode 100644 index 556e02f8bd..0000000000 --- a/qa-core/src/tests/public-api/tables/fixtures/update_row.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "row", - "tableId": "seed_table", - "sasa": "MikeIsTheBest", - "relationship": [ - "ro_ta_..." - ] -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/fixtures/update_table.json b/qa-core/src/tests/public-api/tables/fixtures/update_table.json deleted file mode 100644 index 64ca1147e8..0000000000 --- a/qa-core/src/tests/public-api/tables/fixtures/update_table.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "name": "test123", - "primaryDisplay": "sasa", - "schema": { - "Auto ID": { - "autocolumn": true, - "constraints": { - "numericality": { - "greaterThanOrEqualTo": "", - "lessThanOrEqualTo": "" - }, - "presence": false, - "type": "number" - }, - "icon": "ri-magic-line", - "name": "Auto ID", - "subtype": "autoID", - "type": "number" - }, - "Created At": { - "autocolumn": true, - "constraints": { - "datetime": { - "earliest": "", - "latest": "" - }, - "length": {}, - "presence": false, - "type": "string" - }, - "icon": "ri-magic-line", - "name": "Created At", - "subtype": "createdAt", - "type": "datetime" - }, - "Created By": { - "autocolumn": true, - "constraints": { - "presence": false, - "type": "array" - }, - "fieldName": "test12-Created By", - "icon": "ri-magic-line", - "name": "Created By", - "relationshipType": "many-to-many", - "subtype": "createdBy", - "tableId": "ta_users", - "type": "link" - }, - "sasa": { - "constraints": { - "length": { - "maximum": null - }, - "presence": { - "allowEmpty": false - }, - "type": "string" - }, - "name": "sasa", - "type": "string" - }, - "Updated At": { - "autocolumn": true, - "constraints": { - "datetime": { - "earliest": "", - "latest": "" - }, - "length": {}, - "presence": false, - "type": "string" - }, - "icon": "ri-magic-line", - "name": "Updated At", - "subtype": "updatedAt", - "type": "datetime" - }, - "Updated By": { - "autocolumn": true, - "constraints": { - "presence": false, - "type": "array" - }, - "fieldName": "test12-Updated By", - "icon": "ri-magic-line", - "name": "Updated By", - "relationshipType": "many-to-many", - "subtype": "updatedBy", - "tableId": "ta_users", - "type": "link" - } - } -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/tables/rows.spec.ts b/qa-core/src/tests/public-api/tables/rows.spec.ts index 099a3d3593..66d46208cc 100644 --- a/qa-core/src/tests/public-api/tables/rows.spec.ts +++ b/qa-core/src/tests/public-api/tables/rows.spec.ts @@ -1,17 +1,22 @@ -import TestConfiguration from "../TestConfiguration" -import PublicAPIClient from "../PublicAPIClient" +import { Row } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { generateRow } from "../../../config/public-api/fixtures/tables" +import TestConfiguration from "../../../config/public-api/TestConfiguration" +import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" describe("Public API - /rows endpoints", () => { - let api: PublicAPIClient + let api = new PublicAPIClient() - const config = new TestConfiguration() + const config = new TestConfiguration(api) beforeAll(async () => { await config.beforeAll() - const app = await config.seedApp() + const [appResp, app] = await config.applications.seed() - config.testContext.table = await config.seedTable(app.data._id) - api = new PublicAPIClient(app.data._id) + config.tables.appId = app._id + const [tableResp, table] = await config.tables.seed() + + config.rows.appId = app._id + config.rows.tableId = table._id }) afterAll(async () => { @@ -19,33 +24,29 @@ describe("Public API - /rows endpoints", () => { }) it("POST - Create a row", async () => { - const response = await api.post(`/tables/${config.testContext.table._id}/rows`, { - body: require("./fixtures/row.json") - }) - const json = await response.json() - config.testContext.row = json.data + const [response, row] = await config.rows.create(generateRow()) + config.context = row expect(response).toHaveStatusCode(200) }) it("POST - Search rows", async () => { - const response = await api.post(`/tables/${config.testContext.table._id}/rows/search`, { - body: { - name: config.testContext.row.name - } + const [response, row] = await config.rows.search({ + name: config.context.name as string, }) expect(response).toHaveStatusCode(200) }) it("GET - Retrieve a row", async () => { - const response = await api.get(`/tables/${config.testContext.table._id}/rows/${config.testContext.row._id}`) + const [response, row] = await config.rows.read(config.context._id) expect(response).toHaveStatusCode(200) }) - it("PUT - update a row", async () => { - const response = await api.put(`/tables/${config.testContext.table._id}/rows/${config.testContext.row._id}`, { - body: require("./fixtures/update_row.json") - }) + config.context.name = "UpdatedName" + const [response, row] = await config.rows.update( + config.context._id, + config.context + ) expect(response).toHaveStatusCode(200) }) }) diff --git a/qa-core/src/tests/public-api/tables/tables.spec.ts b/qa-core/src/tests/public-api/tables/tables.spec.ts index 70e3bb8d78..9dfdc8cdc0 100644 --- a/qa-core/src/tests/public-api/tables/tables.spec.ts +++ b/qa-core/src/tests/public-api/tables/tables.spec.ts @@ -1,14 +1,16 @@ -import TestConfiguration from "../TestConfiguration" -import PublicAPIClient from "../PublicAPIClient" +import { Table } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { generateTable } from "../../../config/public-api/fixtures/tables" +import TestConfiguration from "../../../config/public-api/TestConfiguration" +import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" describe("Public API - /tables endpoints", () => { - let api: PublicAPIClient - const config = new TestConfiguration() + let api = new PublicAPIClient() + const config = new TestConfiguration(api) beforeAll(async () => { await config.beforeAll() - const app = await config.seedApp() - api = new PublicAPIClient(app.data._id) + const [_, app] = await config.applications.seed() + config.tables.appId = app._id }) afterAll(async () => { @@ -16,33 +18,29 @@ describe("Public API - /tables endpoints", () => { }) it("POST - Create a table", async () => { - const response = await api.post(`/tables`, { - body: require("./fixtures/table.json") - }) - const json = await response.json() - config.testContext.table = json.data + const [response, table] = await config.tables.create(generateTable()) + config.context = table expect(response).toHaveStatusCode(200) }) it("POST - Search tables", async () => { - const response = await api.post(`/tables/search`, { - body: { - name: config.testContext.table.name - } + const [response, table] = await config.tables.search({ + name: config.context.name, }) expect(response).toHaveStatusCode(200) }) it("GET - Retrieve a table", async () => { - const response = await api.get(`/tables/${config.testContext.table._id}`) + const [response, table] = await config.tables.read(config.context._id) expect(response).toHaveStatusCode(200) }) - it("PUT - update a table", async () => { - const response = await api.put(`/tables/${config.testContext.table._id}`, { - body: require("./fixtures/update_table.json") - }) + config.context.name = "updatedName" + const [response, table] = await config.tables.update( + config.context._id, + config.context + ) expect(response).toHaveStatusCode(200) }) }) diff --git a/qa-core/src/tests/public-api/users/fixtures/generate.ts b/qa-core/src/tests/public-api/users/fixtures/generate.ts deleted file mode 100644 index ca3c7b3c2c..0000000000 --- a/qa-core/src/tests/public-api/users/fixtures/generate.ts +++ /dev/null @@ -1,22 +0,0 @@ -import generator from "../../generator" -import { User } from "@budibase/types" - -const generate = (overrides = {}): User => ({ - tenantId: generator.word(), - email: generator.email(), - roles: { - [generator.string({ length: 32, alpha: true, numeric: true })]: generator.word(), - }, - password: generator.word(), - status: "active", - forceResetPassword: generator.bool(), - builder: { - global: generator.bool() - }, - admin: { - global: generator.bool() - }, - ...overrides -}) - -export default generate \ No newline at end of file diff --git a/qa-core/src/tests/public-api/users/fixtures/update_user.json b/qa-core/src/tests/public-api/users/fixtures/update_user.json deleted file mode 100644 index 72d24b3ee8..0000000000 --- a/qa-core/src/tests/public-api/users/fixtures/update_user.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "email": "test@budibase.com", - "roles": { - "sed_6d7": "sit ea amet", - "cupidatat_e16": "fugiat proident sed" - }, - "password": "cupidatat Lorem ad", - "status": "active", - "firstName": "QA", - "lastName": "Updated", - "forceResetPassword": true, - "builder": { - "global": true - }, - "admin": { - "global": false - } -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/users/fixtures/user.json b/qa-core/src/tests/public-api/users/fixtures/user.json deleted file mode 100644 index b6fc9f49e6..0000000000 --- a/qa-core/src/tests/public-api/users/fixtures/user.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "email": "test@budibase.com", - "roles": { - "sed_6d7": "sit ea amet", - "cupidatat_e16": "fugiat proident sed" - }, - "password": "cupidatat Lorem ad", - "status": "active", - "firstName": "QA", - "lastName": "Test", - "forceResetPassword": true, - "builder": { - "global": true - }, - "admin": { - "global": false - } -} \ No newline at end of file diff --git a/qa-core/src/tests/public-api/users/users.spec.ts b/qa-core/src/tests/public-api/users/users.spec.ts index c18a78ca72..95d257c0f9 100644 --- a/qa-core/src/tests/public-api/users/users.spec.ts +++ b/qa-core/src/tests/public-api/users/users.spec.ts @@ -1,9 +1,11 @@ -import TestConfiguration from "../TestConfiguration" -import PublicAPIClient from "../PublicAPIClient" +import TestConfiguration from "../../../config/public-api/TestConfiguration" +import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" +import generateUser from "../../../config/public-api/fixtures/users" +import { User } from "../../../../../packages/server/src/api/controllers/public/mapping/types" describe("Public API - /users endpoints", () => { const api = new PublicAPIClient() - const config = new TestConfiguration() + const config = new TestConfiguration(api) beforeAll(async () => { await config.beforeAll() @@ -14,33 +16,29 @@ describe("Public API - /users endpoints", () => { }) it("POST - Create a user", async () => { - const response = await api.post(`/users`, { - body: require("./fixtures/user.json") - }) - const json = await response.json() - config.testContext.user = json.data + const [response, user] = await config.users.create(generateUser()) + config.context = user expect(response).toHaveStatusCode(200) }) it("POST - Search users", async () => { - const response = await api.post(`/users/search`, { - body: { - name: config.testContext.user.email - } + const [response, user] = await config.users.search({ + name: config.context.email, }) expect(response).toHaveStatusCode(200) }) it("GET - Retrieve a user", async () => { - const response = await api.get(`/users/${config.testContext.user._id}`) + const [response, user] = await config.users.read(config.context._id) expect(response).toHaveStatusCode(200) }) - it("PUT - update a user", async () => { - const response = await api.put(`/users/${config.testContext.user._id}`, { - body: require("./fixtures/update_user.json") - }) + config.context.firstName = "Updated First Name" + const [response, user] = await config.users.update( + config.context._id, + config.context + ) expect(response).toHaveStatusCode(200) }) }) diff --git a/qa-core/tsconfig.json b/qa-core/tsconfig.json index c305c3a4bd..0fa56727b8 100644 --- a/qa-core/tsconfig.json +++ b/qa-core/tsconfig.json @@ -14,8 +14,6 @@ "skipLibCheck": true, "paths": { "@budibase/types": ["../packages/types/src"], - "@budibase/backend-core": ["../packages/backend-core/src"], - "@budibase/backend-core/*": ["../packages/backend-core/*"] } }, "ts-node": { @@ -23,7 +21,6 @@ }, "references": [ { "path": "../packages/types" }, - { "path": "../packages/backend-core" }, ], "include": [ "src/**/*", diff --git a/qa-core/yarn.lock b/qa-core/yarn.lock index 5daa4d7ee7..9474c47b7c 100644 --- a/qa-core/yarn.lock +++ b/qa-core/yarn.lock @@ -290,7 +290,7 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/types@^1.3.4": +"@budibase/types@1.3.4": version "1.3.4" resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.4.tgz#25f087b024e843eb372e50c81f8f925fb39f1dfd" integrity sha512-ndyWs8yeCS7cpZjApDB1HhY6UUM2SRBUgAMCZOZaWABG9JHeCbx7x0e/pA2SZjswdMXqS5WmnEd3br5wuvUzJw== @@ -342,7 +342,7 @@ jest-util "^28.1.3" slash "^3.0.0" -"@jest/core@^28.1.3": +"@jest/core@^28.0.2", "@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== @@ -712,7 +712,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.0.0": +"@types/jest@29.0.0": version "29.0.0" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.0.tgz#bc66835bf6b09d6a47e22c21d7f5b82692e60e72" integrity sha512-X6Zjz3WO4cT39Gkl0lZ2baFRaEMqJl5NC1OjElkwtNzAlbkr2K/WJXkBkH5VP0zx4Hgsd2TZYdOEfvp2Dxia+Q== @@ -720,7 +720,7 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/node-fetch@^2.6.2": +"@types/node-fetch@2.6.2": version "2.6.2" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== @@ -979,7 +979,7 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chance@^1.1.8: +chance@1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.8.tgz#5d6c2b78c9170bf6eb9df7acdda04363085be909" integrity sha512-v7fi5Hj2VbR6dJEGRWLmJBA83LJMS47pkAbmROFxHWd9qmE1esHRZW8Clf1Fhzr3rjxnNZVCjOEv/ivFxeIMtg== @@ -1499,7 +1499,7 @@ jest-circus@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^28.1.3: +jest-cli@^28.0.2: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== @@ -1866,15 +1866,14 @@ jest-worker@^28.1.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^28.0.2: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== +jest@28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.2.tgz#41385ca21d009708bb9fc65e08663110e08e2cc0" + integrity sha512-COUtjybolW4koQvO7kCfq5kgbeeU5WbSJfVZprz4zbS8AL32+RAZZTUjBEyRRdpsXqss/pHIvSL7/P+LyMYHXg== dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/core" "^28.0.2" import-local "^3.0.2" - jest-cli "^28.1.3" + jest-cli "^28.0.2" joi@^17.4.0: version "17.6.0" @@ -2163,7 +2162,7 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -prettier@^2.7.1: +prettier@2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== @@ -2328,7 +2327,7 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -start-server-and-test@^1.14.0: +start-server-and-test@1.14.0: version "1.14.0" resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== @@ -2448,7 +2447,7 @@ through@2, through@~2.3, through@~2.3.1: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -timekeeper@^2.2.0: +timekeeper@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/timekeeper/-/timekeeper-2.2.0.tgz#9645731fce9e3280a18614a57a9d1b72af3ca368" integrity sha512-W3AmPTJWZkRwu+iSNxPIsLZ2ByADsOLbbLxe46UJyWj3mlYLlwucKiq+/dPm0l9wTzqoF3/2PH0AGFCebjq23A== @@ -2489,7 +2488,7 @@ ts-jest@28.0.8: semver "7.x" yargs-parser "^21.0.1" -ts-node@^10.9.1: +ts-node@10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -2508,7 +2507,7 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^4.1.0: +tsconfig-paths@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" integrity sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow== @@ -2532,10 +2531,10 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typescript@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== +typescript@4.7.3: + version "4.7.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d" + integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA== update-browserslist-db@^1.0.5: version "1.0.7" From f4760d703b83cc4327a04c0bb897a8a06b0ee50e Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 15 Sep 2022 09:48:44 +0100 Subject: [PATCH 67/94] better generation, and letting tests run in isolation --- .../public-api/TestConfiguration/rows.ts | 14 ++----------- .../public-api/TestConfiguration/tables.ts | 21 +++---------------- .../public-api/TestConfiguration/users.ts | 5 ++++- .../public-api/fixtures/applications.ts | 9 ++++++-- .../src/config/public-api/fixtures/tables.ts | 16 ++++++++------ .../src/config/public-api/fixtures/users.ts | 7 +++++-- .../applications/applications.spec.ts | 3 ++- .../src/tests/public-api/tables/rows.spec.ts | 10 +++++---- .../tests/public-api/tables/tables.spec.ts | 8 ++++--- .../src/tests/public-api/users/users.spec.ts | 3 ++- 10 files changed, 46 insertions(+), 50 deletions(-) diff --git a/qa-core/src/config/public-api/TestConfiguration/rows.ts b/qa-core/src/config/public-api/TestConfiguration/rows.ts index 4e39e4ec9e..8a85e2cd77 100644 --- a/qa-core/src/config/public-api/TestConfiguration/rows.ts +++ b/qa-core/src/config/public-api/TestConfiguration/rows.ts @@ -15,25 +15,16 @@ export default class RowApi { this.api = apiClient } - set appId(appId: string) { - this.headers = { - "x-budibase-app-id": appId, - } - } - async create(body: CreateRowParams): Promise<[Response, Row]> { const response = await this.api.post(`/tables/${this.tableId}/rows`, { body, - headers: this.headers, }) const json = await response.json() return [response, json.data] } async read(id: string): Promise<[Response, Row]> { - const response = await this.api.get(`/tables/${this.tableId}/rows/${id}`, { - headers: this.headers, - }) + const response = await this.api.get(`/tables/${this.tableId}/rows/${id}`) const json = await response.json() return [response, json.data] } @@ -41,7 +32,7 @@ export default class RowApi { async search(body: SearchInputParams): Promise<[Response, Row]> { const response = await this.api.post( `/tables/${this.tableId}/rows/search`, - { body, headers: this.headers } + { body } ) const json = await response.json() return [response, json.data] @@ -50,7 +41,6 @@ export default class RowApi { async update(id: string, body: Row): Promise<[Response, Row]> { const response = await this.api.put(`/tables/${this.tableId}/rows/${id}`, { body, - headers: this.headers, }) const json = await response.json() return [response, json.data] diff --git a/qa-core/src/config/public-api/TestConfiguration/tables.ts b/qa-core/src/config/public-api/TestConfiguration/tables.ts index c0b7e088e1..847b4d00cc 100644 --- a/qa-core/src/config/public-api/TestConfiguration/tables.ts +++ b/qa-core/src/config/public-api/TestConfiguration/tables.ts @@ -19,43 +19,28 @@ export default class TableApi { return this.create(generateTable()) } - set appId(appId: string) { - this.headers = { - "x-budibase-app-id": appId, - } - } - async create(body: CreateTableParams): Promise<[Response, Table]> { const response = await this.api.post(`/tables`, { body, - headers: this.headers, }) const json = await response.json() return [response, json.data] } async read(id: string): Promise<[Response, Table]> { - const response = await this.api.get(`/tables/${id}`, { - headers: this.headers, - }) + const response = await this.api.get(`/tables/${id}`) const json = await response.json() return [response, json.data] } async search(body: SearchInputParams): Promise<[Response, Table]> { - const response = await this.api.post(`/tables/search`, { - body, - headers: this.headers, - }) + const response = await this.api.post(`/tables/search`, { body }) const json = await response.json() return [response, json.data] } async update(id: string, body: Table): Promise<[Response, Table]> { - const response = await this.api.put(`/tables/${id}`, { - body, - headers: this.headers, - }) + const response = await this.api.put(`/tables/${id}`, { body }) const json = await response.json() return [response, json.data] } diff --git a/qa-core/src/config/public-api/TestConfiguration/users.ts b/qa-core/src/config/public-api/TestConfiguration/users.ts index 79217620aa..34c5f57a1a 100644 --- a/qa-core/src/config/public-api/TestConfiguration/users.ts +++ b/qa-core/src/config/public-api/TestConfiguration/users.ts @@ -5,6 +5,7 @@ import { User, } from "../../../../../packages/server/src/api/controllers/public/mapping/types" import { Response } from "node-fetch" +import generateUser from "../fixtures/users" export default class UserApi { api: PublicAPIClient @@ -13,7 +14,9 @@ export default class UserApi { this.api = apiClient } - async seed() {} + async seed() { + return this.create(generateUser()) + } async create(body: CreateUserParams): Promise<[Response, User]> { const response = await this.api.post(`/users`, { body }) diff --git a/qa-core/src/config/public-api/fixtures/applications.ts b/qa-core/src/config/public-api/fixtures/applications.ts index 25456f4c4b..731c240c04 100644 --- a/qa-core/src/config/public-api/fixtures/applications.ts +++ b/qa-core/src/config/public-api/fixtures/applications.ts @@ -1,7 +1,12 @@ import generator from "../TestConfiguration/generator" -import { CreateApplicationParams } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { + Application, + CreateApplicationParams, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" -const generate = (overrides = {}): CreateApplicationParams => ({ +const generate = ( + overrides: Partial = {} +): CreateApplicationParams => ({ name: generator.word(), url: `/${generator.word()}`, ...overrides, diff --git a/qa-core/src/config/public-api/fixtures/tables.ts b/qa-core/src/config/public-api/fixtures/tables.ts index bbf93322c3..8d47076e5c 100644 --- a/qa-core/src/config/public-api/fixtures/tables.ts +++ b/qa-core/src/config/public-api/fixtures/tables.ts @@ -1,10 +1,14 @@ import { CreateRowParams, CreateTableParams, + Row, + Table, } from "../../../../../packages/server/src/api/controllers/public/mapping/types" import generator from "../TestConfiguration/generator" -export const generateTable = (overrides = {}): CreateTableParams => ({ +export const generateTable = ( + overrides: Partial
= {} +): CreateTableParams => ({ name: generator.word(), primaryDisplay: "sasa", schema: { @@ -20,7 +24,7 @@ export const generateTable = (overrides = {}): CreateTableParams => ({ }, "Created By": { autocolumn: true, - fieldName: "test12-Created By", + fieldName: generator.word(), name: "Created By", relationshipType: "many-to-many", tableId: "ta_users", @@ -37,7 +41,7 @@ export const generateTable = (overrides = {}): CreateTableParams => ({ }, "Updated By": { autocolumn: true, - fieldName: "test12-Updated By", + fieldName: generator.word(), name: "Updated By", relationshipType: "many-to-many", tableId: "ta_users", @@ -47,10 +51,10 @@ export const generateTable = (overrides = {}): CreateTableParams => ({ ...overrides, }) -export const generateRow = (overrides = {}): CreateRowParams => ({ +export const generateRow = (overrides: Partial = {}): CreateRowParams => ({ type: "row", tableId: "seed_table", - sasa: "Mike", - relationship: ["ro_ta_"], + sasa: generator.word(), + relationship: [generator.string({ length: 32, alpha: true, numeric: true })], ...overrides, }) diff --git a/qa-core/src/config/public-api/fixtures/users.ts b/qa-core/src/config/public-api/fixtures/users.ts index 52124024e7..aaca5f2480 100644 --- a/qa-core/src/config/public-api/fixtures/users.ts +++ b/qa-core/src/config/public-api/fixtures/users.ts @@ -1,7 +1,10 @@ -import { CreateUserParams } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { + CreateUserParams, + User, +} from "../../../../../packages/server/src/api/controllers/public/mapping/types" import generator from "../TestConfiguration/generator" -const generate = (overrides = {}): CreateUserParams => ({ +const generate = (overrides: Partial = {}): CreateUserParams => ({ email: generator.email(), roles: { [generator.string({ length: 32, alpha: true, numeric: true })]: diff --git a/qa-core/src/tests/public-api/applications/applications.spec.ts b/qa-core/src/tests/public-api/applications/applications.spec.ts index 1031f511b4..59a24861af 100644 --- a/qa-core/src/tests/public-api/applications/applications.spec.ts +++ b/qa-core/src/tests/public-api/applications/applications.spec.ts @@ -9,6 +9,8 @@ describe("Public API - /applications endpoints", () => { beforeAll(async () => { await config.beforeAll() + const [response, app] = await config.applications.seed() + config.context = app }) afterAll(async () => { @@ -17,7 +19,6 @@ describe("Public API - /applications endpoints", () => { it("POST - Create an application", async () => { const [response, app] = await config.applications.create(generateApp()) - config.context = app expect(response).toHaveStatusCode(200) }) diff --git a/qa-core/src/tests/public-api/tables/rows.spec.ts b/qa-core/src/tests/public-api/tables/rows.spec.ts index 66d46208cc..f34c4cde29 100644 --- a/qa-core/src/tests/public-api/tables/rows.spec.ts +++ b/qa-core/src/tests/public-api/tables/rows.spec.ts @@ -12,11 +12,14 @@ describe("Public API - /rows endpoints", () => { await config.beforeAll() const [appResp, app] = await config.applications.seed() - config.tables.appId = app._id - const [tableResp, table] = await config.tables.seed() + config.tables.api.appId = app._id + config.rows.api.appId = app._id - config.rows.appId = app._id + const [tableResp, table] = await config.tables.seed() config.rows.tableId = table._id + + const [response, row] = await config.rows.create(generateRow()) + config.context = row }) afterAll(async () => { @@ -25,7 +28,6 @@ describe("Public API - /rows endpoints", () => { it("POST - Create a row", async () => { const [response, row] = await config.rows.create(generateRow()) - config.context = row expect(response).toHaveStatusCode(200) }) diff --git a/qa-core/src/tests/public-api/tables/tables.spec.ts b/qa-core/src/tests/public-api/tables/tables.spec.ts index 9dfdc8cdc0..c2f50d3e8e 100644 --- a/qa-core/src/tests/public-api/tables/tables.spec.ts +++ b/qa-core/src/tests/public-api/tables/tables.spec.ts @@ -9,8 +9,11 @@ describe("Public API - /tables endpoints", () => { beforeAll(async () => { await config.beforeAll() - const [_, app] = await config.applications.seed() - config.tables.appId = app._id + const [appResp, app] = await config.applications.seed() + config.tables.api.appId = app._id + + const [tableResp, table] = await config.tables.seed() + config.context = table }) afterAll(async () => { @@ -19,7 +22,6 @@ describe("Public API - /tables endpoints", () => { it("POST - Create a table", async () => { const [response, table] = await config.tables.create(generateTable()) - config.context = table expect(response).toHaveStatusCode(200) }) diff --git a/qa-core/src/tests/public-api/users/users.spec.ts b/qa-core/src/tests/public-api/users/users.spec.ts index 95d257c0f9..b981deb786 100644 --- a/qa-core/src/tests/public-api/users/users.spec.ts +++ b/qa-core/src/tests/public-api/users/users.spec.ts @@ -9,6 +9,8 @@ describe("Public API - /users endpoints", () => { beforeAll(async () => { await config.beforeAll() + const [response, user] = await config.users.seed() + config.context = user }) afterAll(async () => { @@ -17,7 +19,6 @@ describe("Public API - /users endpoints", () => { it("POST - Create a user", async () => { const [response, user] = await config.users.create(generateUser()) - config.context = user expect(response).toHaveStatusCode(200) }) From 04749bf93a17516f8f71d44b49995b2d50b080bb Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 09:34:28 +0000 Subject: [PATCH 68/94] v1.3.19-alpha.0 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index 1c19e55de0..7eb5a19c79 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.18", + "version": "1.3.19-alpha.0", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index a8360f4dbc..60fc965793 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.3.18", + "@budibase/types": "1.3.19-alpha.0", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index b554bdfc21..0095277d39 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": "1.3.18", + "version": "1.3.19-alpha.0", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.3.18", + "@budibase/string-templates": "1.3.19-alpha.0", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index c28c79054b..208e7ffb7a 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.3.18", - "@budibase/client": "^1.3.18", - "@budibase/frontend-core": "^1.3.18", - "@budibase/string-templates": "^1.3.18", + "@budibase/bbui": "1.3.19-alpha.0", + "@budibase/client": "1.3.19-alpha.0", + "@budibase/frontend-core": "1.3.19-alpha.0", + "@budibase/string-templates": "1.3.19-alpha.0", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 5e7506a03e..8a01f07075 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.18", - "@budibase/string-templates": "1.3.18", - "@budibase/types": "1.3.18", + "@budibase/backend-core": "1.3.19-alpha.0", + "@budibase/string-templates": "1.3.19-alpha.0", + "@budibase/types": "1.3.19-alpha.0", "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 a3c6cd0fef..de6561debe 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.3.18", - "@budibase/frontend-core": "^1.3.18", - "@budibase/string-templates": "^1.3.18", + "@budibase/bbui": "1.3.19-alpha.0", + "@budibase/frontend-core": "1.3.19-alpha.0", + "@budibase/string-templates": "1.3.19-alpha.0", "@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 aab5cb7bd9..015e37cc64 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.3.18", + "@budibase/bbui": "1.3.19-alpha.0", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 57c51bc626..d2b5183552 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.3.18", - "@budibase/client": "^1.3.18", + "@budibase/backend-core": "1.3.19-alpha.0", + "@budibase/client": "1.3.19-alpha.0", "@budibase/pro": "1.3.18", - "@budibase/string-templates": "^1.3.18", - "@budibase/types": "^1.3.18", + "@budibase/string-templates": "1.3.19-alpha.0", + "@budibase/types": "1.3.19-alpha.0", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index dc251d741a..d1ff02b38b 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "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 bc59e79328..e5a0e3ba93 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index c4ce118996..b8fb36b32b 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.18", + "version": "1.3.19-alpha.0", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.3.18", + "@budibase/backend-core": "1.3.19-alpha.0", "@budibase/pro": "1.3.18", - "@budibase/string-templates": "^1.3.18", - "@budibase/types": "^1.3.18", + "@budibase/string-templates": "1.3.19-alpha.0", + "@budibase/types": "1.3.19-alpha.0", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 63211a46012944e36dd0516c13888248b8f5f788 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 09:38:19 +0000 Subject: [PATCH 69/94] Update pro version to 1.3.19-alpha.0 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 31 ++++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 31 ++++++++++++++++--------------- 4 files changed, 34 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index d2b5183552..84520ecbe4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.19-alpha.0", "@budibase/client": "1.3.19-alpha.0", - "@budibase/pro": "1.3.18", + "@budibase/pro": "1.3.19-alpha.0", "@budibase/string-templates": "1.3.19-alpha.0", "@budibase/types": "1.3.19-alpha.0", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 2df10f1a2c..3e008e774e 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,16 +1094,17 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.18.tgz#5ef26e3283f46b321103766b0359ca72035c8942" - integrity sha512-utux5ydlnejKavU2H2HlCJkIyymVmGj+rVJp+SR1JrtPW2wkzHzpYn2k9eXFOYnAwqTF8jpCj4FVOEeDTfQcbw== +"@budibase/backend-core@1.3.19-alpha.0": + version "1.3.19-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.0.tgz#e9785994485b16eb0c2f082fe5803c690199a397" + integrity sha512-avYT4DLDG3GMDNOKHgbNRJIqzHimdhSxjiifbVnMfizLjWL94eAqVgRA4kOiWkEuuH6Wlc5dmI359dJvsWKErw== dependencies: - "@budibase/types" "^1.3.18" + "@budibase/types" "1.3.19-alpha.0" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" bcrypt "5.0.1" + bcryptjs "2.4.3" dotenv "16.0.1" emitter-listener "1.1.2" ioredis "4.28.0" @@ -1179,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.18.tgz#35a59e86c00971dd77a0b196e381a5ffd3be767c" - integrity sha512-aFGUr/ut4Ki56qLSdFaDLoEIPmwMqT5dGmY1xBT3Bwvhoq7hXevk1bcPFGj0rWBJnYG9zg/jmik9V4mE/lUOag== +"@budibase/pro@1.3.19-alpha.0": + version "1.3.19-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.0.tgz#26a3a1834add9f2b87d1bb9a04708c72cd2eea94" + integrity sha512-7g8LlKsrCA0iqsghCMppRFNUb+ytdsK4ZageOgzkFhtNxDT5nqYeERDN+fFd4XhqOCsiUebC1bhkRFHapKfLZA== dependencies: - "@budibase/backend-core" "1.3.18" - "@budibase/types" "1.3.18" + "@budibase/backend-core" "1.3.19-alpha.0" + "@budibase/types" "1.3.19-alpha.0" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1208,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.18", "@budibase/types@^1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.18.tgz#cd65213f476a2f37065796d0ccba18c8e8e07504" - integrity sha512-bMtS2RbbI3Ztl5aAwEVlsK+2PQ0vRSZm8n6YDRjC9Arc94B4GDl/sqowRndKYqVtUeA/gVW0HH8x+qzhuMX6Dw== +"@budibase/types@1.3.19-alpha.0": + version "1.3.19-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.0.tgz#402801d1ea5b2e2b82a45a37f06bab28eee8ccb6" + integrity sha512-SKp5cKMar+SUryBwBcdP3zcclCe+48jjMseCNNmjG7ZEkrz0SPWsFE6FJTFfG/PbIgq8DPkvrrCXPY7ZlExW/g== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index b8fb36b32b..a2f8234b06 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.19-alpha.0", - "@budibase/pro": "1.3.18", + "@budibase/pro": "1.3.19-alpha.0", "@budibase/string-templates": "1.3.19-alpha.0", "@budibase/types": "1.3.19-alpha.0", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index b6dd949d64..ebdfcaa096 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,16 +291,17 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.18.tgz#5ef26e3283f46b321103766b0359ca72035c8942" - integrity sha512-utux5ydlnejKavU2H2HlCJkIyymVmGj+rVJp+SR1JrtPW2wkzHzpYn2k9eXFOYnAwqTF8jpCj4FVOEeDTfQcbw== +"@budibase/backend-core@1.3.19-alpha.0": + version "1.3.19-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.0.tgz#e9785994485b16eb0c2f082fe5803c690199a397" + integrity sha512-avYT4DLDG3GMDNOKHgbNRJIqzHimdhSxjiifbVnMfizLjWL94eAqVgRA4kOiWkEuuH6Wlc5dmI359dJvsWKErw== dependencies: - "@budibase/types" "^1.3.18" + "@budibase/types" "1.3.19-alpha.0" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" bcrypt "5.0.1" + bcryptjs "2.4.3" dotenv "16.0.1" emitter-listener "1.1.2" ioredis "4.28.0" @@ -326,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.18.tgz#35a59e86c00971dd77a0b196e381a5ffd3be767c" - integrity sha512-aFGUr/ut4Ki56qLSdFaDLoEIPmwMqT5dGmY1xBT3Bwvhoq7hXevk1bcPFGj0rWBJnYG9zg/jmik9V4mE/lUOag== +"@budibase/pro@1.3.19-alpha.0": + version "1.3.19-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.0.tgz#26a3a1834add9f2b87d1bb9a04708c72cd2eea94" + integrity sha512-7g8LlKsrCA0iqsghCMppRFNUb+ytdsK4ZageOgzkFhtNxDT5nqYeERDN+fFd4XhqOCsiUebC1bhkRFHapKfLZA== dependencies: - "@budibase/backend-core" "1.3.18" - "@budibase/types" "1.3.18" + "@budibase/backend-core" "1.3.19-alpha.0" + "@budibase/types" "1.3.19-alpha.0" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.18", "@budibase/types@^1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.18.tgz#cd65213f476a2f37065796d0ccba18c8e8e07504" - integrity sha512-bMtS2RbbI3Ztl5aAwEVlsK+2PQ0vRSZm8n6YDRjC9Arc94B4GDl/sqowRndKYqVtUeA/gVW0HH8x+qzhuMX6Dw== +"@budibase/types@1.3.19-alpha.0": + version "1.3.19-alpha.0" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.0.tgz#402801d1ea5b2e2b82a45a37f06bab28eee8ccb6" + integrity sha512-SKp5cKMar+SUryBwBcdP3zcclCe+48jjMseCNNmjG7ZEkrz0SPWsFE6FJTFfG/PbIgq8DPkvrrCXPY7ZlExW/g== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From ff8760e86083f77bce81319453e27d081fa49cd9 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Thu, 15 Sep 2022 11:23:51 +0100 Subject: [PATCH 70/94] Pre-review tidy, add new badge to plugins --- packages/backend-core/src/constants.js | 1 + .../backend-core/src/middleware/authenticated.ts | 12 ++---------- .../builder/src/pages/builder/portal/_layout.svelte | 6 +++++- packages/server/src/api/routes/tests/user.spec.js | 2 -- packages/types/src/sdk/licensing/billing.ts | 8 ++++---- 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/packages/backend-core/src/constants.js b/packages/backend-core/src/constants.js index e1901986b4..89d4fd33e6 100644 --- a/packages/backend-core/src/constants.js +++ b/packages/backend-core/src/constants.js @@ -6,6 +6,7 @@ exports.UserStatus = { exports.Cookies = { CurrentApp: "budibase:currentapp", Auth: "budibase:auth", + Init: "budibase:init", RETURN_URL: "budibase:returnurl", DatasourceAuth: "budibase:datasourceauth", OIDC_CONFIG: "budibase:oidc:config", diff --git a/packages/backend-core/src/middleware/authenticated.ts b/packages/backend-core/src/middleware/authenticated.ts index 0e1b31b9b7..a3c6b67cde 100644 --- a/packages/backend-core/src/middleware/authenticated.ts +++ b/packages/backend-core/src/middleware/authenticated.ts @@ -10,7 +10,6 @@ import { getGlobalDB, doInTenant } from "../tenancy" import { decrypt } from "../security/encryption" const identity = require("../context/identity") const env = require("../environment") -import { User } from "@budibase/types" const ONE_MINUTE = env.SESSION_UPDATE_PERIOD || 60 * 1000 @@ -68,11 +67,7 @@ async function checkApiKey(apiKey: string, populateUser?: Function) { */ export = ( noAuthPatterns = [], - opts: { - publicAllowed: boolean - populateUser?: Function - checkDayPass?: (ctx: any, user: User, tenantId: string) => Promise - } = { + opts: { publicAllowed: boolean; populateUser?: Function } = { publicAllowed: false, } ) => { @@ -112,10 +107,7 @@ export = ( } user.csrfToken = session.csrfToken - if ( - !session.lastAccessedAt || - session.lastAccessedAt < timeMinusOneMinute() - ) { + if (session?.lastAccessedAt < timeMinusOneMinute()) { // make sure we denote that the session is still in use await updateSessionTTL(session) } diff --git a/packages/builder/src/pages/builder/portal/_layout.svelte b/packages/builder/src/pages/builder/portal/_layout.svelte index 69dfa646b5..ff653c4cb7 100644 --- a/packages/builder/src/pages/builder/portal/_layout.svelte +++ b/packages/builder/src/pages/builder/portal/_layout.svelte @@ -54,7 +54,11 @@ : undefined, { title: "Auth", href: "/builder/portal/manage/auth" }, { title: "Email", href: "/builder/portal/manage/email" }, - { title: "Plugins", href: "/builder/portal/manage/plugins" }, + { + title: "Plugins", + href: "/builder/portal/manage/plugins", + badge: "New", + }, { title: "Organisation", diff --git a/packages/server/src/api/routes/tests/user.spec.js b/packages/server/src/api/routes/tests/user.spec.js index 8436b80152..29c33b3899 100644 --- a/packages/server/src/api/routes/tests/user.spec.js +++ b/packages/server/src/api/routes/tests/user.spec.js @@ -2,8 +2,6 @@ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles") const { checkPermissionsEndpoint } = require("./utilities/TestFunctions") const setup = require("./utilities") -jest.setTimeout(100000) - jest.mock("../../../utilities/workerRequests", () => ({ getGlobalUsers: jest.fn(() => { return {} diff --git a/packages/types/src/sdk/licensing/billing.ts b/packages/types/src/sdk/licensing/billing.ts index 6743b9cb17..da2aca1615 100644 --- a/packages/types/src/sdk/licensing/billing.ts +++ b/packages/types/src/sdk/licensing/billing.ts @@ -1,11 +1,11 @@ import { PriceDuration } from "./plan" -export interface CustomerBilling { +export interface Customer { balance: number | null | undefined currency: string | null | undefined } -export interface SubscriptionBilling { +export interface Subscription { amount: number quantity: number duration: PriceDuration @@ -15,6 +15,6 @@ export interface SubscriptionBilling { } export interface Billing { - customer: CustomerBilling - subscription?: SubscriptionBilling + customer: Customer + subscription?: Subscription } From c2fa27038673f26aa75796d1570b8ab2f62c20a4 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Thu, 15 Sep 2022 11:59:46 +0100 Subject: [PATCH 71/94] Fixes --- packages/backend-core/src/constants.js | 2 +- packages/builder/src/pages/builder/_layout.svelte | 5 +++-- packages/builder/src/pages/builder/portal/_layout.svelte | 3 +-- packages/builder/src/stores/portal/licensing.js | 4 ++++ packages/frontend-core/src/constants.js | 1 + 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/backend-core/src/constants.js b/packages/backend-core/src/constants.js index 89d4fd33e6..44c271a4f8 100644 --- a/packages/backend-core/src/constants.js +++ b/packages/backend-core/src/constants.js @@ -7,7 +7,7 @@ exports.Cookies = { CurrentApp: "budibase:currentapp", Auth: "budibase:auth", Init: "budibase:init", - RETURN_URL: "budibase:returnurl", + ACCOUNT_RETURN_URL: "budibase:account:returnurl", DatasourceAuth: "budibase:datasourceauth", OIDC_CONFIG: "budibase:oidc:config", } diff --git a/packages/builder/src/pages/builder/_layout.svelte b/packages/builder/src/pages/builder/_layout.svelte index ee8b1bb8df..8d604e8790 100644 --- a/packages/builder/src/pages/builder/_layout.svelte +++ b/packages/builder/src/pages/builder/_layout.svelte @@ -63,8 +63,9 @@ await auth.getSelf() await admin.init() - await licensing.getQuotaUsage() - await licensing.getUsageMetrics() + if ($auth.user) { + await licensing.init() + } // Set init info if present if ($params["?template"]) { diff --git a/packages/builder/src/pages/builder/portal/_layout.svelte b/packages/builder/src/pages/builder/portal/_layout.svelte index ff653c4cb7..bdf18ab508 100644 --- a/packages/builder/src/pages/builder/portal/_layout.svelte +++ b/packages/builder/src/pages/builder/portal/_layout.svelte @@ -13,8 +13,7 @@ notifications, } from "@budibase/bbui" import ConfigChecklist from "components/common/ConfigChecklist.svelte" - import { organisation, auth } from "stores/portal" - import { admin as adminStore } from "stores/portal" + import { organisation, auth, admin as adminStore } from "stores/portal" import { onMount } from "svelte" import UpdateUserInfoModal from "components/settings/UpdateUserInfoModal.svelte" import ChangePasswordModal from "components/settings/ChangePasswordModal.svelte" diff --git a/packages/builder/src/stores/portal/licensing.js b/packages/builder/src/stores/portal/licensing.js index ecf0ccb8c2..9d63a9edb5 100644 --- a/packages/builder/src/stores/portal/licensing.js +++ b/packages/builder/src/stores/portal/licensing.js @@ -13,6 +13,10 @@ export const createLicensingStore = () => { const store = writable(DEFAULT) const actions = { + init: async () => { + await actions.getQuotaUsage() + await actions.getUsageMetrics() + }, getQuotaUsage: async () => { const quotaUsage = await API.getQuotaUsage() store.update(state => { diff --git a/packages/frontend-core/src/constants.js b/packages/frontend-core/src/constants.js index a5b3650b1c..633534dddb 100644 --- a/packages/frontend-core/src/constants.js +++ b/packages/frontend-core/src/constants.js @@ -57,6 +57,7 @@ export const Cookies = { Auth: "budibase:auth", CurrentApp: "budibase:currentapp", ReturnUrl: "budibase:returnurl", + AccountReturnUrl: "budibase:account:returnurl", } // Table names From 59e8e97bbca1c810a54778dd58a9415a4d389855 Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 15 Sep 2022 12:45:47 +0100 Subject: [PATCH 72/94] Updated copy from the payment modal --- .../src/components/portal/licensing/PaymentFailedModal.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte b/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte index 591742a3d0..21a3c2dcd9 100644 --- a/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte +++ b/packages/builder/src/components/portal/licensing/PaymentFailedModal.svelte @@ -38,7 +38,7 @@ window.location.href = upgradeUrl }} > - The payment for your business plan subscription has failed + The payment for your subscription has failed Please upgrade your billing details before your account gets downgraded to the free plan @@ -56,7 +56,7 @@ {:else} - The payment for your business plan subscription has failed + The payment for your subscription has failed Please upgrade your billing details before your account gets downgraded to the free plan From c8789412e2346c2dcd46aec47f937b4830ff9078 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Thu, 15 Sep 2022 13:22:17 +0100 Subject: [PATCH 73/94] Don't show budibase logo on free plan in self hosted installations --- .../client/src/components/app/Layout.svelte | 11 +++++-- packages/client/src/sdk.js | 2 ++ packages/client/src/stores/environment.js | 31 +++++++++++++++++++ packages/client/src/stores/index.js | 1 + packages/client/src/stores/initialise.js | 2 ++ 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 packages/client/src/stores/environment.js diff --git a/packages/client/src/components/app/Layout.svelte b/packages/client/src/components/app/Layout.svelte index eb77e7a550..7897782b3e 100644 --- a/packages/client/src/components/app/Layout.svelte +++ b/packages/client/src/components/app/Layout.svelte @@ -9,7 +9,14 @@ import licensing from "../../licensing" const sdk = getContext("sdk") - const { routeStore, styleable, linkable, builderStore, currentRole } = sdk + const { + routeStore, + styleable, + linkable, + builderStore, + currentRole, + environmentStore, + } = sdk const component = getContext("component") const context = getContext("context") @@ -228,7 +235,7 @@ {/if} - {#if !$builderStore.inBuilder && licensing.logoEnabled()} + {#if !$builderStore.inBuilder && licensing.logoEnabled() && $environmentStore.cloud} {/if} diff --git a/packages/client/src/sdk.js b/packages/client/src/sdk.js index 13190e0a4f..aa778388f6 100644 --- a/packages/client/src/sdk.js +++ b/packages/client/src/sdk.js @@ -9,6 +9,7 @@ import { rowSelectionStore, componentStore, currentRole, + environmentStore, } from "stores" import { styleable } from "utils/styleable" import { linkable } from "utils/linkable" @@ -27,6 +28,7 @@ export default { builderStore, uploadStore, componentStore, + environmentStore, currentRole, styleable, linkable, diff --git a/packages/client/src/stores/environment.js b/packages/client/src/stores/environment.js new file mode 100644 index 0000000000..ebeb67c622 --- /dev/null +++ b/packages/client/src/stores/environment.js @@ -0,0 +1,31 @@ +import { API } from "api" +import { writable } from "svelte/store" + +const initialState = { + cloud: false, +} + +const createEnvironmentStore = () => { + const store = writable(initialState) + + const actions = { + fetchEnvironment: async () => { + try { + const environment = await API.getEnvironment() + store.set({ + ...initialState, + ...environment, + }) + } catch (error) { + store.set(initialState) + } + }, + } + + return { + subscribe: store.subscribe, + actions, + } +} + +export const environmentStore = createEnvironmentStore() diff --git a/packages/client/src/stores/index.js b/packages/client/src/stores/index.js index e28fbaee42..378d3febd2 100644 --- a/packages/client/src/stores/index.js +++ b/packages/client/src/stores/index.js @@ -17,6 +17,7 @@ export { devToolsStore } from "./devTools" export { componentStore } from "./components" export { uploadStore } from "./uploads.js" export { rowSelectionStore } from "./rowSelection.js" +export { environmentStore } from "./environment" // Context stores are layered and duplicated, so it is not a singleton export { createContextStore } from "./context" diff --git a/packages/client/src/stores/initialise.js b/packages/client/src/stores/initialise.js index 1900e62ce1..4ad85dfd40 100644 --- a/packages/client/src/stores/initialise.js +++ b/packages/client/src/stores/initialise.js @@ -1,7 +1,9 @@ import { routeStore } from "./routes" import { appStore } from "./app" +import { environmentStore } from "./environment" export async function initialise() { await routeStore.actions.fetchRoutes() await appStore.actions.fetchAppDefinition() + await environmentStore.actions.fetchEnvironment() } From 9eb4995976ec00b40ba52df7d0bc357e8df6edce Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 12:46:10 +0000 Subject: [PATCH 74/94] v1.3.19-alpha.1 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 4 ++-- packages/worker/package.json | 8 ++++---- 11 files changed, 32 insertions(+), 32 deletions(-) diff --git a/lerna.json b/lerna.json index 7eb5a19c79..00fe6c6f90 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 60fc965793..d8ba9577c6 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.19-alpha.0", + "@budibase/types": "1.3.19-alpha.1", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0095277d39..31da9d3ad8 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": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.19-alpha.0", + "@budibase/string-templates": "1.3.19-alpha.1", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 208e7ffb7a..07aeddf882 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.0", - "@budibase/client": "1.3.19-alpha.0", - "@budibase/frontend-core": "1.3.19-alpha.0", - "@budibase/string-templates": "1.3.19-alpha.0", + "@budibase/bbui": "1.3.19-alpha.1", + "@budibase/client": "1.3.19-alpha.1", + "@budibase/frontend-core": "1.3.19-alpha.1", + "@budibase/string-templates": "1.3.19-alpha.1", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 8a01f07075..f046ce1a8f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.0", - "@budibase/string-templates": "1.3.19-alpha.0", - "@budibase/types": "1.3.19-alpha.0", + "@budibase/backend-core": "1.3.19-alpha.1", + "@budibase/string-templates": "1.3.19-alpha.1", + "@budibase/types": "1.3.19-alpha.1", "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 de6561debe..7fb54ae616 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.0", - "@budibase/frontend-core": "1.3.19-alpha.0", - "@budibase/string-templates": "1.3.19-alpha.0", + "@budibase/bbui": "1.3.19-alpha.1", + "@budibase/frontend-core": "1.3.19-alpha.1", + "@budibase/string-templates": "1.3.19-alpha.1", "@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 015e37cc64..342d1d6f06 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.19-alpha.0", + "@budibase/bbui": "1.3.19-alpha.1", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 84520ecbe4..64bb59d622 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.19-alpha.0", - "@budibase/client": "1.3.19-alpha.0", + "@budibase/backend-core": "1.3.19-alpha.1", + "@budibase/client": "1.3.19-alpha.1", "@budibase/pro": "1.3.19-alpha.0", - "@budibase/string-templates": "1.3.19-alpha.0", - "@budibase/types": "1.3.19-alpha.0", + "@budibase/string-templates": "1.3.19-alpha.1", + "@budibase/types": "1.3.19-alpha.1", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index d1ff02b38b..8464f37a8d 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "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 9ec97d41dd..cd7c0f4a55 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -13,8 +13,8 @@ }, "jest": {}, "devDependencies": { - "@types/node": "14.18.20", "@types/koa": "2.13.4", + "@types/node": "14.18.20", "rimraf": "3.0.2", "typescript": "4.7.3" } diff --git a/packages/worker/package.json b/packages/worker/package.json index a2f8234b06..16ed09e6bb 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.19-alpha.0", + "version": "1.3.19-alpha.1", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.0", + "@budibase/backend-core": "1.3.19-alpha.1", "@budibase/pro": "1.3.19-alpha.0", - "@budibase/string-templates": "1.3.19-alpha.0", - "@budibase/types": "1.3.19-alpha.0", + "@budibase/string-templates": "1.3.19-alpha.1", + "@budibase/types": "1.3.19-alpha.1", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 89a0a0f82bc63d55b49807451aedb241335511e9 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 12:49:14 +0000 Subject: [PATCH 75/94] Update pro version to 1.3.19-alpha.1 --- 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 64bb59d622..85b0f87186 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.19-alpha.1", "@budibase/client": "1.3.19-alpha.1", - "@budibase/pro": "1.3.19-alpha.0", + "@budibase/pro": "1.3.19-alpha.1", "@budibase/string-templates": "1.3.19-alpha.1", "@budibase/types": "1.3.19-alpha.1", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 3e008e774e..b20aa1e7de 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.0": - version "1.3.19-alpha.0" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.0.tgz#e9785994485b16eb0c2f082fe5803c690199a397" - integrity sha512-avYT4DLDG3GMDNOKHgbNRJIqzHimdhSxjiifbVnMfizLjWL94eAqVgRA4kOiWkEuuH6Wlc5dmI359dJvsWKErw== +"@budibase/backend-core@1.3.19-alpha.1": + version "1.3.19-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.1.tgz#51ccbe0d55564dee8af674b112a3bbacc7b91fa8" + integrity sha512-aV9jQVjMZ8YBtTnRKVRjrFzCdnvFH0bC9jzlKqoy47aDUtIufkPpWNyjQ0AhTI7R5WymPaVZUO69YSTnJxg/4Q== dependencies: - "@budibase/types" "1.3.19-alpha.0" + "@budibase/types" "1.3.19-alpha.1" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.19-alpha.0": - version "1.3.19-alpha.0" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.0.tgz#26a3a1834add9f2b87d1bb9a04708c72cd2eea94" - integrity sha512-7g8LlKsrCA0iqsghCMppRFNUb+ytdsK4ZageOgzkFhtNxDT5nqYeERDN+fFd4XhqOCsiUebC1bhkRFHapKfLZA== +"@budibase/pro@1.3.19-alpha.1": + version "1.3.19-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.1.tgz#55450f874ceb3c5e77f24bba61a01eae726a4212" + integrity sha512-12upf50hBr90WYRzZFQ84zEmt4ZXpbik2RQU9L5kQ1ByUGIz6ALLoe4+Qqyd0pj66nJgg3VoOCfMsEu2PIm78A== dependencies: - "@budibase/backend-core" "1.3.19-alpha.0" - "@budibase/types" "1.3.19-alpha.0" + "@budibase/backend-core" "1.3.19-alpha.1" + "@budibase/types" "1.3.19-alpha.1" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.19-alpha.0": - version "1.3.19-alpha.0" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.0.tgz#402801d1ea5b2e2b82a45a37f06bab28eee8ccb6" - integrity sha512-SKp5cKMar+SUryBwBcdP3zcclCe+48jjMseCNNmjG7ZEkrz0SPWsFE6FJTFfG/PbIgq8DPkvrrCXPY7ZlExW/g== +"@budibase/types@1.3.19-alpha.1": + version "1.3.19-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.1.tgz#4b42824183571ebc5acfc42bd2b1306a54313c90" + integrity sha512-3+b37gI0uT7OrUNiIcfcmYEelt+yUoVrQffa9W5OXwpKLjh/wQ89ESqgjaZXV0yPrk5ZbIxyfhWLlQyFbrmkrA== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 16ed09e6bb..ff4eb308a0 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.19-alpha.1", - "@budibase/pro": "1.3.19-alpha.0", + "@budibase/pro": "1.3.19-alpha.1", "@budibase/string-templates": "1.3.19-alpha.1", "@budibase/types": "1.3.19-alpha.1", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index ebdfcaa096..a77703f1ba 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.0": - version "1.3.19-alpha.0" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.0.tgz#e9785994485b16eb0c2f082fe5803c690199a397" - integrity sha512-avYT4DLDG3GMDNOKHgbNRJIqzHimdhSxjiifbVnMfizLjWL94eAqVgRA4kOiWkEuuH6Wlc5dmI359dJvsWKErw== +"@budibase/backend-core@1.3.19-alpha.1": + version "1.3.19-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.1.tgz#51ccbe0d55564dee8af674b112a3bbacc7b91fa8" + integrity sha512-aV9jQVjMZ8YBtTnRKVRjrFzCdnvFH0bC9jzlKqoy47aDUtIufkPpWNyjQ0AhTI7R5WymPaVZUO69YSTnJxg/4Q== dependencies: - "@budibase/types" "1.3.19-alpha.0" + "@budibase/types" "1.3.19-alpha.1" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.19-alpha.0": - version "1.3.19-alpha.0" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.0.tgz#26a3a1834add9f2b87d1bb9a04708c72cd2eea94" - integrity sha512-7g8LlKsrCA0iqsghCMppRFNUb+ytdsK4ZageOgzkFhtNxDT5nqYeERDN+fFd4XhqOCsiUebC1bhkRFHapKfLZA== +"@budibase/pro@1.3.19-alpha.1": + version "1.3.19-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.1.tgz#55450f874ceb3c5e77f24bba61a01eae726a4212" + integrity sha512-12upf50hBr90WYRzZFQ84zEmt4ZXpbik2RQU9L5kQ1ByUGIz6ALLoe4+Qqyd0pj66nJgg3VoOCfMsEu2PIm78A== dependencies: - "@budibase/backend-core" "1.3.19-alpha.0" - "@budibase/types" "1.3.19-alpha.0" + "@budibase/backend-core" "1.3.19-alpha.1" + "@budibase/types" "1.3.19-alpha.1" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.19-alpha.0": - version "1.3.19-alpha.0" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.0.tgz#402801d1ea5b2e2b82a45a37f06bab28eee8ccb6" - integrity sha512-SKp5cKMar+SUryBwBcdP3zcclCe+48jjMseCNNmjG7ZEkrz0SPWsFE6FJTFfG/PbIgq8DPkvrrCXPY7ZlExW/g== +"@budibase/types@1.3.19-alpha.1": + version "1.3.19-alpha.1" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.1.tgz#4b42824183571ebc5acfc42bd2b1306a54313c90" + integrity sha512-3+b37gI0uT7OrUNiIcfcmYEelt+yUoVrQffa9W5OXwpKLjh/wQ89ESqgjaZXV0yPrk5ZbIxyfhWLlQyFbrmkrA== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 408fcc725b98dc393aea1cca3cf1a177f78098c3 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Thu, 15 Sep 2022 14:23:25 +0100 Subject: [PATCH 76/94] Ignore empty name validation on app update and change free logo text --- ...{MadeInBudibase.svelte => FreeLogo.svelte} | 2 +- .../client/src/components/app/Layout.svelte | 4 +-- packages/server/src/api/routes/application.ts | 2 +- .../server/src/api/routes/utils/validators.js | 30 +++++++++++++++---- 4 files changed, 29 insertions(+), 9 deletions(-) rename packages/client/src/components/{MadeInBudibase.svelte => FreeLogo.svelte} (96%) diff --git a/packages/client/src/components/MadeInBudibase.svelte b/packages/client/src/components/FreeLogo.svelte similarity index 96% rename from packages/client/src/components/MadeInBudibase.svelte rename to packages/client/src/components/FreeLogo.svelte index ef31a9cfb5..2a5a936cdb 100644 --- a/packages/client/src/components/MadeInBudibase.svelte +++ b/packages/client/src/components/FreeLogo.svelte @@ -8,7 +8,7 @@ >
Budibase -

Made In Budibase

+

Made with Budibase

diff --git a/packages/client/src/components/app/Layout.svelte b/packages/client/src/components/app/Layout.svelte index 7897782b3e..a317da1f0f 100644 --- a/packages/client/src/components/app/Layout.svelte +++ b/packages/client/src/components/app/Layout.svelte @@ -5,7 +5,7 @@ import { FieldTypes } from "constants" import active from "svelte-spa-router/active" import { RoleUtils } from "@budibase/frontend-core" - import MadeInBudibase from "../MadeInBudibase.svelte" + import FreeLogo from "../FreeLogo.svelte" import licensing from "../../licensing" const sdk = getContext("sdk") @@ -236,7 +236,7 @@ {/if} {#if !$builderStore.inBuilder && licensing.logoEnabled() && $environmentStore.cloud} - + {/if}
diff --git a/packages/server/src/api/routes/application.ts b/packages/server/src/api/routes/application.ts index 0ebdf548e3..8627dd024c 100644 --- a/packages/server/src/api/routes/application.ts +++ b/packages/server/src/api/routes/application.ts @@ -20,7 +20,7 @@ router .put( "/api/applications/:appId", authorized(BUILDER), - applicationValidator(), + applicationValidator({ isCreate: false }), controller.update ) .post( diff --git a/packages/server/src/api/routes/utils/validators.js b/packages/server/src/api/routes/utils/validators.js index 000c9655bc..ab9f2afaf0 100644 --- a/packages/server/src/api/routes/utils/validators.js +++ b/packages/server/src/api/routes/utils/validators.js @@ -210,15 +210,35 @@ exports.automationValidator = (existing = false) => { }).unknown(true)) } -exports.applicationValidator = () => { +exports.applicationValidator = (opts = { isCreate: true }) => { // prettier-ignore - return joiValidator.body(Joi.object({ + const base = { _id: OPTIONAL_STRING, _rev: OPTIONAL_STRING, - name: Joi.string().pattern(new RegExp(APP_NAME_REGEX)).required().error(new Error('App name must be letters, numbers and spaces only')), url: OPTIONAL_STRING, template: Joi.object({ templateString: OPTIONAL_STRING, - }).unknown(true), - }).unknown(true)) + }) + } + + const appNameValidator = Joi.string() + .pattern(new RegExp(APP_NAME_REGEX)) + .error(new Error("App name must be letters, numbers and spaces only")) + if (opts.isCreate) { + base.name = appNameValidator.required() + } else { + base.name = appNameValidator.optional() + } + + return joiValidator.body( + Joi.object({ + _id: OPTIONAL_STRING, + _rev: OPTIONAL_STRING, + name: appNameValidator, + url: OPTIONAL_STRING, + template: Joi.object({ + templateString: OPTIONAL_STRING, + }).unknown(true), + }).unknown(true) + ) } From 6c8550e2fb5c824819ee6f5b4fa432219efe45e4 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 14:19:01 +0000 Subject: [PATCH 77/94] v1.3.19-alpha.2 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index 00fe6c6f90..c455381e5f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index d8ba9577c6..f11a8ccba3 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.19-alpha.1", + "@budibase/types": "1.3.19-alpha.2", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 31da9d3ad8..00614701c9 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": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.19-alpha.1", + "@budibase/string-templates": "1.3.19-alpha.2", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 07aeddf882..ba75c1cf0f 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.1", - "@budibase/client": "1.3.19-alpha.1", - "@budibase/frontend-core": "1.3.19-alpha.1", - "@budibase/string-templates": "1.3.19-alpha.1", + "@budibase/bbui": "1.3.19-alpha.2", + "@budibase/client": "1.3.19-alpha.2", + "@budibase/frontend-core": "1.3.19-alpha.2", + "@budibase/string-templates": "1.3.19-alpha.2", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f046ce1a8f..9c13db543d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.1", - "@budibase/string-templates": "1.3.19-alpha.1", - "@budibase/types": "1.3.19-alpha.1", + "@budibase/backend-core": "1.3.19-alpha.2", + "@budibase/string-templates": "1.3.19-alpha.2", + "@budibase/types": "1.3.19-alpha.2", "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 7fb54ae616..78181873f0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.1", - "@budibase/frontend-core": "1.3.19-alpha.1", - "@budibase/string-templates": "1.3.19-alpha.1", + "@budibase/bbui": "1.3.19-alpha.2", + "@budibase/frontend-core": "1.3.19-alpha.2", + "@budibase/string-templates": "1.3.19-alpha.2", "@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 342d1d6f06..dbdd1497b6 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.19-alpha.1", + "@budibase/bbui": "1.3.19-alpha.2", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 85b0f87186..09c01d9ae9 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.19-alpha.1", - "@budibase/client": "1.3.19-alpha.1", + "@budibase/backend-core": "1.3.19-alpha.2", + "@budibase/client": "1.3.19-alpha.2", "@budibase/pro": "1.3.19-alpha.1", - "@budibase/string-templates": "1.3.19-alpha.1", - "@budibase/types": "1.3.19-alpha.1", + "@budibase/string-templates": "1.3.19-alpha.2", + "@budibase/types": "1.3.19-alpha.2", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 8464f37a8d..809c56ebc7 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "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 cd7c0f4a55..aebb8f725b 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index ff4eb308a0..3685c96082 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.19-alpha.1", + "version": "1.3.19-alpha.2", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.1", + "@budibase/backend-core": "1.3.19-alpha.2", "@budibase/pro": "1.3.19-alpha.1", - "@budibase/string-templates": "1.3.19-alpha.1", - "@budibase/types": "1.3.19-alpha.1", + "@budibase/string-templates": "1.3.19-alpha.2", + "@budibase/types": "1.3.19-alpha.2", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From e7bef7a608506044d3d1520dca61dc5fc70e2d4a Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 14:22:56 +0000 Subject: [PATCH 78/94] Update pro version to 1.3.19-alpha.2 --- 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 09c01d9ae9..c730365974 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.19-alpha.2", "@budibase/client": "1.3.19-alpha.2", - "@budibase/pro": "1.3.19-alpha.1", + "@budibase/pro": "1.3.19-alpha.2", "@budibase/string-templates": "1.3.19-alpha.2", "@budibase/types": "1.3.19-alpha.2", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index b20aa1e7de..57a460b930 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.1": - version "1.3.19-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.1.tgz#51ccbe0d55564dee8af674b112a3bbacc7b91fa8" - integrity sha512-aV9jQVjMZ8YBtTnRKVRjrFzCdnvFH0bC9jzlKqoy47aDUtIufkPpWNyjQ0AhTI7R5WymPaVZUO69YSTnJxg/4Q== +"@budibase/backend-core@1.3.19-alpha.2": + version "1.3.19-alpha.2" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.2.tgz#99214366f65fe1cb362355bb2cafe09155a21ba9" + integrity sha512-Y3fwHdk5168028NLKflKNSV8Hmlt8gNIyAgotws159RfQqsEtO4k0+FEPnVMJzNrquLWqEUMrMIW/0TdOlbQVQ== dependencies: - "@budibase/types" "1.3.19-alpha.1" + "@budibase/types" "1.3.19-alpha.2" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.19-alpha.1": - version "1.3.19-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.1.tgz#55450f874ceb3c5e77f24bba61a01eae726a4212" - integrity sha512-12upf50hBr90WYRzZFQ84zEmt4ZXpbik2RQU9L5kQ1ByUGIz6ALLoe4+Qqyd0pj66nJgg3VoOCfMsEu2PIm78A== +"@budibase/pro@1.3.19-alpha.2": + version "1.3.19-alpha.2" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.2.tgz#2b3693045c1193e2ae8df4a95931ce6a50c937b8" + integrity sha512-vtIX1xUYMoEBbI9nljf9AVEPM41g8MBa0X12pks3x7OsrxnKCrCPuyZiMGrNGqt6vn2ejBPIZEZLsfv19zd2fQ== dependencies: - "@budibase/backend-core" "1.3.19-alpha.1" - "@budibase/types" "1.3.19-alpha.1" + "@budibase/backend-core" "1.3.19-alpha.2" + "@budibase/types" "1.3.19-alpha.2" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.19-alpha.1": - version "1.3.19-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.1.tgz#4b42824183571ebc5acfc42bd2b1306a54313c90" - integrity sha512-3+b37gI0uT7OrUNiIcfcmYEelt+yUoVrQffa9W5OXwpKLjh/wQ89ESqgjaZXV0yPrk5ZbIxyfhWLlQyFbrmkrA== +"@budibase/types@1.3.19-alpha.2": + version "1.3.19-alpha.2" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.2.tgz#199ff18d9388f1a9a31a0652442ba297cf29ea94" + integrity sha512-qtFwX0wkjuwQYTzU7JMfxwAzbbTZO1Axld8OtpaAnh4W703wxlf7vmt2NcZD0MUVQj1viFwIBtUFDxEhwhhL9w== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 3685c96082..4404c2f9e2 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.19-alpha.2", - "@budibase/pro": "1.3.19-alpha.1", + "@budibase/pro": "1.3.19-alpha.2", "@budibase/string-templates": "1.3.19-alpha.2", "@budibase/types": "1.3.19-alpha.2", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index a77703f1ba..8d6077d52f 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.1": - version "1.3.19-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.1.tgz#51ccbe0d55564dee8af674b112a3bbacc7b91fa8" - integrity sha512-aV9jQVjMZ8YBtTnRKVRjrFzCdnvFH0bC9jzlKqoy47aDUtIufkPpWNyjQ0AhTI7R5WymPaVZUO69YSTnJxg/4Q== +"@budibase/backend-core@1.3.19-alpha.2": + version "1.3.19-alpha.2" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.2.tgz#99214366f65fe1cb362355bb2cafe09155a21ba9" + integrity sha512-Y3fwHdk5168028NLKflKNSV8Hmlt8gNIyAgotws159RfQqsEtO4k0+FEPnVMJzNrquLWqEUMrMIW/0TdOlbQVQ== dependencies: - "@budibase/types" "1.3.19-alpha.1" + "@budibase/types" "1.3.19-alpha.2" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.19-alpha.1": - version "1.3.19-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.1.tgz#55450f874ceb3c5e77f24bba61a01eae726a4212" - integrity sha512-12upf50hBr90WYRzZFQ84zEmt4ZXpbik2RQU9L5kQ1ByUGIz6ALLoe4+Qqyd0pj66nJgg3VoOCfMsEu2PIm78A== +"@budibase/pro@1.3.19-alpha.2": + version "1.3.19-alpha.2" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.2.tgz#2b3693045c1193e2ae8df4a95931ce6a50c937b8" + integrity sha512-vtIX1xUYMoEBbI9nljf9AVEPM41g8MBa0X12pks3x7OsrxnKCrCPuyZiMGrNGqt6vn2ejBPIZEZLsfv19zd2fQ== dependencies: - "@budibase/backend-core" "1.3.19-alpha.1" - "@budibase/types" "1.3.19-alpha.1" + "@budibase/backend-core" "1.3.19-alpha.2" + "@budibase/types" "1.3.19-alpha.2" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.19-alpha.1": - version "1.3.19-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.1.tgz#4b42824183571ebc5acfc42bd2b1306a54313c90" - integrity sha512-3+b37gI0uT7OrUNiIcfcmYEelt+yUoVrQffa9W5OXwpKLjh/wQ89ESqgjaZXV0yPrk5ZbIxyfhWLlQyFbrmkrA== +"@budibase/types@1.3.19-alpha.2": + version "1.3.19-alpha.2" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.2.tgz#199ff18d9388f1a9a31a0652442ba297cf29ea94" + integrity sha512-qtFwX0wkjuwQYTzU7JMfxwAzbbTZO1Axld8OtpaAnh4W703wxlf7vmt2NcZD0MUVQj1viFwIBtUFDxEhwhhL9w== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From e8ec2c01142b88c1b37a29b1d00ed52db5740ce2 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 15 Sep 2022 16:31:29 +0100 Subject: [PATCH 79/94] Always restart the proxy service when spinning up the dev stack to account for nginx conf changes --- packages/server/scripts/dev/manage.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/server/scripts/dev/manage.js b/packages/server/scripts/dev/manage.js index 8a5f8e9477..f6a07fa5eb 100644 --- a/packages/server/scripts/dev/manage.js +++ b/packages/server/scripts/dev/manage.js @@ -71,6 +71,10 @@ async function init() { async function up() { console.log("Spinning up your budibase dev environment... 🔧✨") await init() + + // We always ensure to restart the proxy service in case of nginx conf changes + await compose.restartOne("proxy-service", CONFIG) + await compose.upAll(CONFIG) } From 5cd66d1436ab39743b32205c9cb24fb583d6f753 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 15 Sep 2022 16:32:36 +0100 Subject: [PATCH 80/94] Fix usages of className in organisation settings page --- .../builder/portal/settings/organisation.svelte | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/settings/organisation.svelte b/packages/builder/src/pages/builder/portal/settings/organisation.svelte index 6d1f26ce36..5f352a32e4 100644 --- a/packages/builder/src/pages/builder/portal/settings/organisation.svelte +++ b/packages/builder/src/pages/builder/portal/settings/organisation.svelte @@ -88,14 +88,14 @@ Information Here you can update your logo and organization name. -
-
+
+
-
+
= {} ): CreateTableParams => ({ name: generator.word(), - primaryDisplay: "sasa", + primaryDisplay: "testColumn", schema: { "Auto ID": { autocolumn: true, @@ -30,8 +30,8 @@ export const generateTable = ( tableId: "ta_users", type: "link", }, - sasa: { - name: "sasa", + testColumn: { + name: "testColumn", type: "string", }, "Updated At": { @@ -54,7 +54,7 @@ export const generateTable = ( export const generateRow = (overrides: Partial = {}): CreateRowParams => ({ type: "row", tableId: "seed_table", - sasa: generator.word(), + testColumn: generator.word(), relationship: [generator.string({ length: 32, alpha: true, numeric: true })], ...overrides, }) diff --git a/qa-core/src/config/public-api/fixtures/users.ts b/qa-core/src/config/public-api/fixtures/users.ts index aaca5f2480..4aea5333bf 100644 --- a/qa-core/src/config/public-api/fixtures/users.ts +++ b/qa-core/src/config/public-api/fixtures/users.ts @@ -1,7 +1,7 @@ import { CreateUserParams, User, -} from "../../../../../packages/server/src/api/controllers/public/mapping/types" +} from "@budibase/server/api/controllers/public/mapping/types" import generator from "../TestConfiguration/generator" const generate = (overrides: Partial = {}): CreateUserParams => ({ diff --git a/qa-core/src/tests/public-api/applications/applications.spec.ts b/qa-core/src/tests/public-api/applications/applications.spec.ts index 59a24861af..05eaca6177 100644 --- a/qa-core/src/tests/public-api/applications/applications.spec.ts +++ b/qa-core/src/tests/public-api/applications/applications.spec.ts @@ -1,7 +1,7 @@ import TestConfiguration from "../../../config/public-api/TestConfiguration" import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" import generateApp from "../../../config/public-api/fixtures/applications" -import { Application } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { Application } from "@budibase/server/api/controllers/public/mapping/types" describe("Public API - /applications endpoints", () => { const api = new PublicAPIClient() @@ -20,18 +20,21 @@ describe("Public API - /applications endpoints", () => { it("POST - Create an application", async () => { const [response, app] = await config.applications.create(generateApp()) expect(response).toHaveStatusCode(200) + expect(app._id).toBeDefined() }) it("POST - Search applications", async () => { - const [response, app] = await config.applications.search({ + const [response, apps] = await config.applications.search({ name: config.context.name, }) expect(response).toHaveStatusCode(200) + expect(apps[0]).toEqual(config.context) }) it("GET - Retrieve an application", async () => { const [response, app] = await config.applications.read(config.context._id) expect(response).toHaveStatusCode(200) + expect(app).toEqual(config.context) }) it("PUT - update an application", async () => { @@ -41,5 +44,7 @@ describe("Public API - /applications endpoints", () => { config.context ) expect(response).toHaveStatusCode(200) + expect(app.updatedAt).not.toEqual(config.context.updatedAt) + expect(app.name).toEqual(config.context.name) }) }) diff --git a/qa-core/src/tests/public-api/tables/rows.spec.ts b/qa-core/src/tests/public-api/tables/rows.spec.ts index f34c4cde29..91df85e65c 100644 --- a/qa-core/src/tests/public-api/tables/rows.spec.ts +++ b/qa-core/src/tests/public-api/tables/rows.spec.ts @@ -1,4 +1,4 @@ -import { Row } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { Row } from "@budibase/server/api/controllers/public/mapping/types" import { generateRow } from "../../../config/public-api/fixtures/tables" import TestConfiguration from "../../../config/public-api/TestConfiguration" import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" @@ -10,15 +10,15 @@ describe("Public API - /rows endpoints", () => { beforeAll(async () => { await config.beforeAll() - const [appResp, app] = await config.applications.seed() + const [aResp, app] = await config.applications.seed() config.tables.api.appId = app._id config.rows.api.appId = app._id - const [tableResp, table] = await config.tables.seed() + const [tResp, table] = await config.tables.seed() config.rows.tableId = table._id - const [response, row] = await config.rows.create(generateRow()) + const [rResp, row] = await config.rows.seed(table._id) config.context = row }) @@ -29,26 +29,37 @@ describe("Public API - /rows endpoints", () => { it("POST - Create a row", async () => { const [response, row] = await config.rows.create(generateRow()) expect(response).toHaveStatusCode(200) + expect(row._id).toBeDefined() }) it("POST - Search rows", async () => { - const [response, row] = await config.rows.search({ - name: config.context.name as string, + const [response, rows] = await config.rows.search({ + query: { + string: { + testColumn: config.context.testColumn as string, + }, + }, }) expect(response).toHaveStatusCode(200) + expect(rows[0]._id).toEqual(config.context._id) + expect(rows[0].tableId).toEqual(config.context.tableId) + expect(rows[0].testColumn).toEqual(config.context.testColumn) }) it("GET - Retrieve a row", async () => { const [response, row] = await config.rows.read(config.context._id) expect(response).toHaveStatusCode(200) + expect(row._id).toEqual(config.context._id) + expect(row.tableId).toEqual(config.context.tableId) }) it("PUT - update a row", async () => { - config.context.name = "UpdatedName" + config.context.testColumn = "UpdatedName" const [response, row] = await config.rows.update( config.context._id, config.context ) expect(response).toHaveStatusCode(200) + expect(row.testColumn).toEqual(config.context.testColumn) }) }) diff --git a/qa-core/src/tests/public-api/tables/tables.spec.ts b/qa-core/src/tests/public-api/tables/tables.spec.ts index c2f50d3e8e..de1ce142ce 100644 --- a/qa-core/src/tests/public-api/tables/tables.spec.ts +++ b/qa-core/src/tests/public-api/tables/tables.spec.ts @@ -1,4 +1,4 @@ -import { Table } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { Table } from "@budibase/server/api/controllers/public/mapping/types" import { generateTable } from "../../../config/public-api/fixtures/tables" import TestConfiguration from "../../../config/public-api/TestConfiguration" import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" @@ -23,18 +23,21 @@ describe("Public API - /tables endpoints", () => { it("POST - Create a table", async () => { const [response, table] = await config.tables.create(generateTable()) expect(response).toHaveStatusCode(200) + expect(table._id).toBeDefined() }) it("POST - Search tables", async () => { - const [response, table] = await config.tables.search({ + const [response, tables] = await config.tables.search({ name: config.context.name, }) expect(response).toHaveStatusCode(200) + expect(tables[0]).toEqual(config.context) }) it("GET - Retrieve a table", async () => { const [response, table] = await config.tables.read(config.context._id) expect(response).toHaveStatusCode(200) + expect(table).toEqual(config.context) }) it("PUT - update a table", async () => { @@ -44,5 +47,6 @@ describe("Public API - /tables endpoints", () => { config.context ) expect(response).toHaveStatusCode(200) + expect(table).toEqual(config.context) }) }) diff --git a/qa-core/src/tests/public-api/users/users.spec.ts b/qa-core/src/tests/public-api/users/users.spec.ts index b981deb786..5e68c77c50 100644 --- a/qa-core/src/tests/public-api/users/users.spec.ts +++ b/qa-core/src/tests/public-api/users/users.spec.ts @@ -1,7 +1,7 @@ import TestConfiguration from "../../../config/public-api/TestConfiguration" import PublicAPIClient from "../../../config/public-api/TestConfiguration/PublicAPIClient" import generateUser from "../../../config/public-api/fixtures/users" -import { User } from "../../../../../packages/server/src/api/controllers/public/mapping/types" +import { User } from "@budibase/server/api/controllers/public/mapping/types" describe("Public API - /users endpoints", () => { const api = new PublicAPIClient() @@ -9,7 +9,7 @@ describe("Public API - /users endpoints", () => { beforeAll(async () => { await config.beforeAll() - const [response, user] = await config.users.seed() + const [_, user] = await config.users.seed() config.context = user }) @@ -20,18 +20,21 @@ describe("Public API - /users endpoints", () => { it("POST - Create a user", async () => { const [response, user] = await config.users.create(generateUser()) expect(response).toHaveStatusCode(200) + expect(user._id).toBeDefined() }) it("POST - Search users", async () => { - const [response, user] = await config.users.search({ + const [response, users] = await config.users.search({ name: config.context.email, }) expect(response).toHaveStatusCode(200) + expect(users[0]).toEqual(config.context) }) it("GET - Retrieve a user", async () => { const [response, user] = await config.users.read(config.context._id) expect(response).toHaveStatusCode(200) + expect(user).toEqual(config.context) }) it("PUT - update a user", async () => { @@ -41,5 +44,6 @@ describe("Public API - /users endpoints", () => { config.context ) expect(response).toHaveStatusCode(200) + expect(user).toEqual(config.context) }) }) diff --git a/qa-core/tsconfig.json b/qa-core/tsconfig.json index 0fa56727b8..b5f3f25fdd 100644 --- a/qa-core/tsconfig.json +++ b/qa-core/tsconfig.json @@ -14,6 +14,7 @@ "skipLibCheck": true, "paths": { "@budibase/types": ["../packages/types/src"], + "@budibase/server/*": ["../packages/server/src/*"], } }, "ts-node": { From 39ceedc87c03fb59706a8e6b9c02663592a33409 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 15 Sep 2022 20:09:23 +0100 Subject: [PATCH 85/94] tidy up --- .github/workflows/budibase_ci.yml | 10 +++++----- .gitignore | 1 + packages/builder/cypress/setup.js | 6 ------ qa-core/package.json | 5 +++-- .../TestConfiguration/PublicAPIClient.ts | 2 -- qa-core/yarn.lock | 15 ++++++++++++++- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.github/workflows/budibase_ci.yml b/.github/workflows/budibase_ci.yml index 3715979922..42a0c0a273 100644 --- a/.github/workflows/budibase_ci.yml +++ b/.github/workflows/budibase_ci.yml @@ -54,11 +54,11 @@ jobs: verbose: true # TODO: parallelise this - # - name: Cypress run - # uses: cypress-io/github-action@v2 - # with: - # install: false - # command: yarn test:e2e:ci + - name: Cypress run + uses: cypress-io/github-action@v2 + with: + install: false + command: yarn test:e2e:ci - name: QA Core Integration Tests run: | diff --git a/.gitignore b/.gitignore index 32c6faf980..e1d3e6db0e 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ typings/ # dotenv environment variables file .env +!qa-core/.env !hosting/.env hosting/.generated-nginx.dev.conf hosting/proxy/.generated-nginx.prod.conf diff --git a/packages/builder/cypress/setup.js b/packages/builder/cypress/setup.js index 853cdfc14d..d858801990 100644 --- a/packages/builder/cypress/setup.js +++ b/packages/builder/cypress/setup.js @@ -22,12 +22,6 @@ process.env.COUCH_DB_PASSWORD = "budibase" process.env.INTERNAL_API_KEY = "budibase" process.env.ALLOW_DEV_AUTOMATIONS = 1 -// TODO: inject at the qa-core level -process.env.BB_ADMIN_USER_EMAIL = "qa@budibase.com" -process.env.BB_ADMIN_USER_PASSWORD = "budibase" -process.env.ENCRYPTED_TEST_PUBLIC_API_KEY = - "a65722f06bee5caeadc5d7ca2f543a43-d610e627344210c643bb726f" - // Stop info logs polluting test outputs process.env.LOG_LEVEL = "error" diff --git a/qa-core/package.json b/qa-core/package.json index f82849c92e..b2c3f464d7 100644 --- a/qa-core/package.json +++ b/qa-core/package.json @@ -12,8 +12,8 @@ "test": "jest --runInBand", "test:watch": "jest --watch", "test:debug": "DEBUG=1 jest", - "api:server:setup": "ts-node ../packages/builder/cypress/ts/setup.ts", - "api:server:setup:ci": "node ../packages/builder/cypress/setup.js", + "api:server:setup": "env-cmd ts-node ../packages/builder/cypress/ts/setup.ts", + "api:server:setup:ci": "env-cmd node ../packages/builder/cypress/setup.js", "api:test:ci": "start-server-and-test api:server:setup:ci http://localhost:4100/builder test", "api:test": "start-server-and-test api:server:setup http://localhost:4100/builder test" }, @@ -36,6 +36,7 @@ "@types/jest": "29.0.0", "@types/node-fetch": "2.6.2", "chance": "1.1.8", + "env-cmd": "^10.1.0", "jest": "28.0.2", "prettier": "2.7.1", "start-server-and-test": "1.14.0", diff --git a/qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts b/qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts index 405007b5aa..3721e31da3 100644 --- a/qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts +++ b/qa-core/src/config/public-api/TestConfiguration/PublicAPIClient.ts @@ -38,8 +38,6 @@ class PublicAPIClient { Accept: "application/json", ...options.headers, }, - // TODO: See if this is necessary - credentials: "include", } // @ts-ignore diff --git a/qa-core/yarn.lock b/qa-core/yarn.lock index 9474c47b7c..be9dd3c759 100644 --- a/qa-core/yarn.lock +++ b/qa-core/yarn.lock @@ -1054,6 +1054,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1071,7 +1076,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1149,6 +1154,14 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +env-cmd@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/env-cmd/-/env-cmd-10.1.0.tgz#c7f5d3b550c9519f137fdac4dd8fb6866a8c8c4b" + integrity sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA== + dependencies: + commander "^4.0.0" + cross-spawn "^7.0.0" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" From c368f792693be7ecf48ed6d8c81f39af61b8c882 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 15 Sep 2022 20:12:32 +0100 Subject: [PATCH 86/94] Create .env --- qa-core/.env | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 qa-core/.env diff --git a/qa-core/.env b/qa-core/.env new file mode 100644 index 0000000000..740b1b2b2a --- /dev/null +++ b/qa-core/.env @@ -0,0 +1,3 @@ +BB_ADMIN_USER_EMAIL=qa@budibase.com +BB_ADMIN_USER_PASSWORD=budibase +ENCRYPTED_TEST_PUBLIC_API_KEY=a65722f06bee5caeadc5d7ca2f543a43-d610e627344210c643bb726f From e16560e7689a373b0bf33d3c4adf419583e986b4 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 15 Sep 2022 20:34:37 +0100 Subject: [PATCH 87/94] more random test data for rows --- qa-core/src/config/public-api/fixtures/tables.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa-core/src/config/public-api/fixtures/tables.ts b/qa-core/src/config/public-api/fixtures/tables.ts index cf76855439..d36d7e6db7 100644 --- a/qa-core/src/config/public-api/fixtures/tables.ts +++ b/qa-core/src/config/public-api/fixtures/tables.ts @@ -54,7 +54,7 @@ export const generateTable = ( export const generateRow = (overrides: Partial = {}): CreateRowParams => ({ type: "row", tableId: "seed_table", - testColumn: generator.word(), + testColumn: generator.string({ length: 32, alpha: true, numeric: true }), relationship: [generator.string({ length: 32, alpha: true, numeric: true })], ...overrides, }) From 298b2b17d1d07adf98c7e9d034ae92276b84b3ed Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 20:22:50 +0000 Subject: [PATCH 88/94] v1.3.19-alpha.4 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index 4c203d69c4..5c6be090cf 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 350add10ab..660d6bd3dc 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.19-alpha.3", + "@budibase/types": "1.3.19-alpha.4", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 3c40e93bb8..0e14cff5ae 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": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.19-alpha.3", + "@budibase/string-templates": "1.3.19-alpha.4", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 7dcd23461f..a637899644 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.3", - "@budibase/client": "1.3.19-alpha.3", - "@budibase/frontend-core": "1.3.19-alpha.3", - "@budibase/string-templates": "1.3.19-alpha.3", + "@budibase/bbui": "1.3.19-alpha.4", + "@budibase/client": "1.3.19-alpha.4", + "@budibase/frontend-core": "1.3.19-alpha.4", + "@budibase/string-templates": "1.3.19-alpha.4", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index a99fbd52bc..5a6bd6261f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.3", - "@budibase/string-templates": "1.3.19-alpha.3", - "@budibase/types": "1.3.19-alpha.3", + "@budibase/backend-core": "1.3.19-alpha.4", + "@budibase/string-templates": "1.3.19-alpha.4", + "@budibase/types": "1.3.19-alpha.4", "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 e1fc2c0a02..a2367e0bfe 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.3", - "@budibase/frontend-core": "1.3.19-alpha.3", - "@budibase/string-templates": "1.3.19-alpha.3", + "@budibase/bbui": "1.3.19-alpha.4", + "@budibase/frontend-core": "1.3.19-alpha.4", + "@budibase/string-templates": "1.3.19-alpha.4", "@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 23ad76f645..2e4dce606b 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.19-alpha.3", + "@budibase/bbui": "1.3.19-alpha.4", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index a7134ee417..b218923bae 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.19-alpha.3", - "@budibase/client": "1.3.19-alpha.3", + "@budibase/backend-core": "1.3.19-alpha.4", + "@budibase/client": "1.3.19-alpha.4", "@budibase/pro": "1.3.19-alpha.3", - "@budibase/string-templates": "1.3.19-alpha.3", - "@budibase/types": "1.3.19-alpha.3", + "@budibase/string-templates": "1.3.19-alpha.4", + "@budibase/types": "1.3.19-alpha.4", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 8817926cd5..5cd29e3050 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "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 6680bd5062..4037c6ecf6 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 6cb4f48398..6fffae99d7 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.19-alpha.3", + "version": "1.3.19-alpha.4", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.3", + "@budibase/backend-core": "1.3.19-alpha.4", "@budibase/pro": "1.3.19-alpha.3", - "@budibase/string-templates": "1.3.19-alpha.3", - "@budibase/types": "1.3.19-alpha.3", + "@budibase/string-templates": "1.3.19-alpha.4", + "@budibase/types": "1.3.19-alpha.4", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 31ba6008a975c732bd4f96c551c7cf61815f2c56 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 15 Sep 2022 20:25:55 +0000 Subject: [PATCH 89/94] Update pro version to 1.3.19-alpha.4 --- 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 b218923bae..3d4108eec9 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.19-alpha.4", "@budibase/client": "1.3.19-alpha.4", - "@budibase/pro": "1.3.19-alpha.3", + "@budibase/pro": "1.3.19-alpha.4", "@budibase/string-templates": "1.3.19-alpha.4", "@budibase/types": "1.3.19-alpha.4", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 7ab9d69824..3bd935d247 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.3": - version "1.3.19-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.3.tgz#1510be6f6951f9787b57e24f2d7bb94898603730" - integrity sha512-Ds6AlYYMaSHkwCbUBTjDZ4t9jc1DSczQ/Gx6W7iAunkS/bL2+sdYcKkpgLBDDGDwezoKshyXqJ+TemSDqBcUWA== +"@budibase/backend-core@1.3.19-alpha.4": + version "1.3.19-alpha.4" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.4.tgz#7582f95d3ee5821f0b020c56bf07e46ebf382f5c" + integrity sha512-Q4EZrR5dyWNmfocfzdgmcqUrlSVI1EVnrMh1+odx+DT2C4sZLCSuhQMXtk8oNtRzJfi6Dx/r18EhVM+k1NJGTQ== dependencies: - "@budibase/types" "1.3.19-alpha.3" + "@budibase/types" "1.3.19-alpha.4" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.19-alpha.3": - version "1.3.19-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.3.tgz#d0c0ee897afc98def04fcd89027b2e25929e42e3" - integrity sha512-0IYLSNBcTxQHNtmA6br7jDj684yJH2yhzqfmzQKUpXZ4VA1H9h5q8a3HEGx6zZgc4BAA577pqD/DQ45X4rUPgg== +"@budibase/pro@1.3.19-alpha.4": + version "1.3.19-alpha.4" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.4.tgz#2f8e2283f70a21cc8280420505b834b9a603bbdf" + integrity sha512-AIKrFwE5j/zOV+rw9OxXPqjMgWTwSdLSt2RP5XWqTfLk9qoR0TT9MS7Io6OPhclGb5s9kgvxhWPMTX0LtcKF5Q== dependencies: - "@budibase/backend-core" "1.3.19-alpha.3" - "@budibase/types" "1.3.19-alpha.3" + "@budibase/backend-core" "1.3.19-alpha.4" + "@budibase/types" "1.3.19-alpha.4" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.19-alpha.3": - version "1.3.19-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.3.tgz#9a140632d07120847d9c3ebc4f52cc7b8285f7ef" - integrity sha512-NOs3jKLh/X8H6EQ6W2AryiWDstp4vWyZ6QnCTfTcYbFF+ZJfI53m9ng49G1NDSY6To0iUcaOPjcFU81KRM4vkw== +"@budibase/types@1.3.19-alpha.4": + version "1.3.19-alpha.4" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.4.tgz#6709f9fd0231928b44acd7a4d7c3e8c2b8217218" + integrity sha512-BHPvaZn0IyvJJZTj75CJ+F/BYb2g7Qr1QfrndjD+EnAoTXruMxDsDgvkO/XaF7Dd7lZo/kMgOtkY3XJ6O67b8g== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 6fffae99d7..8375439964 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.19-alpha.4", - "@budibase/pro": "1.3.19-alpha.3", + "@budibase/pro": "1.3.19-alpha.4", "@budibase/string-templates": "1.3.19-alpha.4", "@budibase/types": "1.3.19-alpha.4", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index a3910de06d..2bacd1f8cf 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.3": - version "1.3.19-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.3.tgz#1510be6f6951f9787b57e24f2d7bb94898603730" - integrity sha512-Ds6AlYYMaSHkwCbUBTjDZ4t9jc1DSczQ/Gx6W7iAunkS/bL2+sdYcKkpgLBDDGDwezoKshyXqJ+TemSDqBcUWA== +"@budibase/backend-core@1.3.19-alpha.4": + version "1.3.19-alpha.4" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.4.tgz#7582f95d3ee5821f0b020c56bf07e46ebf382f5c" + integrity sha512-Q4EZrR5dyWNmfocfzdgmcqUrlSVI1EVnrMh1+odx+DT2C4sZLCSuhQMXtk8oNtRzJfi6Dx/r18EhVM+k1NJGTQ== dependencies: - "@budibase/types" "1.3.19-alpha.3" + "@budibase/types" "1.3.19-alpha.4" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.19-alpha.3": - version "1.3.19-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.3.tgz#d0c0ee897afc98def04fcd89027b2e25929e42e3" - integrity sha512-0IYLSNBcTxQHNtmA6br7jDj684yJH2yhzqfmzQKUpXZ4VA1H9h5q8a3HEGx6zZgc4BAA577pqD/DQ45X4rUPgg== +"@budibase/pro@1.3.19-alpha.4": + version "1.3.19-alpha.4" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.4.tgz#2f8e2283f70a21cc8280420505b834b9a603bbdf" + integrity sha512-AIKrFwE5j/zOV+rw9OxXPqjMgWTwSdLSt2RP5XWqTfLk9qoR0TT9MS7Io6OPhclGb5s9kgvxhWPMTX0LtcKF5Q== dependencies: - "@budibase/backend-core" "1.3.19-alpha.3" - "@budibase/types" "1.3.19-alpha.3" + "@budibase/backend-core" "1.3.19-alpha.4" + "@budibase/types" "1.3.19-alpha.4" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.19-alpha.3": - version "1.3.19-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.3.tgz#9a140632d07120847d9c3ebc4f52cc7b8285f7ef" - integrity sha512-NOs3jKLh/X8H6EQ6W2AryiWDstp4vWyZ6QnCTfTcYbFF+ZJfI53m9ng49G1NDSY6To0iUcaOPjcFU81KRM4vkw== +"@budibase/types@1.3.19-alpha.4": + version "1.3.19-alpha.4" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.4.tgz#6709f9fd0231928b44acd7a4d7c3e8c2b8217218" + integrity sha512-BHPvaZn0IyvJJZTj75CJ+F/BYb2g7Qr1QfrndjD+EnAoTXruMxDsDgvkO/XaF7Dd7lZo/kMgOtkY3XJ6O67b8g== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 97302198a3a009b5e81e0bd876efa8616705d0ea Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 16 Sep 2022 09:25:14 +0100 Subject: [PATCH 90/94] Move restart of proxy container to after the compose stack has been brought up to ensure container exists --- packages/server/scripts/dev/manage.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/server/scripts/dev/manage.js b/packages/server/scripts/dev/manage.js index f6a07fa5eb..ac04780ada 100644 --- a/packages/server/scripts/dev/manage.js +++ b/packages/server/scripts/dev/manage.js @@ -71,11 +71,10 @@ async function init() { async function up() { console.log("Spinning up your budibase dev environment... 🔧✨") await init() + await compose.upAll(CONFIG) // We always ensure to restart the proxy service in case of nginx conf changes await compose.restartOne("proxy-service", CONFIG) - - await compose.upAll(CONFIG) } async function down() { From 12d62cfedbf47db3ac674ab7c0edc893544295e7 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 16 Sep 2022 08:35:09 +0000 Subject: [PATCH 91/94] v1.3.19-alpha.5 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index 5c6be090cf..3251b5d3fb 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 660d6bd3dc..8bf212015b 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.19-alpha.4", + "@budibase/types": "1.3.19-alpha.5", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0e14cff5ae..b6e3f243c9 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": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.19-alpha.4", + "@budibase/string-templates": "1.3.19-alpha.5", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index a637899644..1efbc8e883 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.4", - "@budibase/client": "1.3.19-alpha.4", - "@budibase/frontend-core": "1.3.19-alpha.4", - "@budibase/string-templates": "1.3.19-alpha.4", + "@budibase/bbui": "1.3.19-alpha.5", + "@budibase/client": "1.3.19-alpha.5", + "@budibase/frontend-core": "1.3.19-alpha.5", + "@budibase/string-templates": "1.3.19-alpha.5", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 5a6bd6261f..dd837314f8 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.4", - "@budibase/string-templates": "1.3.19-alpha.4", - "@budibase/types": "1.3.19-alpha.4", + "@budibase/backend-core": "1.3.19-alpha.5", + "@budibase/string-templates": "1.3.19-alpha.5", + "@budibase/types": "1.3.19-alpha.5", "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 a2367e0bfe..d17d15e2f8 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.4", - "@budibase/frontend-core": "1.3.19-alpha.4", - "@budibase/string-templates": "1.3.19-alpha.4", + "@budibase/bbui": "1.3.19-alpha.5", + "@budibase/frontend-core": "1.3.19-alpha.5", + "@budibase/string-templates": "1.3.19-alpha.5", "@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 2e4dce606b..f005dba8b9 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.19-alpha.4", + "@budibase/bbui": "1.3.19-alpha.5", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 3d4108eec9..2b1d2f367c 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.19-alpha.4", - "@budibase/client": "1.3.19-alpha.4", + "@budibase/backend-core": "1.3.19-alpha.5", + "@budibase/client": "1.3.19-alpha.5", "@budibase/pro": "1.3.19-alpha.4", - "@budibase/string-templates": "1.3.19-alpha.4", - "@budibase/types": "1.3.19-alpha.4", + "@budibase/string-templates": "1.3.19-alpha.5", + "@budibase/types": "1.3.19-alpha.5", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 5cd29e3050..a3c2241f34 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "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 4037c6ecf6..80fd922c0a 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 8375439964..605e4de41a 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.19-alpha.4", + "version": "1.3.19-alpha.5", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.4", + "@budibase/backend-core": "1.3.19-alpha.5", "@budibase/pro": "1.3.19-alpha.4", - "@budibase/string-templates": "1.3.19-alpha.4", - "@budibase/types": "1.3.19-alpha.4", + "@budibase/string-templates": "1.3.19-alpha.5", + "@budibase/types": "1.3.19-alpha.5", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 38cc31dea2e791e8d993ac67c7ae561667c79359 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 16 Sep 2022 08:38:16 +0000 Subject: [PATCH 92/94] Update pro version to 1.3.19-alpha.5 --- 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 2b1d2f367c..c179996bbc 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.19-alpha.5", "@budibase/client": "1.3.19-alpha.5", - "@budibase/pro": "1.3.19-alpha.4", + "@budibase/pro": "1.3.19-alpha.5", "@budibase/string-templates": "1.3.19-alpha.5", "@budibase/types": "1.3.19-alpha.5", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 3bd935d247..15c0bf6817 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.4": - version "1.3.19-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.4.tgz#7582f95d3ee5821f0b020c56bf07e46ebf382f5c" - integrity sha512-Q4EZrR5dyWNmfocfzdgmcqUrlSVI1EVnrMh1+odx+DT2C4sZLCSuhQMXtk8oNtRzJfi6Dx/r18EhVM+k1NJGTQ== +"@budibase/backend-core@1.3.19-alpha.5": + version "1.3.19-alpha.5" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.5.tgz#c572915f081108999425601b0acccd02839ea331" + integrity sha512-26bYxU13YVj5L9ve0gY6Q+CjuooxF+2MuBsi5heWCt1h50yuvzLHfPJ3WMe285iPqCU74mfLx/ndGeoh2A1Odg== dependencies: - "@budibase/types" "1.3.19-alpha.4" + "@budibase/types" "1.3.19-alpha.5" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.19-alpha.4": - version "1.3.19-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.4.tgz#2f8e2283f70a21cc8280420505b834b9a603bbdf" - integrity sha512-AIKrFwE5j/zOV+rw9OxXPqjMgWTwSdLSt2RP5XWqTfLk9qoR0TT9MS7Io6OPhclGb5s9kgvxhWPMTX0LtcKF5Q== +"@budibase/pro@1.3.19-alpha.5": + version "1.3.19-alpha.5" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.5.tgz#a85152c4c162c62e0c449ec10bee96f2c9ef5202" + integrity sha512-8MseRJy7QR3fUShvfu5FSd42KSeBqkS80lp7UBZEqJ0dM/Nsw+d3/seE5gv76wEEf7Izu+6sX8mUUHxyHtdIlQ== dependencies: - "@budibase/backend-core" "1.3.19-alpha.4" - "@budibase/types" "1.3.19-alpha.4" + "@budibase/backend-core" "1.3.19-alpha.5" + "@budibase/types" "1.3.19-alpha.5" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.19-alpha.4": - version "1.3.19-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.4.tgz#6709f9fd0231928b44acd7a4d7c3e8c2b8217218" - integrity sha512-BHPvaZn0IyvJJZTj75CJ+F/BYb2g7Qr1QfrndjD+EnAoTXruMxDsDgvkO/XaF7Dd7lZo/kMgOtkY3XJ6O67b8g== +"@budibase/types@1.3.19-alpha.5": + version "1.3.19-alpha.5" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.5.tgz#2aef86cf1365a00759ef74124e8ebc3fd00d396e" + integrity sha512-kC0x5VaQxYRmwqmcPGKn7u3GX7RWgvSxx5EghrwivpS22LpUQ3ULj54340GS4/Rxn7NjTAzV2jBPhe04PjSXxg== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 605e4de41a..eedf7ba631 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.19-alpha.5", - "@budibase/pro": "1.3.19-alpha.4", + "@budibase/pro": "1.3.19-alpha.5", "@budibase/string-templates": "1.3.19-alpha.5", "@budibase/types": "1.3.19-alpha.5", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 2bacd1f8cf..2ab46828dd 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.4": - version "1.3.19-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.4.tgz#7582f95d3ee5821f0b020c56bf07e46ebf382f5c" - integrity sha512-Q4EZrR5dyWNmfocfzdgmcqUrlSVI1EVnrMh1+odx+DT2C4sZLCSuhQMXtk8oNtRzJfi6Dx/r18EhVM+k1NJGTQ== +"@budibase/backend-core@1.3.19-alpha.5": + version "1.3.19-alpha.5" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.5.tgz#c572915f081108999425601b0acccd02839ea331" + integrity sha512-26bYxU13YVj5L9ve0gY6Q+CjuooxF+2MuBsi5heWCt1h50yuvzLHfPJ3WMe285iPqCU74mfLx/ndGeoh2A1Odg== dependencies: - "@budibase/types" "1.3.19-alpha.4" + "@budibase/types" "1.3.19-alpha.5" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.19-alpha.4": - version "1.3.19-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.4.tgz#2f8e2283f70a21cc8280420505b834b9a603bbdf" - integrity sha512-AIKrFwE5j/zOV+rw9OxXPqjMgWTwSdLSt2RP5XWqTfLk9qoR0TT9MS7Io6OPhclGb5s9kgvxhWPMTX0LtcKF5Q== +"@budibase/pro@1.3.19-alpha.5": + version "1.3.19-alpha.5" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.5.tgz#a85152c4c162c62e0c449ec10bee96f2c9ef5202" + integrity sha512-8MseRJy7QR3fUShvfu5FSd42KSeBqkS80lp7UBZEqJ0dM/Nsw+d3/seE5gv76wEEf7Izu+6sX8mUUHxyHtdIlQ== dependencies: - "@budibase/backend-core" "1.3.19-alpha.4" - "@budibase/types" "1.3.19-alpha.4" + "@budibase/backend-core" "1.3.19-alpha.5" + "@budibase/types" "1.3.19-alpha.5" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.19-alpha.4": - version "1.3.19-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.4.tgz#6709f9fd0231928b44acd7a4d7c3e8c2b8217218" - integrity sha512-BHPvaZn0IyvJJZTj75CJ+F/BYb2g7Qr1QfrndjD+EnAoTXruMxDsDgvkO/XaF7Dd7lZo/kMgOtkY3XJ6O67b8g== +"@budibase/types@1.3.19-alpha.5": + version "1.3.19-alpha.5" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.5.tgz#2aef86cf1365a00759ef74124e8ebc3fd00d396e" + integrity sha512-kC0x5VaQxYRmwqmcPGKn7u3GX7RWgvSxx5EghrwivpS22LpUQ3ULj54340GS4/Rxn7NjTAzV2jBPhe04PjSXxg== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" From 7042ffd4b202826c95d835e7935efbb8453e803a Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 16 Sep 2022 10:41:17 +0000 Subject: [PATCH 93/94] v1.3.19-alpha.6 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lerna.json b/lerna.json index 3251b5d3fb..87fc470b92 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 8bf212015b..92ac2acbd1 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "1.3.19-alpha.5", + "@budibase/types": "1.3.19-alpha.6", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index b6e3f243c9..d19fdaecdd 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": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "1.3.19-alpha.5", + "@budibase/string-templates": "1.3.19-alpha.6", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 1efbc8e883..bd7cb3e881 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.5", - "@budibase/client": "1.3.19-alpha.5", - "@budibase/frontend-core": "1.3.19-alpha.5", - "@budibase/string-templates": "1.3.19-alpha.5", + "@budibase/bbui": "1.3.19-alpha.6", + "@budibase/client": "1.3.19-alpha.6", + "@budibase/frontend-core": "1.3.19-alpha.6", + "@budibase/string-templates": "1.3.19-alpha.6", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index dd837314f8..a034023b82 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.5", - "@budibase/string-templates": "1.3.19-alpha.5", - "@budibase/types": "1.3.19-alpha.5", + "@budibase/backend-core": "1.3.19-alpha.6", + "@budibase/string-templates": "1.3.19-alpha.6", + "@budibase/types": "1.3.19-alpha.6", "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 d17d15e2f8..0f2be2d085 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "1.3.19-alpha.5", - "@budibase/frontend-core": "1.3.19-alpha.5", - "@budibase/string-templates": "1.3.19-alpha.5", + "@budibase/bbui": "1.3.19-alpha.6", + "@budibase/frontend-core": "1.3.19-alpha.6", + "@budibase/string-templates": "1.3.19-alpha.6", "@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 f005dba8b9..74429b2136 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "1.3.19-alpha.5", + "@budibase/bbui": "1.3.19-alpha.6", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index c179996bbc..2b6e19928b 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "1.3.19-alpha.5", - "@budibase/client": "1.3.19-alpha.5", + "@budibase/backend-core": "1.3.19-alpha.6", + "@budibase/client": "1.3.19-alpha.6", "@budibase/pro": "1.3.19-alpha.5", - "@budibase/string-templates": "1.3.19-alpha.5", - "@budibase/types": "1.3.19-alpha.5", + "@budibase/string-templates": "1.3.19-alpha.6", + "@budibase/types": "1.3.19-alpha.6", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index a3c2241f34..003a6d496b 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "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 80fd922c0a..a5579864cc 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index eedf7ba631..f62e81839d 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.3.19-alpha.5", + "version": "1.3.19-alpha.6", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "1.3.19-alpha.5", + "@budibase/backend-core": "1.3.19-alpha.6", "@budibase/pro": "1.3.19-alpha.5", - "@budibase/string-templates": "1.3.19-alpha.5", - "@budibase/types": "1.3.19-alpha.5", + "@budibase/string-templates": "1.3.19-alpha.6", + "@budibase/types": "1.3.19-alpha.6", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 2c92f091b2879c8e817dab0b6febff4655ee2832 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 16 Sep 2022 10:44:42 +0000 Subject: [PATCH 94/94] Update pro version to 1.3.19-alpha.6 --- 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 2b6e19928b..75ddba9035 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "1.3.19-alpha.6", "@budibase/client": "1.3.19-alpha.6", - "@budibase/pro": "1.3.19-alpha.5", + "@budibase/pro": "1.3.19-alpha.6", "@budibase/string-templates": "1.3.19-alpha.6", "@budibase/types": "1.3.19-alpha.6", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 15c0bf6817..dd95943c3e 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.5": - version "1.3.19-alpha.5" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.5.tgz#c572915f081108999425601b0acccd02839ea331" - integrity sha512-26bYxU13YVj5L9ve0gY6Q+CjuooxF+2MuBsi5heWCt1h50yuvzLHfPJ3WMe285iPqCU74mfLx/ndGeoh2A1Odg== +"@budibase/backend-core@1.3.19-alpha.6": + version "1.3.19-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.6.tgz#12f22db2b09ea7586cafb2eb2c375914c8467188" + integrity sha512-Kp9OaU80fZO1fEi/EA45eSz3zFYWzQHBfuy7XKzJ0MBKYPCvPteIXcXaANeUoHJE9rDGVUHM9nxLxnSfRUGy0Q== dependencies: - "@budibase/types" "1.3.19-alpha.5" + "@budibase/types" "1.3.19-alpha.6" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1180,13 +1180,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.3.19-alpha.5": - version "1.3.19-alpha.5" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.5.tgz#a85152c4c162c62e0c449ec10bee96f2c9ef5202" - integrity sha512-8MseRJy7QR3fUShvfu5FSd42KSeBqkS80lp7UBZEqJ0dM/Nsw+d3/seE5gv76wEEf7Izu+6sX8mUUHxyHtdIlQ== +"@budibase/pro@1.3.19-alpha.6": + version "1.3.19-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.6.tgz#a30340dbd6aa52658312155a5ce0828d0cfc4621" + integrity sha512-ntyjKIoiAcCIPJAjwmZ19kcHOiduIcuia3htd5njzSNYrPerqmAty8g5oiBrjeK5ckMd8J3VQeCUdk0Lq1Mdfw== dependencies: - "@budibase/backend-core" "1.3.19-alpha.5" - "@budibase/types" "1.3.19-alpha.5" + "@budibase/backend-core" "1.3.19-alpha.6" + "@budibase/types" "1.3.19-alpha.6" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" @@ -1209,10 +1209,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@1.3.19-alpha.5": - version "1.3.19-alpha.5" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.5.tgz#2aef86cf1365a00759ef74124e8ebc3fd00d396e" - integrity sha512-kC0x5VaQxYRmwqmcPGKn7u3GX7RWgvSxx5EghrwivpS22LpUQ3ULj54340GS4/Rxn7NjTAzV2jBPhe04PjSXxg== +"@budibase/types@1.3.19-alpha.6": + version "1.3.19-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.6.tgz#55ee8c67c2d4bc5ddf009ed1b22094e70d38f8ad" + integrity sha512-ApDkaWDpD4BmsmmzxqnSBcj2Q4PGBzkh+49MFZb8F+pdzcDHUQzbVwzVgfBVUS2lHhmZSfBM4sGsfGsBMd+Izw== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index f62e81839d..226dffe73c 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "1.3.19-alpha.6", - "@budibase/pro": "1.3.19-alpha.5", + "@budibase/pro": "1.3.19-alpha.6", "@budibase/string-templates": "1.3.19-alpha.6", "@budibase/types": "1.3.19-alpha.6", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 2ab46828dd..abbc00ae9b 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.3.19-alpha.5": - version "1.3.19-alpha.5" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.5.tgz#c572915f081108999425601b0acccd02839ea331" - integrity sha512-26bYxU13YVj5L9ve0gY6Q+CjuooxF+2MuBsi5heWCt1h50yuvzLHfPJ3WMe285iPqCU74mfLx/ndGeoh2A1Odg== +"@budibase/backend-core@1.3.19-alpha.6": + version "1.3.19-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.3.19-alpha.6.tgz#12f22db2b09ea7586cafb2eb2c375914c8467188" + integrity sha512-Kp9OaU80fZO1fEi/EA45eSz3zFYWzQHBfuy7XKzJ0MBKYPCvPteIXcXaANeUoHJE9rDGVUHM9nxLxnSfRUGy0Q== dependencies: - "@budibase/types" "1.3.19-alpha.5" + "@budibase/types" "1.3.19-alpha.6" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -327,21 +327,21 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@1.3.19-alpha.5": - version "1.3.19-alpha.5" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.5.tgz#a85152c4c162c62e0c449ec10bee96f2c9ef5202" - integrity sha512-8MseRJy7QR3fUShvfu5FSd42KSeBqkS80lp7UBZEqJ0dM/Nsw+d3/seE5gv76wEEf7Izu+6sX8mUUHxyHtdIlQ== +"@budibase/pro@1.3.19-alpha.6": + version "1.3.19-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.3.19-alpha.6.tgz#a30340dbd6aa52658312155a5ce0828d0cfc4621" + integrity sha512-ntyjKIoiAcCIPJAjwmZ19kcHOiduIcuia3htd5njzSNYrPerqmAty8g5oiBrjeK5ckMd8J3VQeCUdk0Lq1Mdfw== dependencies: - "@budibase/backend-core" "1.3.19-alpha.5" - "@budibase/types" "1.3.19-alpha.5" + "@budibase/backend-core" "1.3.19-alpha.6" + "@budibase/types" "1.3.19-alpha.6" "@koa/router" "8.0.8" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@1.3.19-alpha.5": - version "1.3.19-alpha.5" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.5.tgz#2aef86cf1365a00759ef74124e8ebc3fd00d396e" - integrity sha512-kC0x5VaQxYRmwqmcPGKn7u3GX7RWgvSxx5EghrwivpS22LpUQ3ULj54340GS4/Rxn7NjTAzV2jBPhe04PjSXxg== +"@budibase/types@1.3.19-alpha.6": + version "1.3.19-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.3.19-alpha.6.tgz#55ee8c67c2d4bc5ddf009ed1b22094e70d38f8ad" + integrity sha512-ApDkaWDpD4BmsmmzxqnSBcj2Q4PGBzkh+49MFZb8F+pdzcDHUQzbVwzVgfBVUS2lHhmZSfBM4sGsfGsBMd+Izw== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0"