From d80cca9a111d4092b4098e6ffa83f08448a9d1c3 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Mon, 3 Jul 2023 11:14:07 +0100 Subject: [PATCH 001/122] Allow all users into the design section, enable multi dev collab on screens, improve routing --- .../src/builderStore/store/frontend.js | 29 ++++++++++++++ .../builder/src/builderStore/websocket.js | 11 ++++-- packages/builder/src/helpers/urlStateSync.js | 20 +++++----- .../builder/app/[application]/_layout.svelte | 38 +++++++------------ .../[application]/automation/_layout.svelte | 9 ----- .../app/[application]/design/_layout.svelte | 12 ------ packages/server/src/api/controllers/screen.ts | 10 ++++- packages/server/src/websockets/builder.ts | 22 ++++++++++- packages/shared-core/src/constants.ts | 2 + 9 files changed, 89 insertions(+), 64 deletions(-) diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js index 5de58f02e7..4af3be4673 100644 --- a/packages/builder/src/builderStore/store/frontend.js +++ b/packages/builder/src/builderStore/store/frontend.js @@ -353,6 +353,35 @@ export const getFrontendStore = () => { } return await sequentialScreenPatch(patchFn, screenId) }, + replace: async (screenId, screen) => { + if (!screenId) { + return + } + + // Handle deletion + if (!screen) { + store.update(state => ({ + ...state, + screens: state.screens.filter(x => x._id !== screenId), + })) + return + } + + // Add new datasource + const index = get(store).screens.findIndex(x => x._id === screen._id) + if (index === -1) { + store.update(state => ({ + ...state, + screens: [...state.screens, screen], + })) + } + + // Update existing datasource + store.update(state => { + state.screens[index] = screen + return state + }) + }, delete: async screens => { const screensToDelete = Array.isArray(screens) ? screens : [screens] diff --git a/packages/builder/src/builderStore/websocket.js b/packages/builder/src/builderStore/websocket.js index af6d58ee7f..8562c8024c 100644 --- a/packages/builder/src/builderStore/websocket.js +++ b/packages/builder/src/builderStore/websocket.js @@ -31,7 +31,7 @@ export const createBuilderWebsocket = appId => { }) socket.onOther(BuilderSocketEvent.LockTransfer, ({ userId }) => { if (userId === get(auth)?.user?._id) { - notifications.success("You can now edit screens and automations") + notifications.success("You can now edit automations") store.update(state => ({ ...state, hasLock: true, @@ -39,15 +39,18 @@ export const createBuilderWebsocket = appId => { } }) - // Table events + // Data section events socket.onOther(BuilderSocketEvent.TableChange, ({ id, table }) => { tables.replaceTable(id, table) }) - - // Datasource events socket.onOther(BuilderSocketEvent.DatasourceChange, ({ id, datasource }) => { datasources.replaceDatasource(id, datasource) }) + // Design section events + socket.onOther(BuilderSocketEvent.ScreenChange, ({ id, screen }) => { + store.actions.screens.replace(id, screen) + }) + return socket } diff --git a/packages/builder/src/helpers/urlStateSync.js b/packages/builder/src/helpers/urlStateSync.js index 47f3438468..c4c48fb3fb 100644 --- a/packages/builder/src/helpers/urlStateSync.js +++ b/packages/builder/src/helpers/urlStateSync.js @@ -114,26 +114,24 @@ export const syncURLToState = options => { // Updates the URL with new state values const mapStateToUrl = state => { - let needsUpdate = false const urlValue = cachedParams?.[urlParam] const stateValue = state?.[stateKey] - if (stateValue !== urlValue) { - needsUpdate = true - log(`url.${urlParam} (${urlValue}) <= state.${stateKey} (${stateValue})`) - if (validate && fallbackUrl) { - if (!validate(stateValue)) { - log("Invalid state param!", stateValue) - redirectUrl(fallbackUrl) - return - } + + // As the store updated, validate that the current state value is valid + if (validate && fallbackUrl) { + if (!validate(stateValue)) { + log("Invalid state param!", stateValue) + redirectUrl(fallbackUrl) + return } } // Avoid updating the URL if not necessary to prevent a wasted render // cycle - if (!needsUpdate) { + if (stateValue === urlValue) { return } + log(`url.${urlParam} (${urlValue}) <= state.${stateKey} (${stateValue})`) // Navigate to the new URL if (!get(isChangingPage)) { diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte index 0d5942c39e..3703279044 100644 --- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte @@ -151,31 +151,19 @@ on:click={() => $goto("../../portal/apps")} /> - {#if $store.hasLock} - - {#each $layout.children as { path, title }} - - - - {/each} - - {:else} -
- -
- Another user is currently editing your screens and automations -
-
- {/if} + + {#each $layout.children as { path, title }} + + + + {/each} +
{$store.name} diff --git a/packages/builder/src/pages/builder/app/[application]/automation/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/automation/_layout.svelte index 79ca5df168..74dfe671ab 100644 --- a/packages/builder/src/pages/builder/app/[application]/automation/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/automation/_layout.svelte @@ -8,15 +8,6 @@ import { onDestroy, onMount } from "svelte" import { syncURLToState } from "helpers/urlStateSync" import * as routify from "@roxi/routify" - import { store } from "builderStore" - import { redirect } from "@roxi/routify" - - // Prevent access for other users than the lock holder - $: { - if (!$store.hasLock) { - $redirect("../data") - } - } // Keep URL and state in sync for selected screen ID const stopSyncing = syncURLToState({ diff --git a/packages/builder/src/pages/builder/app/[application]/design/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/design/_layout.svelte index d23514ae6d..ec21d909aa 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/_layout.svelte @@ -1,14 +1,2 @@ - - diff --git a/packages/server/src/api/controllers/screen.ts b/packages/server/src/api/controllers/screen.ts index 9cbd019d6e..ddfec91c0c 100644 --- a/packages/server/src/api/controllers/screen.ts +++ b/packages/server/src/api/controllers/screen.ts @@ -8,6 +8,7 @@ import { } from "@budibase/backend-core" import { updateAppPackage } from "./application" import { Plugin, ScreenProps, BBContext } from "@budibase/types" +import { builderSocket } from "../../websockets" export async function fetch(ctx: BBContext) { const db = context.getAppDB() @@ -87,13 +88,17 @@ export async function save(ctx: BBContext) { if (eventFn) { await eventFn(screen) } - ctx.message = `Screen ${screen.name} saved.` - ctx.body = { + const savedScreen = { ...screen, _id: response.id, _rev: response.rev, + } + ctx.message = `Screen ${screen.name} saved.` + ctx.body = { + ...savedScreen, pluginAdded, } + builderSocket?.emitScreenUpdate(ctx, savedScreen) } export async function destroy(ctx: BBContext) { @@ -108,6 +113,7 @@ export async function destroy(ctx: BBContext) { message: "Screen deleted successfully", } ctx.status = 200 + builderSocket?.emitScreenDeletion(ctx, id) } function findPlugins(component: ScreenProps, foundPlugins: string[]) { diff --git a/packages/server/src/websockets/builder.ts b/packages/server/src/websockets/builder.ts index 2524d9608b..839f8732b7 100644 --- a/packages/server/src/websockets/builder.ts +++ b/packages/server/src/websockets/builder.ts @@ -3,7 +3,13 @@ import { BaseSocket } from "./websocket" import { permissions, events } from "@budibase/backend-core" import http from "http" import Koa from "koa" -import { Datasource, Table, SocketSession, ContextUser } from "@budibase/types" +import { + Datasource, + Table, + SocketSession, + ContextUser, + Screen, +} from "@budibase/types" import { gridSocket } from "./index" import { clearLock, updateLock } from "../utilities/redis" import { Socket } from "socket.io" @@ -101,4 +107,18 @@ export default class BuilderSocket extends BaseSocket { datasource: null, }) } + + emitScreenUpdate(ctx: any, screen: Screen) { + this.emitToRoom(ctx, ctx.appId, BuilderSocketEvent.ScreenChange, { + id: screen._id, + screen, + }) + } + + emitScreenDeletion(ctx: any, id: string) { + this.emitToRoom(ctx, ctx.appId, BuilderSocketEvent.ScreenChange, { + id, + screen: null, + }) + } } diff --git a/packages/shared-core/src/constants.ts b/packages/shared-core/src/constants.ts index 307285012b..e3784ac354 100644 --- a/packages/shared-core/src/constants.ts +++ b/packages/shared-core/src/constants.ts @@ -86,6 +86,8 @@ export enum BuilderSocketEvent { TableChange = "TableChange", DatasourceChange = "DatasourceChange", LockTransfer = "LockTransfer", + ScreenChange = "ScreenChange", + AppMetadataChange = "AppMetadataChange", } export const SocketSessionTTL = 60 From 4725faf8b53192d06f135d06525cd592fd9b3062 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Mon, 3 Jul 2023 11:23:08 +0100 Subject: [PATCH 002/122] Update websocket user metadata structures --- packages/frontend-core/src/components/grid/stores/users.js | 5 +++-- packages/server/src/websockets/builder.ts | 7 +++++++ packages/server/src/websockets/grid.ts | 7 +++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/frontend-core/src/components/grid/stores/users.js b/packages/frontend-core/src/components/grid/stores/users.js index b6e74ef276..5a39f3769a 100644 --- a/packages/frontend-core/src/components/grid/stores/users.js +++ b/packages/frontend-core/src/components/grid/stores/users.js @@ -30,8 +30,9 @@ export const deriveStores = context => { ([$users, $focusedCellId]) => { let map = {} $users.forEach(user => { - if (user.focusedCellId && user.focusedCellId !== $focusedCellId) { - map[user.focusedCellId] = user + const cellId = user.gridMetadata?.focusedCellId + if (cellId && cellId !== $focusedCellId) { + map[cellId] = user } }) return map diff --git a/packages/server/src/websockets/builder.ts b/packages/server/src/websockets/builder.ts index 839f8732b7..d7a4701b06 100644 --- a/packages/server/src/websockets/builder.ts +++ b/packages/server/src/websockets/builder.ts @@ -78,6 +78,13 @@ export default class BuilderSocket extends BaseSocket { } } + async updateUser(socket: Socket, patch: Object) { + await super.updateUser(socket, { + ...socket.data.builderMetadata, + ...patch, + }) + } + emitTableUpdate(ctx: any, table: Table) { this.emitToRoom(ctx, ctx.appId, BuilderSocketEvent.TableChange, { id: table._id, diff --git a/packages/server/src/websockets/grid.ts b/packages/server/src/websockets/grid.ts index ffe26828bc..d9e454608b 100644 --- a/packages/server/src/websockets/grid.ts +++ b/packages/server/src/websockets/grid.ts @@ -69,6 +69,13 @@ export default class GridSocket extends BaseSocket { }) } + async updateUser(socket: Socket, patch: Object) { + await super.updateUser(socket, { + ...socket.data.gridMetadata, + ...patch, + }) + } + emitRowUpdate(ctx: any, row: Row) { const tableId = getTableId(ctx) const room = `${ctx.appId}-${tableId}` From 64216f61a91f0efa7c7b8808d36cf8ae3c242f65 Mon Sep 17 00:00:00 2001 From: Dean Date: Mon, 3 Jul 2023 12:48:17 +0100 Subject: [PATCH 003/122] Added custom tab keybinding to support autocomplete and default editor tab behaviour --- .../common/CodeEditor/CodeEditor.svelte | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte index dadca85fac..e68d3fd842 100644 --- a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte +++ b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte @@ -7,6 +7,8 @@ closeBrackets, completionKeymap, closeBracketsKeymap, + acceptCompletion, + completionStatus, } from "@codemirror/autocomplete" import { EditorView, @@ -34,7 +36,8 @@ defaultKeymap, historyKeymap, history, - indentWithTab, + indentMore, + indentLess, } from "@codemirror/commands" import { Compartment } from "@codemirror/state" import { javascript } from "@codemirror/lang-javascript" @@ -107,6 +110,22 @@ let isDark = !currentTheme.includes("light") let themeConfig = new Compartment() + const indentWithTabCustom = { + key: "Tab", + run: view => { + if (completionStatus(view.state) == "active") { + acceptCompletion(view) + return true + } + indentMore(view) + return true + }, + shift: view => { + indentLess(view) + return true + }, + } + const buildKeymap = () => { const baseMap = [ ...closeBracketsKeymap, @@ -114,7 +133,7 @@ ...historyKeymap, ...foldKeymap, ...completionKeymap, - indentWithTab, + indentWithTabCustom, ] return baseMap } From 1274bc32c3aa551a635a1b3e2ac199a71a314a81 Mon Sep 17 00:00:00 2001 From: Gerard Burns Date: Mon, 3 Jul 2023 13:36:02 +0100 Subject: [PATCH 004/122] New Design Empty State --- .../src/components/common/CreationPage.svelte | 39 ++++ .../actions/TriggerAutomation.svelte | 6 - .../components/start/CreateAppModal.svelte | 17 -- .../builder/app/[application]/data/new.svelte | 39 +--- .../_components/CreateScreenModal.svelte | 199 +++++++++++++++++ .../design/_components/DatasourceModal.svelte | 201 ++++++++++++++++++ .../_components/ScreenDetailsModal.svelte | 80 +++++++ .../design/_components/ScreenRoleModal.svelte | 62 ++++++ .../app/[application]/design/blank.png | Bin 0 -> 32283 bytes .../app/[application]/design/index.svelte | 120 +++++++---- .../app/[application]/design/table.png | Bin 0 -> 27091 bytes .../portal/apps/onboarding/index.svelte | 7 - 12 files changed, 670 insertions(+), 100 deletions(-) create mode 100644 packages/builder/src/components/common/CreationPage.svelte create mode 100644 packages/builder/src/pages/builder/app/[application]/design/_components/CreateScreenModal.svelte create mode 100644 packages/builder/src/pages/builder/app/[application]/design/_components/DatasourceModal.svelte create mode 100644 packages/builder/src/pages/builder/app/[application]/design/_components/ScreenDetailsModal.svelte create mode 100644 packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte create mode 100644 packages/builder/src/pages/builder/app/[application]/design/blank.png create mode 100644 packages/builder/src/pages/builder/app/[application]/design/table.png diff --git a/packages/builder/src/components/common/CreationPage.svelte b/packages/builder/src/components/common/CreationPage.svelte new file mode 100644 index 0000000000..9631e9d961 --- /dev/null +++ b/packages/builder/src/components/common/CreationPage.svelte @@ -0,0 +1,39 @@ + + +
+
+ {#if showClose} + + {/if} +
+
+ {heading} +
+ +
+ + diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/TriggerAutomation.svelte b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/TriggerAutomation.svelte index 72d38cded0..80c29a231a 100644 --- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/TriggerAutomation.svelte +++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/TriggerAutomation.svelte @@ -145,12 +145,6 @@ padding-bottom: 20px; } - .params { - display: flex; - flex-wrap: nowrap; - gap: 25px; - } - .synchronous-info { display: flex; gap: var(--spacing-s); diff --git a/packages/builder/src/components/start/CreateAppModal.svelte b/packages/builder/src/components/start/CreateAppModal.svelte index cf42668add..9106522628 100644 --- a/packages/builder/src/components/start/CreateAppModal.svelte +++ b/packages/builder/src/components/start/CreateAppModal.svelte @@ -9,8 +9,6 @@ import { createValidationStore } from "helpers/validation/yup" import * as appValidation from "helpers/validation/yup/app" import TemplateCard from "components/common/TemplateCard.svelte" - import createFromScratchScreen from "builderStore/store/screenTemplates/createFromScratchScreen" - import { Roles } from "constants/backend" import { lowercase } from "helpers" export let template @@ -136,21 +134,6 @@ // Create user await auth.setInitInfo({}) - // Create a default home screen if no template was selected - if (template == null) { - let defaultScreenTemplate = createFromScratchScreen.create() - defaultScreenTemplate.routing.route = "/home" - defaultScreenTemplate.routing.roldId = Roles.BASIC - try { - await store.actions.screens.save(defaultScreenTemplate) - } catch (err) { - console.error("Could not create a default application screen", err) - notifications.warning( - "Encountered an issue creating the default screen." - ) - } - } - $goto(`/builder/app/${createdApp.instance._id}`) } catch (error) { creating = false diff --git a/packages/builder/src/pages/builder/app/[application]/data/new.svelte b/packages/builder/src/pages/builder/app/[application]/data/new.svelte index 4eb9ce16e1..c5090229b3 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/new.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/new.svelte @@ -7,12 +7,13 @@ } from "stores/backend" import { hasData } from "stores/selectors" - import { Icon, notifications, Heading, Body } from "@budibase/bbui" + import { notifications, Body } from "@budibase/bbui" import { params, goto } from "@roxi/routify" import CreateExternalDatasourceModal from "./_components/CreateExternalDatasourceModal/index.svelte" import CreateInternalTableModal from "./_components/CreateInternalTableModal.svelte" import DatasourceOption from "./_components/DatasourceOption.svelte" import IntegrationIcon from "components/backend/DatasourceNavigator/IntegrationIcon.svelte" + import CreationPage from "components/common/CreationPage.svelte" import ICONS from "components/backend/DatasourceNavigator/icons/index.js" import FontAwesomeIcon from "components/common/FontAwesomeIcon.svelte" @@ -46,16 +47,11 @@ bind:this={externalDatasourceModal} /> -
-
- {#if hasData($datasources, $tables)} - - {/if} -
-
- Add new data source -
- + $goto("./table")} + heading="Add new data source" +>
Get started with our Budibase DB
{/each}
-
+
diff --git a/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenDetailsModal.svelte b/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenDetailsModal.svelte new file mode 100644 index 0000000000..7d0c58ce56 --- /dev/null +++ b/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenDetailsModal.svelte @@ -0,0 +1,80 @@ + + + + +
+ {appUrl} +
+
+ + diff --git a/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte b/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte new file mode 100644 index 0000000000..cde8047b97 --- /dev/null +++ b/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte @@ -0,0 +1,62 @@ + + + + Select which level of access you want your screens to have + role.name} - getOptionValue={role => role._id} - getOptionColour={role => RoleUtils.getRoleColour(role._id)} - options={$roles} - placeholder={null} - /> - diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/ScreenWizard.svelte b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/ScreenWizard.svelte deleted file mode 100644 index acca6e0fa3..0000000000 --- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/ScreenWizard.svelte +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - newScreenModal.show()} - initalScreens={!selectedTemplates ? [] : [...selectedTemplates]} - /> - - - - - - - - newScreenModal.show()} - initialUrl={blankScreenUrl} - /> - diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/blankScreenPreview.png b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/blankScreenPreview.png deleted file mode 100644 index 0511e2f4fe2293df2cd32157a6b54bdeedc8959f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71063 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 diff --git a/packages/builder/src/pages/builder/app/[application]/design/_components/CreateScreenModal.svelte b/packages/builder/src/pages/builder/app/[application]/design/_components/CreateScreenModal.svelte index 57a1863126..3ca3e6b419 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/_components/CreateScreenModal.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/_components/CreateScreenModal.svelte @@ -1,5 +1,5 @@ - - - -

- {appUrl} -
- - - diff --git a/packages/builder/src/pages/builder/app/[application]/design/index.svelte b/packages/builder/src/pages/builder/app/[application]/design/index.svelte index 42d85b5280..e9c72a6e1f 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/index.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/index.svelte @@ -1,107 +1,12 @@ - -{#if loaded} - -
- Start from scratch or create screens from your data -
- -
-
createScreenModal.show("blank")}> -
- -
-
- Blank screen - Add an empty blank screen -
-
- -
createScreenModal.show("table")}> -
- -
-
- Table - View, edit and delete rows on a table -
-
-
-
-{/if} - - - - diff --git a/packages/builder/src/pages/builder/app/[application]/design/new.svelte b/packages/builder/src/pages/builder/app/[application]/design/new.svelte new file mode 100644 index 0000000000..8b341ee2c4 --- /dev/null +++ b/packages/builder/src/pages/builder/app/[application]/design/new.svelte @@ -0,0 +1,102 @@ + + +
+ 0} + onClose={() => $goto(`./${$frontendStore.screens[0]._id}`)} + heading="Create your first screen" + > +
+ Start from scratch or create screens from your data +
+ +
+
createScreenModal.show("blank")}> +
+ +
+
+ Blank screen + Add an empty blank screen +
+
+ +
createScreenModal.show("table")}> +
+ +
+
+ Table + View, edit and delete rows on a table +
+
+
+
+
+ + + + From 99bf0ca03b245ac7861f5bb5fbb47611eede9e29 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 4 Jul 2023 13:18:38 +0100 Subject: [PATCH 009/122] Sync publish and unpublish events between all users --- packages/builder/src/builderStore/index.js | 6 + .../src/builderStore/store/deployments.js | 22 + .../src/builderStore/store/frontend.js | 9 + .../builder/src/builderStore/websocket.js | 19 +- .../src/components/deploy/AppActions.svelte | 391 ++++++++---------- .../src/components/deploy/DeployModal.svelte | 118 ------ .../deploy/DeploymentHistory.svelte | 236 ----------- .../builder/src/components/deploy/utils.js | 25 -- .../builder/app/[application]/_layout.svelte | 26 +- .../settings/name-and-url.svelte | 2 +- .../server/src/api/controllers/application.ts | 10 + .../src/api/controllers/deploy/index.ts | 2 + packages/server/src/websockets/builder.ts | 21 + packages/shared-core/src/constants.ts | 1 + 14 files changed, 271 insertions(+), 617 deletions(-) create mode 100644 packages/builder/src/builderStore/store/deployments.js delete mode 100644 packages/builder/src/components/deploy/DeployModal.svelte delete mode 100644 packages/builder/src/components/deploy/DeploymentHistory.svelte delete mode 100644 packages/builder/src/components/deploy/utils.js diff --git a/packages/builder/src/builderStore/index.js b/packages/builder/src/builderStore/index.js index 1022f917d0..8dbee49327 100644 --- a/packages/builder/src/builderStore/index.js +++ b/packages/builder/src/builderStore/index.js @@ -3,6 +3,7 @@ import { getAutomationStore } from "./store/automation" import { getTemporalStore } from "./store/temporal" import { getThemeStore } from "./store/theme" import { getUserStore } from "./store/users" +import { getDeploymentStore } from "./store/deployments" import { derived } from "svelte/store" import { findComponent, findComponentPath } from "./componentUtils" import { RoleUtils } from "@budibase/frontend-core" @@ -14,6 +15,7 @@ export const automationStore = getAutomationStore() export const themeStore = getThemeStore() export const temporalStore = getTemporalStore() export const userStore = getUserStore() +export const deploymentStore = getDeploymentStore() // Setup history for screens export const screenHistoryStore = createHistoryStore({ @@ -131,3 +133,7 @@ export const userSelectedResourceMap = derived(userStore, $userStore => { }) return map }) + +export const isOnlyUser = derived(userStore, $userStore => { + return $userStore.length === 1 +}) diff --git a/packages/builder/src/builderStore/store/deployments.js b/packages/builder/src/builderStore/store/deployments.js new file mode 100644 index 0000000000..9f7a68cb46 --- /dev/null +++ b/packages/builder/src/builderStore/store/deployments.js @@ -0,0 +1,22 @@ +import { writable } from "svelte/store" +import { API } from "api" +import { notifications } from "@budibase/bbui" + +export const getDeploymentStore = () => { + let store = writable([]) + + const load = async () => { + try { + store.set(await API.getAppDeployments()) + } catch (err) { + notifications.error("Error fetching deployments") + } + } + + return { + subscribe: store.subscribe, + actions: { + load, + }, + } +} diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js index a3e499e336..aa3ae3a90b 100644 --- a/packages/builder/src/builderStore/store/frontend.js +++ b/packages/builder/src/builderStore/store/frontend.js @@ -1402,6 +1402,15 @@ export const getFrontendStore = () => { }) }, }, + metadata: { + replace: metadata => { + console.log("NEW METADATA", metadata) + store.update(state => ({ + ...state, + ...metadata, + })) + }, + }, } return store diff --git a/packages/builder/src/builderStore/websocket.js b/packages/builder/src/builderStore/websocket.js index 8562c8024c..87195bed25 100644 --- a/packages/builder/src/builderStore/websocket.js +++ b/packages/builder/src/builderStore/websocket.js @@ -1,10 +1,12 @@ import { createWebsocket } from "@budibase/frontend-core" -import { userStore, store } from "builderStore" +import { userStore, store, deploymentStore } from "builderStore" import { datasources, tables } from "stores/backend" import { get } from "svelte/store" import { auth } from "stores/portal" import { SocketEvent, BuilderSocketEvent } from "@budibase/shared-core" +import { apps } from "stores/portal" import { notifications } from "@budibase/bbui" +import { helpers } from "@budibase/shared-core" export const createBuilderWebsocket = appId => { const socket = createWebsocket("/socket/builder") @@ -31,7 +33,6 @@ export const createBuilderWebsocket = appId => { }) socket.onOther(BuilderSocketEvent.LockTransfer, ({ userId }) => { if (userId === get(auth)?.user?._id) { - notifications.success("You can now edit automations") store.update(state => ({ ...state, hasLock: true, @@ -51,6 +52,20 @@ export const createBuilderWebsocket = appId => { socket.onOther(BuilderSocketEvent.ScreenChange, ({ id, screen }) => { store.actions.screens.replace(id, screen) }) + socket.onOther(BuilderSocketEvent.AppMetadataChange, ({ metadata }) => { + store.actions.metadata.replace(metadata) + }) + socket.onOther( + BuilderSocketEvent.AppPublishChange, + async ({ user, published }) => { + await apps.load() + if (published) { + await deploymentStore.actions.load() + } + const verb = published ? "published" : "unpublished" + notifications.success(`${helpers.getUserLabel(user)} ${verb} this app`) + } + ) return socket } diff --git a/packages/builder/src/components/deploy/AppActions.svelte b/packages/builder/src/components/deploy/AppActions.svelte index a9aa3ff506..0975803795 100644 --- a/packages/builder/src/components/deploy/AppActions.svelte +++ b/packages/builder/src/components/deploy/AppActions.svelte @@ -18,11 +18,9 @@ import { processStringSync } from "@budibase/string-templates" import ConfirmDialog from "components/common/ConfirmDialog.svelte" import analytics, { Events, EventSource } from "analytics" - import { checkIncomingDeploymentStatus } from "components/deploy/utils" import { API } from "api" - import { onMount } from "svelte" import { apps } from "stores/portal" - import { store } from "builderStore" + import { deploymentStore, store } from "builderStore" import TourWrap from "components/portal/onboarding/TourWrap.svelte" import { TOUR_STEP_KEYS } from "components/portal/onboarding/tours.js" import { goto } from "@roxi/routify" @@ -34,37 +32,31 @@ let updateAppModal let revertModal let versionModal - let appActionPopover let appActionPopoverOpen = false let appActionPopoverAnchor - let publishing = false $: filteredApps = $apps.filter(app => app.devId === application) $: selectedApp = filteredApps?.length ? filteredApps[0] : null - - $: deployments = [] - $: latestDeployments = deployments + $: latestDeployments = $deploymentStore .filter(deployment => deployment.status === "SUCCESS") .sort((a, b) => a.updatedAt > b.updatedAt) - $: isPublished = selectedApp?.status === "published" && latestDeployments?.length > 0 - $: updateAvailable = $store.upgradableVersion && $store.version && $store.upgradableVersion !== $store.version - $: canPublish = !publishing && loaded + $: lastDeployed = getLastDeployedString($deploymentStore) const initialiseApp = async () => { const applicationPkg = await API.fetchAppPackage($store.devId) await store.actions.initialise(applicationPkg) } - const updateDeploymentString = () => { + const getLastDeployedString = deployments => { return deployments?.length ? processStringSync("Published {{ duration time 'millisecond' }} ago", { time: @@ -73,27 +65,6 @@ : "" } - const reviewPendingDeployments = (deployments, newDeployments) => { - if (deployments.length > 0) { - const pending = checkIncomingDeploymentStatus(deployments, newDeployments) - if (pending.length) { - notifications.warning( - "Deployment has been queued and will be processed shortly" - ) - } - } - } - - async function fetchDeployments() { - try { - const newDeployments = await API.getAppDeployments() - reviewPendingDeployments(deployments, newDeployments) - return newDeployments - } catch (err) { - notifications.error("Error fetching deployment overview") - } - } - const previewApp = () => { store.update(state => ({ ...state, @@ -116,14 +87,11 @@ async function publishApp() { try { publishing = true - await API.publishAppChanges($store.appId) - notifications.send("App published", { type: "success", icon: "GlobeCheck", }) - await completePublish() } catch (error) { console.error(error) @@ -163,210 +131,191 @@ const completePublish = async () => { try { await apps.load() - deployments = await fetchDeployments() + await deploymentStore.actions.load() } catch (err) { notifications.error("Error refreshing app") } } - - onMount(async () => { - if (!$apps.length) { - await apps.load() - } - deployments = await fetchDeployments() - }) -{#if $store.hasLock} -
-
- - {#if updateAvailable} -
-
- - - Update - -
-
- {/if} - -
-
- { - store.update(state => { - state.builderSidePanel = true - return state - }) - }} - > - Users - -
-
-
- -
+
+
+ + {#if updateAvailable} +
- - Preview + + + Update
- - -
{ - if (!appActionPopoverOpen) { - appActionPopover.show() - } else { - appActionPopover.hide() - } - }} - > -
-
- - - - Publish - - - -
+ {/if} + +
+
+ { + store.update(state => { + state.builderSidePanel = true + return state + }) + }} + > + Users +
- { - appActionPopoverOpen = false - }} - on:open={() => { - appActionPopoverOpen = true - }} - > -
- - - - { - if (isPublished) { - viewApp() - } else { - appActionPopover.hide() - updateAppModal.show() - } - }} - > - {$store.url} - {#if isPublished} - - {:else} - - {/if} - - +
+ - - - {#if isPublished} - - {updateDeploymentString(deployments)} - - - Unpublish - - - Revert - - {:else} - Not published - {/if} - - -
- {#if $store.hasLock} - {#if isPublished} - { - $goto("./settings/embed") - appActionPopover.hide() - }} - > - Embed - - {/if} - - {/if} -
- -
- +
+
+ + Preview +
-
- - - Are you sure you want to unpublish the app {selectedApp?.name}? - - - - +
{ + if (!appActionPopoverOpen) { + appActionPopover.show() + } else { + appActionPopover.hide() + } }} - onUpdateComplete={async () => { - await initialiseApp() - }} - /> - + > +
+
+ + + + Publish + + + +
+
+ { + appActionPopoverOpen = false + }} + on:open={() => { + appActionPopoverOpen = true + }} + > +
+ + + + { + if (isPublished) { + viewApp() + } else { + appActionPopover.hide() + updateAppModal.show() + } + }} + > + {$store.url} + {#if isPublished} + + {:else} + + {/if} + + - - -{:else} -
-
- - Preview - + + + {#if isPublished} + + {lastDeployed} + + + Unpublish + + + Revert + + {:else} + Not published + {/if} + + +
+ {#if isPublished} + { + $goto("./settings/embed") + appActionPopover.hide() + }} + > + Embed + + {/if} + +
+ +
+
-{/if} +
+ + + + Are you sure you want to unpublish the app {selectedApp?.name}? + + + + { + await initialiseApp() + }} + /> + + + + diff --git a/packages/builder/src/components/deploy/DeploymentHistory.svelte b/packages/builder/src/components/deploy/DeploymentHistory.svelte deleted file mode 100644 index e025abf1c7..0000000000 --- a/packages/builder/src/components/deploy/DeploymentHistory.svelte +++ /dev/null @@ -1,236 +0,0 @@ - - -{#if deployments.length > 0} -
-
- Deployment History -
- {#if deployments.some(deployment => deployment.status === DeploymentStatus.SUCCESS)} - View Your Deployed App → - - {/if} -
-
-
- {#each deployments as deployment} -
-
- - {formatDate(deployment.updatedAt, "fullDate")} - - - {formatDate(deployment.updatedAt, "timeOnly")} - -
-
- {#if deployment.status.toLowerCase() === "pending"} - - {/if} -
showErrorReasonModal(deployment.err)} - class={`deployment-status ${deployment.status}`} - > - - {deployment.status} - {#if deployment.status === DeploymentStatus.FAILURE} - - {/if} - -
-
-
- {/each} -
-
-{/if} - - - - - - {errorReason} - - - - diff --git a/packages/builder/src/components/deploy/utils.js b/packages/builder/src/components/deploy/utils.js deleted file mode 100644 index cb254f0dbf..0000000000 --- a/packages/builder/src/components/deploy/utils.js +++ /dev/null @@ -1,25 +0,0 @@ -export const DeploymentStatus = { - SUCCESS: "SUCCESS", - PENDING: "PENDING", - FAILURE: "FAILURE", -} - -// Required to check any updated deployment statuses between polls -export function checkIncomingDeploymentStatus(current, incoming) { - return incoming.reduce((acc, incomingDeployment) => { - if (incomingDeployment.status === DeploymentStatus.FAILURE) { - const currentDeployment = current.find( - deployment => deployment._id === incomingDeployment._id - ) - - //We have just been notified of an ongoing deployments failure - if ( - !currentDeployment || - currentDeployment.status === DeploymentStatus.PENDING - ) { - acc.push(incomingDeployment) - } - } - return acc - }, []) -} diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte index 3703279044..8581200578 100644 --- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte @@ -1,7 +1,12 @@ -{#if url} - - {text || ""} - -{:else} - - - {text || ""} - -{/if} +
+ {#if url} + + {text || ""} + + {:else} + +
+ {text || ""} +
+ {/if} + {#if tooltip} +
+ +
+ {/if} +
diff --git a/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte index 225e3977c3..de65333f6f 100644 --- a/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte @@ -3,6 +3,7 @@ import { Page, Layout } from "@budibase/bbui" import { url, isActive } from "@roxi/routify" import DeleteModal from "components/deploy/DeleteModal.svelte" + import { isOnlyUser } from "builderStore" let deleteModal @@ -49,6 +50,10 @@ on:click={() => { deleteModal.show() }} + disabled={!$isOnlyUser} + tooltip={$isOnlyUser + ? null + : "Unavailable - another user is editing this app"} />
@@ -61,7 +66,7 @@ diff --git a/packages/bbui/src/Popover/Popover.svelte b/packages/bbui/src/Popover/Popover.svelte index 9f951a6a7e..20207a85da 100644 --- a/packages/bbui/src/Popover/Popover.svelte +++ b/packages/bbui/src/Popover/Popover.svelte @@ -90,6 +90,6 @@ .spectrum-Popover { min-width: var(--spectrum-global-dimension-size-2000); border-color: var(--spectrum-global-color-gray-300); - overflow: auto; + overflow: visible; } diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js index aa3ae3a90b..af421f8aa8 100644 --- a/packages/builder/src/builderStore/store/frontend.js +++ b/packages/builder/src/builderStore/store/frontend.js @@ -1404,7 +1404,6 @@ export const getFrontendStore = () => { }, metadata: { replace: metadata => { - console.log("NEW METADATA", metadata) store.update(state => ({ ...state, ...metadata, diff --git a/packages/builder/src/components/deploy/AppActions.svelte b/packages/builder/src/components/deploy/AppActions.svelte index c93f792870..7fc545ce44 100644 --- a/packages/builder/src/components/deploy/AppActions.svelte +++ b/packages/builder/src/components/deploy/AppActions.svelte @@ -253,7 +253,15 @@ Unpublish - Revert + + Revert + {:else} Not published From aedd04b98aae442750b2616a083b147044239011 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 5 Jul 2023 09:02:10 +0100 Subject: [PATCH 015/122] Fix issue with location of socket metadata --- packages/builder/src/builderStore/index.js | 4 ++-- packages/server/src/websockets/builder.ts | 6 ++++-- packages/server/src/websockets/grid.ts | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/builder/src/builderStore/index.js b/packages/builder/src/builderStore/index.js index 8dbee49327..e8fba9a0ee 100644 --- a/packages/builder/src/builderStore/index.js +++ b/packages/builder/src/builderStore/index.js @@ -127,8 +127,8 @@ export const selectedAutomation = derived(automationStore, $automationStore => { export const userSelectedResourceMap = derived(userStore, $userStore => { let map = {} $userStore.forEach(user => { - if (user.selectedResourceId) { - map[user.selectedResourceId] = user + if (user.builderMetadata?.selectedResourceId) { + map[user.builderMetadata?.selectedResourceId] = user } }) return map diff --git a/packages/server/src/websockets/builder.ts b/packages/server/src/websockets/builder.ts index 8b40115702..cff42ce178 100644 --- a/packages/server/src/websockets/builder.ts +++ b/packages/server/src/websockets/builder.ts @@ -86,8 +86,10 @@ export default class BuilderSocket extends BaseSocket { async updateUser(socket: Socket, patch: Object) { await super.updateUser(socket, { - ...socket.data.builderMetadata, - ...patch, + builderMetadata: { + ...socket.data.builderMetadata, + ...patch, + }, }) } diff --git a/packages/server/src/websockets/grid.ts b/packages/server/src/websockets/grid.ts index d9e454608b..f95137ee08 100644 --- a/packages/server/src/websockets/grid.ts +++ b/packages/server/src/websockets/grid.ts @@ -71,8 +71,10 @@ export default class GridSocket extends BaseSocket { async updateUser(socket: Socket, patch: Object) { await super.updateUser(socket, { - ...socket.data.gridMetadata, - ...patch, + gridMetadata: { + ...socket.data.gridMetadata, + ...patch, + }, }) } From 57242840b7235bd33516f0587f5a5c997aeabb13 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 5 Jul 2023 09:10:03 +0100 Subject: [PATCH 016/122] Update tooltips to transition and to use friendly names when possible --- packages/bbui/src/Button/Button.svelte | 26 ++----------------- .../src/components/UserAvatar.svelte | 8 +++--- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/packages/bbui/src/Button/Button.svelte b/packages/bbui/src/Button/Button.svelte index 816c4900b2..0aa9a12ee2 100644 --- a/packages/bbui/src/Button/Button.svelte +++ b/packages/bbui/src/Button/Button.svelte @@ -16,8 +16,6 @@ export let tooltip = undefined export let newStyles = true export let id - - let showTooltip = false
From bfec04937d46e3ccec22288e1f43f7fd996ac1ee Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 5 Jul 2023 15:19:53 +0000 Subject: [PATCH 039/122] Bump version to 2.8.2-alpha.0 --- lerna.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index a0f2f0c7c9..444587a74d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.1", + "version": "2.8.2-alpha.0", "npmClient": "yarn", "packages": [ "packages/*" @@ -19,4 +19,4 @@ "loadEnvFiles": false } } -} +} \ No newline at end of file From d1e3c5124a8bdf970ac6f6653c6326beb7ca7d8c Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 5 Jul 2023 15:32:42 +0000 Subject: [PATCH 040/122] Bump version to 2.8.2-alpha.1 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 444587a74d..d7fd7682b3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.2-alpha.0", + "version": "2.8.2-alpha.1", "npmClient": "yarn", "packages": [ "packages/*" From 3ae449390300dd8d447db7ec96d133a99470330a Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 5 Jul 2023 17:35:20 +0100 Subject: [PATCH 041/122] Filter out old or unused bindings when editing update state button actions --- .../ButtonActionDrawer.svelte | 51 +++++++++++++++---- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/ButtonActionDrawer.svelte b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/ButtonActionDrawer.svelte index aa8e1af950..d9111d4943 100644 --- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/ButtonActionDrawer.svelte +++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/ButtonActionDrawer.svelte @@ -16,6 +16,7 @@ makeStateBinding, } from "builderStore/dataBinding" import { currentAsset, store } from "builderStore" + import { cloneDeep } from "lodash/fp" const flipDurationMs = 150 const EVENT_TYPE_KEY = "##eventHandlerType" @@ -29,6 +30,26 @@ let actionQuery let selectedAction = actions?.length ? actions[0] : null + const setUpdateActions = actions => { + return actions + ? cloneDeep(actions) + .filter(action => { + return ( + action[EVENT_TYPE_KEY] === "Update State" && + action.parameters?.type === "set" && + action.parameters.key + ) + }) + .reduce((acc, action) => { + acc[action.id] = action + return acc + }, {}) + : [] + } + + // Snapshot original action state + let updateStateActions = setUpdateActions(actions) + $: { // Ensure parameters object is never null if (selectedAction && !selectedAction.parameters) { @@ -125,8 +146,9 @@ actions = e.detail.items } - const getAllBindings = (bindings, eventContextBindings, actions) => { + const getAllBindings = (actionBindings, eventContextBindings, actions) => { let allBindings = [] + let cloneActionBindings = cloneDeep(actionBindings) if (!actions) { return [] } @@ -144,11 +166,19 @@ .forEach(action => { // Check we have a binding for this action, and generate one if not const stateBinding = makeStateBinding(action.parameters.key) - const hasKey = bindings.some(binding => { + const hasKey = actionBindings.some(binding => { return binding.runtimeBinding === stateBinding.runtimeBinding }) if (!hasKey) { - bindings.push(stateBinding) + let existing = updateStateActions[action.id] + if (existing) { + const existingBinding = makeStateBinding(existing.parameters.key) + cloneActionBindings = cloneActionBindings.filter( + binding => + binding.runtimeBinding !== existingBinding.runtimeBinding + ) + } + allBindings.push(stateBinding) } }) // Get which indexes are asynchronous automations as we want to filter them out from the bindings @@ -164,15 +194,16 @@ .filter(index => index !== undefined) // Based on the above, filter out the asynchronous automations from the bindings - if (asynchronousAutomationIndexes) { - allBindings = eventContextBindings - .filter((binding, index) => { + let contextBindings = asynchronousAutomationIndexes + ? eventContextBindings.filter((binding, index) => { return !asynchronousAutomationIndexes.includes(index) }) - .concat(bindings) - } else { - allBindings = eventContextBindings.concat(bindings) - } + : eventContextBindings + + allBindings = contextBindings + .concat(cloneActionBindings) + .concat(allBindings) + return allBindings } From 808e0d1ef29d699cf28968060cbd71f52039d5b7 Mon Sep 17 00:00:00 2001 From: Gerard Burns Date: Wed, 5 Jul 2023 18:00:50 +0100 Subject: [PATCH 042/122] Linting improvements (#11119) --- .eslintrc.json | 19 +- babel.config.json | 3 + package.json | 18 +- .../src/FancyForm/FancyButtonRadio.svelte | 2 - .../bbui/src/Form/Core/EnvDropdown.svelte | 2 +- packages/bbui/src/Table/CellRenderer.svelte | 1 - packages/bbui/src/Table/Table.svelte | 2 +- .../src/builderStore/store/frontend.js | 2 +- .../FlowChart/ActionModal.svelte | 2 +- .../FlowChart/AutomationBlockTagline.svelte | 1 + .../CreateAutomationModal.svelte | 2 +- .../components/backend/DataTable/Table.svelte | 3 - .../DataTable/modals/CreateEditColumn.svelte | 4 - .../DatasourceNavigator.svelte | 2 +- .../DatasourceNavigator/icons/Budibase.svelte | 82 +- .../ExistingTableDataImport.svelte | 2 - .../TableNavigator/TableDataImport.svelte | 2 - .../commandPalette/CommandPalette.svelte | 24 +- .../src/components/common/CustomSVG.svelte | 1 + .../common/bindings/BindingPicker.svelte | 3 +- .../src/components/deploy/AppActions.svelte | 3 - .../actions/TriggerAutomation.svelte | 7 - .../FieldConfiguration.svelte | 4 - .../controls/FilterEditor/FilterDrawer.svelte | 2 +- .../FlatButtonGroup/FlatButton.svelte | 1 + .../settings/controls/PropertyControl.svelte | 2 +- .../components/portal/page/SideNavItem.svelte | 1 - .../_components/BuilderSidePanel.svelte | 6 - .../EditDatasourceConfigButton.svelte | 1 - .../[screenId]/_components/AppPreview.svelte | 1 + .../navigation/ComponentTree.svelte | 2 - .../src/pages/builder/apps/index.svelte | 2 +- .../portal/_components/MobileMenu.svelte | 2 +- .../pages/builder/portal/apps/create.svelte | 4 - .../pages/builder/portal/apps/index.svelte | 4 - .../_components/DeletionFailureModal.svelte | 2 - .../builder/portal/users/users/index.svelte | 2 +- .../client/src/components/ClientApp.svelte | 3 + .../client/src/components/Component.svelte | 2 +- .../client/src/components/app/Embed.svelte | 1 + .../client/src/components/app/Grid.svelte | 2 +- .../app/dynamic-filter/FilterModal.svelte | 2 +- .../grid/cells/RelationshipCell.svelte | 2 +- .../grid/overlays/ResizeOverlay.svelte | 11 +- yarn.lock | 1254 ++++++++++++++--- 45 files changed, 1190 insertions(+), 310 deletions(-) create mode 100644 babel.config.json diff --git a/.eslintrc.json b/.eslintrc.json index d94c749042..75584b8163 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -5,7 +5,7 @@ "jest": true, "node": true }, - "parser": "babel-eslint", + "parser": "@babel/eslint-parser", "parserOptions": { "ecmaVersion": 2019, "sourceType": "module", @@ -18,17 +18,23 @@ "*.spec.js", "bundle.js" ], - "plugins": ["svelte3"], "extends": ["eslint:recommended"], "overrides": [ { - "files": ["*.svelte"], - "processor": "svelte3/svelte3" + "files": ["**/*.svelte"], + "extends": "plugin:svelte/recommended", + "parser": "svelte-eslint-parser", + "parserOptions": { + "parser": "@babel/eslint-parser", + "ecmaVersion": 2019, + "sourceType": "module", + "allowImportExportEverywhere": true + } + }, { "files": ["**/*.ts"], "parser": "@typescript-eslint/parser", - "plugins": [], "extends": ["eslint:recommended"], "rules": { "no-unused-vars": "off", @@ -41,7 +47,8 @@ } ], "rules": { - "no-self-assign": "off" + "no-self-assign": "off", + "no-unused-vars": ["error", { "varsIgnorePattern": "^_", "argsIgnorePattern": "^_", "destructuredArrayIgnorePattern": "^_" }] }, "globals": { "GeolocationPositionError": true diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 0000000000..a6c42326bb --- /dev/null +++ b/babel.config.json @@ -0,0 +1,3 @@ +{ + "presets": [["@babel/preset-env", { "targets": { "node": "current" } }]] +} diff --git a/package.json b/package.json index 42e528dfce..a4b830d40b 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,10 @@ "@nx/js": "16.2.1", "@rollup/plugin-json": "^4.0.2", "@typescript-eslint/parser": "5.45.0", - "babel-eslint": "^10.0.3", "esbuild": "^0.17.18", "esbuild-node-externals": "^1.7.0", - "eslint": "^7.28.0", + "eslint": "^8.44.0", "eslint-plugin-cypress": "^2.11.3", - "eslint-plugin-svelte3": "^3.2.0", "husky": "^8.0.3", "js-yaml": "^4.1.0", "kill-port": "^1.6.1", @@ -23,7 +21,12 @@ "rimraf": "^3.0.2", "rollup-plugin-replace": "^2.2.0", "svelte": "^3.38.2", - "typescript": "4.7.3" + "typescript": "4.7.3", + "@babel/core": "^7.22.5", + "@babel/eslint-parser": "^7.22.5", + "@babel/preset-env": "^7.22.5", + "eslint-plugin-svelte": "^2.32.2", + "svelte-eslint-parser": "^0.32.0" }, "scripts": { "preinstall": "node scripts/syncProPackage.js", @@ -52,10 +55,10 @@ "dev:built": "yarn run kill-all && cd packages/server && yarn dev:stack:up && cd ../../ && lerna run --stream --parallel dev:built", "dev:docker": "yarn build:docker:pre && docker-compose -f hosting/docker-compose.build.yaml -f hosting/docker-compose.dev.yaml --env-file hosting/.env up --build --scale proxy-service=0", "test": "lerna run --stream test --stream", - "lint:eslint": "eslint packages && eslint qa-core", + "lint:eslint": "eslint packages qa-core --max-warnings=0", "lint:prettier": "prettier --check \"packages/**/*.{js,ts,svelte}\" && prettier --write \"examples/**/*.{js,ts,svelte}\" && prettier --check \"qa-core/**/*.{js,ts,svelte}\"", "lint": "yarn run lint:eslint && yarn run lint:prettier", - "lint:fix:eslint": "eslint --fix packages qa-core", + "lint:fix:eslint": "eslint --fix --max-warnings=0 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", "build:specs": "lerna run --stream specs", @@ -103,5 +106,6 @@ "@budibase/string-templates": "0.0.0", "@budibase/types": "0.0.0" }, - "dependencies": {} + "dependencies": { + } } diff --git a/packages/bbui/src/FancyForm/FancyButtonRadio.svelte b/packages/bbui/src/FancyForm/FancyButtonRadio.svelte index 510fd8efb8..3048b09555 100644 --- a/packages/bbui/src/FancyForm/FancyButtonRadio.svelte +++ b/packages/bbui/src/FancyForm/FancyButtonRadio.svelte @@ -15,8 +15,6 @@ const dispatch = createEventDispatcher() - $: placeholder = !value - const extractProperty = (value, property) => { if (value && typeof value === "object") { return value[property] diff --git a/packages/bbui/src/Form/Core/EnvDropdown.svelte b/packages/bbui/src/Form/Core/EnvDropdown.svelte index 0c647a1911..2edf8a5f9d 100644 --- a/packages/bbui/src/Form/Core/EnvDropdown.svelte +++ b/packages/bbui/src/Form/Core/EnvDropdown.svelte @@ -150,7 +150,7 @@
{:else if variables.length}
- {#each variables as variable, idx} + {#each variables as variable}
  • x.column === schema?.name) $: renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer - $: width = schema?.width || "150px" $: cellValue = getCellValue(value, schema.template) const getType = schema => { diff --git a/packages/bbui/src/Table/Table.svelte b/packages/bbui/src/Table/Table.svelte index f8528aac36..3a86295178 100644 --- a/packages/bbui/src/Table/Table.svelte +++ b/packages/bbui/src/Table/Table.svelte @@ -379,7 +379,7 @@
  • {/if} {#if sortedRows?.length} - {#each sortedRows as row, idx} + {#each sortedRows as row}
    {#if showEditColumn}
    { links: { save: async (url, title) => { const navigation = get(store).navigation - let links = [...navigation?.links] + let links = [...(navigation?.links ?? [])] // Skip if we have an identical link if (links.find(link => link.url === url && link.text === title)) { diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ActionModal.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ActionModal.svelte index 96dc8f4686..15dd864168 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ActionModal.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ActionModal.svelte @@ -168,7 +168,7 @@ Plugins
    - {#each Object.entries(plugins) as [idx, action]} + {#each Object.entries(plugins) as [_, action]}
    + {@html html}
    diff --git a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte index 5fb27eaaf3..647a8081cf 100644 --- a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte @@ -71,7 +71,7 @@
    - {#each triggers as [idx, trigger]} + {#each triggers as [_, trigger]}
    { Object.values(schema || {}).forEach(col => { diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte index 665175a435..620783be34 100644 --- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte @@ -57,7 +57,6 @@ let table = $tables.selected let confirmDeleteDialog - let deletion let savingColumn let deleteColName let jsonSchemaModal @@ -215,7 +214,6 @@ notifications.success(`Column ${editableColumn.name} deleted`) confirmDeleteDialog.hide() hide() - deletion = false dispatch("updatecolumns") } } catch (error) { @@ -266,13 +264,11 @@ function confirmDelete() { confirmDeleteDialog.show() - deletion = true } function hideDeleteDialog() { confirmDeleteDialog.hide() deleteColName = "" - deletion = false } function getRelationshipOptions(field) { diff --git a/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte b/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte index 99d7d5285d..f7b6f61a10 100644 --- a/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte +++ b/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte @@ -169,7 +169,7 @@ on:click={() => selectTable(TableNames.USERS)} selectedBy={$userSelectedResourceMap[TableNames.USERS]} /> - {#each enrichedDataSources as datasource, idx} + {#each enrichedDataSources as datasource} @@ -102,24 +102,24 @@ diff --git a/packages/builder/src/components/backend/TableNavigator/ExistingTableDataImport.svelte b/packages/builder/src/components/backend/TableNavigator/ExistingTableDataImport.svelte index eba17e8ab9..6ea2d771e9 100644 --- a/packages/builder/src/components/backend/TableNavigator/ExistingTableDataImport.svelte +++ b/packages/builder/src/components/backend/TableNavigator/ExistingTableDataImport.svelte @@ -6,7 +6,6 @@ let error = null let fileName = null - let fileType = null let loading = false let updateExistingRows = false @@ -74,7 +73,6 @@ const response = await parseFile(e) rows = response.rows fileName = response.fileName - fileType = response.fileType } catch (e) { loading = false error = e diff --git a/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte b/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte index f34a3e9c98..40af470b4d 100644 --- a/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte +++ b/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte @@ -7,7 +7,6 @@ let fileInput let error = null let fileName = null - let fileType = null let loading = false let validation = {} @@ -60,7 +59,6 @@ rows = response.rows schema = response.schema fileName = response.fileName - fileType = response.fileType } catch (e) { loading = false error = e diff --git a/packages/builder/src/components/commandPalette/CommandPalette.svelte b/packages/builder/src/components/commandPalette/CommandPalette.svelte index f77736055e..3c95dbbd0b 100644 --- a/packages/builder/src/components/commandPalette/CommandPalette.svelte +++ b/packages/builder/src/components/commandPalette/CommandPalette.svelte @@ -93,42 +93,42 @@ `https://github.com/Budibase/budibase/issues/new?assignees=&labels=bug&template=bug_report.md&title=` ), }, - ...$datasources?.list.map(datasource => ({ + ...($datasources?.list?.map(datasource => ({ type: "Datasource", name: `${datasource.name}`, icon: "Data", action: () => $goto(`./data/datasource/${datasource._id}`), - })), - ...$tables?.list.map(table => ({ + })) ?? []), + ...($tables?.list?.map(table => ({ type: "Table", name: table.name, icon: "Table", action: () => $goto(`./data/table/${table._id}`), - })), - ...$views?.list.map(view => ({ + })) ?? []), + ...($views?.list?.map(view => ({ type: "View", name: view.name, icon: "Remove", action: () => $goto(`./data/view/${view.name}`), - })), - ...$queries?.list.map(query => ({ + })) ?? []), + ...($queries?.list?.map(query => ({ type: "Query", name: query.name, icon: "SQLQuery", action: () => $goto(`./data/query/${query._id}`), - })), + })) ?? []), ...$sortedScreens.map(screen => ({ type: "Screen", name: screen.routing.route, icon: "WebPage", action: () => $goto(`./design/${screen._id}/components`), })), - ...$automationStore?.automations.map(automation => ({ + ...($automationStore?.automations?.map(automation => ({ type: "Automation", name: automation.name, icon: "ShareAndroid", action: () => $goto(`./automation/${automation._id}`), - })), + })) ?? []), ...Constants.Themes.map(theme => ({ type: "Change Builder Theme", name: theme.name, @@ -237,11 +237,11 @@
    - {#each categories as [name, results], catIdx} + {#each categories as [name, results]}
    {name}
    - {#each results as command, cmdIdx} + {#each results as command}
    runAction(command)} diff --git a/packages/builder/src/components/common/CustomSVG.svelte b/packages/builder/src/components/common/CustomSVG.svelte index ce6e964c38..3cd73a8d7a 100644 --- a/packages/builder/src/components/common/CustomSVG.svelte +++ b/packages/builder/src/components/common/CustomSVG.svelte @@ -20,4 +20,5 @@ } + {@html substituteSize(svgHtml)} diff --git a/packages/builder/src/components/common/bindings/BindingPicker.svelte b/packages/builder/src/components/common/bindings/BindingPicker.svelte index 50e7c66682..f752e37315 100644 --- a/packages/builder/src/components/common/bindings/BindingPicker.svelte +++ b/packages/builder/src/components/common/bindings/BindingPicker.svelte @@ -88,6 +88,7 @@ {/if} {#if hoverTarget.description}
    + {@html hoverTarget.description}
    {/if} @@ -124,7 +125,6 @@ /> - { @@ -162,7 +162,6 @@
      {#each category.bindings as binding} -
    • { diff --git a/packages/builder/src/components/deploy/AppActions.svelte b/packages/builder/src/components/deploy/AppActions.svelte index 485ab7150b..3c308618c3 100644 --- a/packages/builder/src/components/deploy/AppActions.svelte +++ b/packages/builder/src/components/deploy/AppActions.svelte @@ -139,7 +139,6 @@
      - {#if updateAvailable && $isOnlyUser}
      @@ -181,7 +180,6 @@
      -
      { @@ -221,7 +219,6 @@ >
      - 0 $: selectedAutomation = automations?.find( a => a._id === parameters?.automationId ) @@ -145,12 +144,6 @@ padding-bottom: 20px; } - .params { - display: flex; - flex-wrap: nowrap; - gap: 25px; - } - .synchronous-info { display: flex; gap: var(--spacing-s); diff --git a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte index f9127460e2..2778ce4f74 100644 --- a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte +++ b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte @@ -8,7 +8,6 @@ getSchemaForDatasource, } from "builderStore/dataBinding" import { currentAsset } from "builderStore" - import { getFields } from "helpers/searchFields" export let componentInstance export let value = [] @@ -31,9 +30,6 @@ $: options = Object.keys(schema || {}) $: sanitisedValue = getValidColumns(value, options) $: updateBoundValue(sanitisedValue) - $: enrichedSchemaFields = getFields(Object.values(schema || {}), { - allowLinks: true, - }) const getSchema = (asset, datasource) => { const schema = getSchemaForDatasource(asset, datasource).schema diff --git a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte index f56d7a78d4..d703ace92d 100644 --- a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte +++ b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte @@ -192,7 +192,7 @@
      - {#each rawFilters as filter, idx} + {#each rawFilters as filter} 1} on:wheel={e => (focused ? e.stopPropagation() : null)} > - {#each value || [] as relationship, idx} + {#each value || [] as relationship} {#if relationship.primaryDisplay}
      =0.0.4" -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0: +source-map@^0.5.6, source-map@~0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -23777,6 +24685,17 @@ svelte-dnd-action@^0.9.8: resolved "https://registry.yarnpkg.com/svelte-dnd-action/-/svelte-dnd-action-0.9.22.tgz#003eee9dddb31d8c782f6832aec8b1507fff194d" integrity sha512-lOQJsNLM1QWv5mdxIkCVtk6k4lHCtLgfE59y8rs7iOM6erchbLC9hMEFYSveZz7biJV0mpg7yDSs4bj/RT/YkA== +svelte-eslint-parser@^0.32.0: + version "0.32.0" + resolved "https://registry.yarnpkg.com/svelte-eslint-parser/-/svelte-eslint-parser-0.32.0.tgz#4a9bd21fd8e9f29136c3eaf140ba1ce90e8cb353" + integrity sha512-Q8Nh3GHHoWZMv3Ej4zw+3+gyWPR8I5pPTJXEOvW+JOgwhGXqGKh7mOKNlVcEPtk+PCGiK9TPaRtvRkKoJR327A== + dependencies: + eslint-scope "^7.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + postcss "^8.4.23" + postcss-scss "^4.0.6" + svelte-flatpickr@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/svelte-flatpickr/-/svelte-flatpickr-3.2.3.tgz#db5dd7ad832ef83262b45e09737955ad3d591fc8" @@ -26127,11 +27046,6 @@ yauzl@^2.10.0, yauzl@^2.4.2: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -year@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0" - integrity sha512-9GnJUZ0QM4OgXuOzsKNzTJ5EOkums1Xc+3YQXp+Q+UxFjf7zLucp9dQ8QMIft0Szs1E1hUiXFim1OYfEKFq97w== - ylru@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.3.2.tgz#0de48017473275a4cbdfc83a1eaf67c01af8a785" From 9cab2fbb12eaa0c54c5faa83c01bbbfbad170827 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 5 Jul 2023 17:01:12 +0000 Subject: [PATCH 043/122] Bump version to 2.8.2-alpha.2 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index d7fd7682b3..d8c5b50815 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.2-alpha.1", + "version": "2.8.2-alpha.2", "npmClient": "yarn", "packages": [ "packages/*" From e3be968b27e263609a25b3e616e7322dd2c62463 Mon Sep 17 00:00:00 2001 From: Gerard Burns Date: Thu, 6 Jul 2023 09:19:50 +0100 Subject: [PATCH 044/122] pr feedback --- packages/client/manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/manifest.json b/packages/client/manifest.json index b28b62393d..d9a6e2f162 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -4493,7 +4493,7 @@ }, { "type": "boolean", - "label": "Do not display default save notification", + "label": "Hide save alert", "key": "notificationOverride", "defaultValue": false, "dependsOn": { @@ -5140,7 +5140,7 @@ }, { "type": "boolean", - "label": "Do not display default save notification", + "label": "Hide save alert", "key": "notificationOverride", "defaultValue": false, "dependsOn": { From bca79f3b94bd4eed55bc004486b91696a3db89aa Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 6 Jul 2023 10:32:52 +0000 Subject: [PATCH 045/122] Bump version to 2.8.2-alpha.3 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index d8c5b50815..b3f3c4a73e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.2-alpha.2", + "version": "2.8.2-alpha.3", "npmClient": "yarn", "packages": [ "packages/*" From 7b9342a63aeb532db6d68e87a587161874e72e0a Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 6 Jul 2023 14:28:50 +0100 Subject: [PATCH 046/122] add stale workflow job --- .github/stale.yml | 19 ------------------- .github/workflows/stale_bot.yml | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 19 deletions(-) delete mode 100644 .github/stale.yml create mode 100644 .github/workflows/stale_bot.yml diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 2a2c10cb7d..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 60 -# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. -# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: false -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security - - roadmap -# Label to use when marking an issue as stale -staleLabel: stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/stale_bot.yml b/.github/workflows/stale_bot.yml new file mode 100644 index 0000000000..6bf3e3343b --- /dev/null +++ b/.github/workflows/stale_bot.yml @@ -0,0 +1,29 @@ +name: Close stale issues and PRs # https://github.com/actions/stale +on: + workflow_dispatch: + schedule: + - cron: '30 1 * * *' # 1:30 every morning + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v8 + with: + # stale rules + days-before-stale: 60 + days-before-pr-stale: 30 + stale-issue-label: stale + stale-issue-message: "This issue has been automatically marked as stale because it has not had any activity for 60 days." + + # close rules + # days after being marked as stale to close + days-before-close: 30 + close-issue-label: closed-stale + close-issue-message: This issue has been automatically closed it has not had recent activity." + days-before-pr-close: 7 + + # exemptions + exempt-pr-labels: pinned,security,roadmap + + From 5e7868ecb7987735f75ccdb680d864161f17e5cc Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 6 Jul 2023 14:32:11 +0100 Subject: [PATCH 047/122] update the stale timing on PRs --- .github/workflows/stale_bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale_bot.yml b/.github/workflows/stale_bot.yml index 6bf3e3343b..a5595394a7 100644 --- a/.github/workflows/stale_bot.yml +++ b/.github/workflows/stale_bot.yml @@ -12,7 +12,7 @@ jobs: with: # stale rules days-before-stale: 60 - days-before-pr-stale: 30 + days-before-pr-stale: 7 stale-issue-label: stale stale-issue-message: "This issue has been automatically marked as stale because it has not had any activity for 60 days." From 079f0eab2a5c2a50856123979bce6b7eb24cc945 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 6 Jul 2023 14:32:47 +0100 Subject: [PATCH 048/122] update closed issue message --- .github/workflows/stale_bot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale_bot.yml b/.github/workflows/stale_bot.yml index a5595394a7..8cda3a9342 100644 --- a/.github/workflows/stale_bot.yml +++ b/.github/workflows/stale_bot.yml @@ -20,7 +20,7 @@ jobs: # days after being marked as stale to close days-before-close: 30 close-issue-label: closed-stale - close-issue-message: This issue has been automatically closed it has not had recent activity." + close-issue-message: This issue has been automatically closed it has not had any activity in 90 days." days-before-pr-close: 7 # exemptions From e3f73473c3928377cacce63ef0670f5ffdd94c1d Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 7 Jul 2023 09:13:26 +0100 Subject: [PATCH 049/122] Update only user check to account for 0 users --- packages/builder/src/builderStore/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/builder/src/builderStore/index.js b/packages/builder/src/builderStore/index.js index e8fba9a0ee..16a87810ad 100644 --- a/packages/builder/src/builderStore/index.js +++ b/packages/builder/src/builderStore/index.js @@ -135,5 +135,5 @@ export const userSelectedResourceMap = derived(userStore, $userStore => { }) export const isOnlyUser = derived(userStore, $userStore => { - return $userStore.length === 1 + return $userStore.length < 2 }) From 02b213b4042eab3a747a0acfce878012a52fb79c Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 7 Jul 2023 08:13:48 +0000 Subject: [PATCH 050/122] Bump version to 2.8.2-alpha.4 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index b3f3c4a73e..09979397e0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.2-alpha.3", + "version": "2.8.2-alpha.4", "npmClient": "yarn", "packages": [ "packages/*" From 35150af784eee218455f1ce36993932b6348bb78 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 7 Jul 2023 12:09:23 +0100 Subject: [PATCH 051/122] Update multiple usages of tooltips to use new tooltip --- packages/bbui/src/Button/Button.svelte | 99 +++++++++---------- packages/bbui/src/Popover/Popover.svelte | 2 +- packages/bbui/src/Tooltip/AbsTooltip.svelte | 56 ++++++----- packages/bbui/src/index.js | 2 +- .../src/components/deploy/AppActions.svelte | 22 +++-- .../components/portal/page/SideNavItem.svelte | 21 ---- .../app/[application]/settings/_layout.svelte | 22 +++-- .../_components/ActionsRenderer.svelte | 22 +++-- .../components/grid/layout/HeaderRow.svelte | 4 +- 9 files changed, 118 insertions(+), 132 deletions(-) diff --git a/packages/bbui/src/Button/Button.svelte b/packages/bbui/src/Button/Button.svelte index 91affdb6c7..9e49d84d44 100644 --- a/packages/bbui/src/Button/Button.svelte +++ b/packages/bbui/src/Button/Button.svelte @@ -1,6 +1,7 @@ - + + + diff --git a/packages/bbui/src/Popover/Popover.svelte b/packages/bbui/src/Popover/Popover.svelte index 20207a85da..9f951a6a7e 100644 --- a/packages/bbui/src/Popover/Popover.svelte +++ b/packages/bbui/src/Popover/Popover.svelte @@ -90,6 +90,6 @@ .spectrum-Popover { min-width: var(--spectrum-global-dimension-size-2000); border-color: var(--spectrum-global-color-gray-300); - overflow: visible; + overflow: auto; } diff --git a/packages/bbui/src/Tooltip/AbsTooltip.svelte b/packages/bbui/src/Tooltip/AbsTooltip.svelte index a407c34de3..78a4d5f609 100644 --- a/packages/bbui/src/Tooltip/AbsTooltip.svelte +++ b/packages/bbui/src/Tooltip/AbsTooltip.svelte @@ -1,5 +1,5 @@ -
      +{#if text} +
      + +
      + {#if visible} + + + {text} + + + + {/if} +{:else} -
      -{#if visible} - - - {text} - - - {/if} diff --git a/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte index de65333f6f..7020e8fc11 100644 --- a/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte @@ -1,6 +1,6 @@ From 99ef4f2992d6065bf6a72f252fa7c11b790cf9dd Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 7 Jul 2023 14:46:41 +0100 Subject: [PATCH 053/122] Add new temporary tooltip component. Improve tooltips and user avatars --- packages/bbui/src/Tooltip/AbsTooltip.svelte | 67 ++++++++++------ packages/bbui/src/Tooltip/TempTooltip.svelte | 39 +++++++++ packages/bbui/src/index.js | 1 + .../src/components/common/NavItem.svelte | 80 +++++++++++-------- .../_components/UserAvatars.svelte | 14 +++- .../app/[application]/settings/_layout.svelte | 2 +- .../src/components/UserAvatar.svelte | 53 ++---------- .../components/grid/layout/HeaderRow.svelte | 33 ++++---- .../src/components/grid/stores/columns.js | 16 ++++ .../src/components/grid/stores/ui.js | 18 +---- 10 files changed, 186 insertions(+), 137 deletions(-) create mode 100644 packages/bbui/src/Tooltip/TempTooltip.svelte diff --git a/packages/bbui/src/Tooltip/AbsTooltip.svelte b/packages/bbui/src/Tooltip/AbsTooltip.svelte index 3e8caa389e..c6963d0870 100644 --- a/packages/bbui/src/Tooltip/AbsTooltip.svelte +++ b/packages/bbui/src/Tooltip/AbsTooltip.svelte @@ -5,7 +5,6 @@ Bottom: "bottom", Left: "left", } - export const TooltipType = { Default: "default", Info: "info", @@ -23,14 +22,27 @@ export let type = TooltipType.Default export let text = "" export let fixed = false + export let color = null let wrapper let hovered = false let left = 0 let top = 0 + let visible = false + let timeout - $: visible = hovered || fixed + $: { + if (hovered || fixed) { + timeout = setTimeout(show, 200) + } else { + clearTimeout(timeout) + hide() + } + } + $: tooltipStyle = color ? `background:${color};` : null + $: tipStyle = color ? `border-top-color:${color};` : null + // Computes the position of the tooltip then shows it const show = () => { const node = wrapper?.children?.[0] if (!node) { @@ -38,6 +50,7 @@ } const bounds = node.getBoundingClientRect() + // Determine where to render tooltip based on position prop if (position === TooltipPosition.Top) { left = bounds.left + bounds.width / 2 top = bounds.top @@ -54,36 +67,36 @@ return } - hovered = true + visible = true } + + // Hides the tooltip const hide = () => { - hovered = false + visible = false } -{#if text} -
      - -
      - {#if visible} - - - {text} - - - - {/if} -{:else} +
      (hovered = true)} + on:mouseleave={() => (hovered = false)} +> +
      + +{#if visible && text} + + + {text} + + + {/if} diff --git a/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte index 7020e8fc11..7063a271be 100644 --- a/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/settings/_layout.svelte @@ -46,7 +46,7 @@ />
      - import { Avatar, Tooltip } from "@budibase/bbui" + import { Avatar, AbsTooltip, TooltipPosition } from "@budibase/bbui" import { helpers } from "@budibase/shared-core" export let user export let size - export let tooltipDirection = "top" + export let tooltipPosition = TooltipPosition.Top export let showTooltip = true - - $: tooltipStyle = getTooltipStyle(tooltipDirection) - - const getTooltipStyle = direction => { - if (!direction) { - return "" - } - if (direction === "top") { - return "transform: translateX(-50%) translateY(-100%);" - } else if (direction === "bottom") { - return "transform: translateX(-50%) translateY(100%);" - } - } {#if user} -
      + - {#if showTooltip} -
      - -
      - {/if} -
      +
      {/if} - - diff --git a/packages/frontend-core/src/components/grid/layout/HeaderRow.svelte b/packages/frontend-core/src/components/grid/layout/HeaderRow.svelte index f5e6365b88..71bde9d3d8 100644 --- a/packages/frontend-core/src/components/grid/layout/HeaderRow.svelte +++ b/packages/frontend-core/src/components/grid/layout/HeaderRow.svelte @@ -4,7 +4,7 @@ import HeaderCell from "../cells/HeaderCell.svelte" import { Icon, - AbsTooltip, + TempTooltip, TooltipType, TooltipPosition, } from "@budibase/bbui" @@ -16,10 +16,11 @@ hiddenColumnsWidth, width, config, + hasNonAutoColumn, } = getContext("grid") $: columnsWidth = $renderedColumns.reduce( - (total, col) => (total += col.width), + (total, col) => total + col.width, 0 ) $: end = $hiddenColumnsWidth + columnsWidth - 1 - $scroll.left @@ -35,19 +36,23 @@
      {#if $config.allowSchemaChanges} - -
      dispatch("add-column")} + {#key left} + - -
      -
      +
      dispatch("add-column")} + > + +
      + + {/key} {/if}
      diff --git a/packages/frontend-core/src/components/grid/stores/columns.js b/packages/frontend-core/src/components/grid/stores/columns.js index 21458eaefb..6ca8704c1c 100644 --- a/packages/frontend-core/src/components/grid/stores/columns.js +++ b/packages/frontend-core/src/components/grid/stores/columns.js @@ -83,6 +83,21 @@ export const deriveStores = context => { await saveChanges() } + // Derive if we have any normal columns + const hasNonAutoColumn = derived( + [columns, stickyColumn], + ([$columns, $stickyColumn]) => { + let allCols = $columns || [] + if ($stickyColumn) { + allCols = [...allCols, $stickyColumn] + } + const normalCols = allCols.filter(column => { + return !column.schema?.autocolumn + }) + return normalCols.length > 0 + } + ) + // Persists column changes by saving metadata against table schema const saveChanges = async () => { const $columns = get(columns) @@ -128,6 +143,7 @@ export const deriveStores = context => { } return { + hasNonAutoColumn, columns: { ...columns, actions: { diff --git a/packages/frontend-core/src/components/grid/stores/ui.js b/packages/frontend-core/src/components/grid/stores/ui.js index 671addc087..2f16265273 100644 --- a/packages/frontend-core/src/components/grid/stores/ui.js +++ b/packages/frontend-core/src/components/grid/stores/ui.js @@ -70,8 +70,7 @@ export const deriveStores = context => { rowHeight, stickyColumn, width, - columns, - stickyColumns, + hasNonAutoColumn, config, } = context @@ -117,18 +116,9 @@ export const deriveStores = context => { // Derive if we're able to add rows const canAddRows = derived( - [config, columns, stickyColumn], - ([$config, $columns, $stickyColumn]) => { - // Check if we have a normal column - let allCols = $columns || [] - if ($stickyColumn) { - allCols = [...allCols, $stickyColumn] - } - const normalCols = allCols.filter(column => { - return column.visible && !column.schema?.autocolumn - }) - // Check if we're allowed to add rows - return $config.allowAddRows && normalCols.length > 0 + [config, hasNonAutoColumn], + ([$config, $hasNonAutoColumn]) => { + return $config.allowAddRows && $hasNonAutoColumn } ) From 7a06fcee0f97a56e7a58fb1320a4f82b7cbea8cf Mon Sep 17 00:00:00 2001 From: melohagan <101575380+melohagan@users.noreply.github.com> Date: Fri, 7 Jul 2023 15:11:41 +0100 Subject: [PATCH 054/122] Add BigInt type support (#11145) * Add BigInt type * Allow BigInt columns to be added * Sort fixes * Add BigInt field --- packages/bbui/src/Form/Core/TextField.svelte | 9 +++- .../screenTemplates/utils/commonComponents.js | 1 + .../DataTable/modals/CreateEditColumn.svelte | 1 + .../design/settings/componentSettings.js | 1 + .../controls/FilterEditor/FilterDrawer.svelte | 2 +- .../builder/src/constants/backend/index.js | 4 ++ .../new/_components/componentStructure.json | 17 ++----- packages/client/manifest.json | 51 +++++++++++++++++++ .../app/blocks/form/InnerFormBlock.svelte | 1 + .../app/dynamic-filter/FilterModal.svelte | 2 +- .../components/app/forms/BigIntField.svelte | 7 +++ .../src/components/app/forms/Field.svelte | 5 +- .../client/src/components/app/forms/index.js | 1 + packages/client/src/utils/blocks.js | 1 + .../components/grid/cells/HeaderCell.svelte | 8 ++- .../src/components/grid/lib/utils.js | 1 + packages/frontend-core/src/fetch/DataFetch.js | 2 +- .../server/src/integrations/base/sqlTable.ts | 3 ++ packages/server/src/integrations/utils.ts | 2 +- packages/shared-core/src/filters.ts | 2 +- packages/types/src/documents/app/row.ts | 1 + 21 files changed, 99 insertions(+), 23 deletions(-) create mode 100644 packages/client/src/components/app/forms/BigIntField.svelte diff --git a/packages/bbui/src/Form/Core/TextField.svelte b/packages/bbui/src/Form/Core/TextField.svelte index acc2169a06..b3b0865c64 100644 --- a/packages/bbui/src/Form/Core/TextField.svelte +++ b/packages/bbui/src/Form/Core/TextField.svelte @@ -62,6 +62,13 @@ } } + const getInputMode = type => { + if (type === "bigint") { + return "numeric" + } + return type === "number" ? "decimal" : "text" + } + onMount(() => { focus = autofocus if (focus) field.focus() @@ -103,7 +110,7 @@ {type} class="spectrum-Textfield-input" style={align ? `text-align: ${align};` : ""} - inputmode={type === "number" ? "decimal" : "text"} + inputmode={getInputMode(type)} {autocomplete} />
      diff --git a/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js b/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js index 6fdedbe44c..ace5196bba 100644 --- a/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js +++ b/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js @@ -4,6 +4,7 @@ import { getSchemaForDatasource } from "../../../dataBinding" const fieldTypeToComponentMap = { string: "stringfield", number: "numberfield", + bigint: "bigintfield", options: "optionsfield", array: "multifieldselect", boolean: "booleanfield", diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte index 620783be34..208739a540 100644 --- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte @@ -326,6 +326,7 @@ FIELDS.NUMBER, FIELDS.BOOLEAN, FIELDS.FORMULA, + FIELDS.BIGINT, ] // no-sql or a spreadsheet if (!external || table.sql) { diff --git a/packages/builder/src/components/design/settings/componentSettings.js b/packages/builder/src/components/design/settings/componentSettings.js index b3b9fb6577..314391e77c 100644 --- a/packages/builder/src/components/design/settings/componentSettings.js +++ b/packages/builder/src/components/design/settings/componentSettings.js @@ -52,6 +52,7 @@ const componentMap = { "field/sortable": SortableFieldSelect, "field/string": FormFieldSelect, "field/number": FormFieldSelect, + "field/bigint": FormFieldSelect, "field/options": FormFieldSelect, "field/boolean": FormFieldSelect, "field/longform": FormFieldSelect, diff --git a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte index d703ace92d..4b1ab0d68a 100644 --- a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte +++ b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte @@ -228,7 +228,7 @@ on:change={event => (filter.value = event.detail)} {fillWidth} /> - {:else if ["string", "longform", "number", "formula"].includes(filter.type)} + {:else if ["string", "longform", "number", "bigint", "formula"].includes(filter.type)} {:else if filter.type === "array" || (filter.type === "options" && filter.operator === "oneOf")} onOperatorChange(filter, e.detail)} placeholder={null} /> - {#if ["string", "longform", "number", "formula"].includes(filter.type)} + {#if ["string", "longform", "number", "bigint", "formula"].includes(filter.type)} {:else if ["options", "array"].includes(filter.type)} + import StringField from "./StringField.svelte" + + export let defaultValue + + + diff --git a/packages/client/src/components/app/forms/Field.svelte b/packages/client/src/components/app/forms/Field.svelte index 5f11757c9c..5d4da5afef 100644 --- a/packages/client/src/components/app/forms/Field.svelte +++ b/packages/client/src/components/app/forms/Field.svelte @@ -33,7 +33,10 @@ formStep ) - $: schemaType = fieldSchema?.type !== "formula" ? fieldSchema?.type : "string" + $: schemaType = + fieldSchema?.type !== "formula" && fieldSchema?.type !== "bigint" + ? fieldSchema?.type + : "string" // Focus label when editing let labelNode diff --git a/packages/client/src/components/app/forms/index.js b/packages/client/src/components/app/forms/index.js index 44c1516885..47701fe3a9 100644 --- a/packages/client/src/components/app/forms/index.js +++ b/packages/client/src/components/app/forms/index.js @@ -2,6 +2,7 @@ export { default as form } from "./Form.svelte" export { default as fieldgroup } from "./FieldGroup.svelte" export { default as stringfield } from "./StringField.svelte" export { default as numberfield } from "./NumberField.svelte" +export { default as bigintfield } from "./BigIntField.svelte" export { default as optionsfield } from "./OptionsField.svelte" export { default as multifieldselect } from "./MultiFieldSelect.svelte" export { default as booleanfield } from "./BooleanField.svelte" diff --git a/packages/client/src/utils/blocks.js b/packages/client/src/utils/blocks.js index 214b48a4d2..0de0b55579 100644 --- a/packages/client/src/utils/blocks.js +++ b/packages/client/src/utils/blocks.js @@ -6,6 +6,7 @@ const schemaComponentMap = { string: "stringfield", options: "optionsfield", number: "numberfield", + bigint: "bigintfield", datetime: "datetimefield", boolean: "booleanfield", formula: "stringfield", diff --git a/packages/frontend-core/src/components/grid/cells/HeaderCell.svelte b/packages/frontend-core/src/components/grid/cells/HeaderCell.svelte index 3604dd6d42..9219dd3f59 100644 --- a/packages/frontend-core/src/components/grid/cells/HeaderCell.svelte +++ b/packages/frontend-core/src/components/grid/cells/HeaderCell.svelte @@ -37,8 +37,12 @@ $: sortedBy = column.name === $sort.column $: canMoveLeft = orderable && idx > 0 $: canMoveRight = orderable && idx < $renderedColumns.length - 1 - $: ascendingLabel = column.schema?.type === "number" ? "low-high" : "A-Z" - $: descendingLabel = column.schema?.type === "number" ? "high-low" : "Z-A" + $: ascendingLabel = ["number", "bigint"].includes(column.schema?.type) + ? "low-high" + : "A-Z" + $: descendingLabel = ["number", "bigint"].includes(column.schema?.type) + ? "high-low" + : "Z-A" const editColumn = () => { dispatch("edit-column", column.schema) diff --git a/packages/frontend-core/src/components/grid/lib/utils.js b/packages/frontend-core/src/components/grid/lib/utils.js index 4006b3def6..d4298e6a1b 100644 --- a/packages/frontend-core/src/components/grid/lib/utils.js +++ b/packages/frontend-core/src/components/grid/lib/utils.js @@ -18,6 +18,7 @@ const TypeIconMap = { link: "DataCorrelated", formula: "Calculator", json: "Brackets", + bigint: "TagBold", } export const getColumnIcon = column => { diff --git a/packages/frontend-core/src/fetch/DataFetch.js b/packages/frontend-core/src/fetch/DataFetch.js index f9d7fd2624..ea1cfdde77 100644 --- a/packages/frontend-core/src/fetch/DataFetch.js +++ b/packages/frontend-core/src/fetch/DataFetch.js @@ -155,7 +155,7 @@ export default class DataFetch { let sortType = "string" if (sortColumn) { const type = schema?.[sortColumn]?.type - sortType = type === "number" ? "number" : "string" + sortType = type === "number" || type === "bigint" ? "number" : "string" } this.options.sortType = sortType diff --git a/packages/server/src/integrations/base/sqlTable.ts b/packages/server/src/integrations/base/sqlTable.ts index c43ef7da29..62b13c4ef5 100644 --- a/packages/server/src/integrations/base/sqlTable.ts +++ b/packages/server/src/integrations/base/sqlTable.ts @@ -53,6 +53,9 @@ function generateSchema( schema.float(key) } break + case FieldTypes.BIGINT: + schema.bigint(key) + break case FieldTypes.BOOLEAN: schema.boolean(key) break diff --git a/packages/server/src/integrations/utils.ts b/packages/server/src/integrations/utils.ts index 75deaf7f30..3f598ce986 100644 --- a/packages/server/src/integrations/utils.ts +++ b/packages/server/src/integrations/utils.ts @@ -48,7 +48,6 @@ const SQL_STRING_TYPE_MAP = { blob: FieldTypes.STRING, long: FieldTypes.STRING, text: FieldTypes.STRING, - bigint: FieldTypes.STRING, } const SQL_BOOLEAN_TYPE_MAP = { @@ -59,6 +58,7 @@ const SQL_BOOLEAN_TYPE_MAP = { const SQL_MISC_TYPE_MAP = { json: FieldTypes.JSON, + bigint: FieldTypes.BIGINT, } const SQL_TYPE_MAP = { diff --git a/packages/shared-core/src/filters.ts b/packages/shared-core/src/filters.ts index 7c2c34bf6b..54e0df92df 100644 --- a/packages/shared-core/src/filters.ts +++ b/packages/shared-core/src/filters.ts @@ -38,7 +38,7 @@ export const getValidOperatorsForType = ( }[] = [] if (type === "string") { ops = stringOps - } else if (type === "number") { + } else if (type === "number" || type === "bigint") { ops = numOps } else if (type === "options") { ops = [Op.Equals, Op.NotEquals, Op.Empty, Op.NotEmpty, Op.In] diff --git a/packages/types/src/documents/app/row.ts b/packages/types/src/documents/app/row.ts index 90c1e3fca8..a2295c4a42 100644 --- a/packages/types/src/documents/app/row.ts +++ b/packages/types/src/documents/app/row.ts @@ -15,6 +15,7 @@ export enum FieldType { JSON = "json", INTERNAL = "internal", BARCODEQR = "barcodeqr", + BIGINT = "bigint", } export interface RowAttachment { From 8e24ae40f0f3962195397494f84a1d47517e4aa6 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 7 Jul 2023 14:12:05 +0000 Subject: [PATCH 055/122] Bump version to 2.8.2-alpha.5 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 09979397e0..5c20645fec 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.2-alpha.4", + "version": "2.8.2-alpha.5", "npmClient": "yarn", "packages": [ "packages/*" From 62e452dfe70981748d9cd59b376d356b347ba970 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 7 Jul 2023 15:45:18 +0100 Subject: [PATCH 056/122] Update user avatars and selection state for collaboration --- packages/builder/src/builderStore/index.js | 8 +++- .../src/components/common/NavItem.svelte | 6 ++- .../_components/UserAvatars.svelte | 48 +++++++++++++++---- .../builder/app/[application]/_layout.svelte | 2 +- .../src/components/UserAvatar.svelte | 2 +- 5 files changed, 52 insertions(+), 14 deletions(-) diff --git a/packages/builder/src/builderStore/index.js b/packages/builder/src/builderStore/index.js index 16a87810ad..2ca8057b48 100644 --- a/packages/builder/src/builderStore/index.js +++ b/packages/builder/src/builderStore/index.js @@ -127,8 +127,12 @@ export const selectedAutomation = derived(automationStore, $automationStore => { export const userSelectedResourceMap = derived(userStore, $userStore => { let map = {} $userStore.forEach(user => { - if (user.builderMetadata?.selectedResourceId) { - map[user.builderMetadata?.selectedResourceId] = user + const resource = user.builderMetadata?.selectedResourceId + if (resource) { + if (!map[resource]) { + map[resource] = [] + } + map[resource].push(user) } }) return map diff --git a/packages/builder/src/components/common/NavItem.svelte b/packages/builder/src/components/common/NavItem.svelte index 5309bc0d7d..468f60b9f7 100644 --- a/packages/builder/src/components/common/NavItem.svelte +++ b/packages/builder/src/components/common/NavItem.svelte @@ -3,6 +3,7 @@ import { createEventDispatcher, getContext } from "svelte" import { helpers } from "@budibase/shared-core" import { UserAvatar } from "@budibase/frontend-core" + import UserAvatars from "../../pages/builder/app/[application]/_components/UserAvatars.svelte" export let icon export let withArrow = false @@ -102,7 +103,7 @@
      {text} {#if selectedBy} - + {/if}
      @@ -145,13 +146,16 @@ } .nav-item.highlighted { background-color: var(--spectrum-global-color-gray-200); + --avatars-background: var(--spectrum-global-color-gray-200); } .nav-item.selected { background-color: var(--spectrum-global-color-gray-300); + --avatars-background: var(--spectrum-global-color-gray-300); color: var(--ink); } .nav-item:hover { background-color: var(--spectrum-global-color-gray-300); + --avatars-background: var(--spectrum-global-color-gray-300); } .nav-item:hover .actions { visibility: visible; diff --git a/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte b/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte index dc4938b9bd..9e62951d53 100644 --- a/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte @@ -1,24 +1,54 @@
      - {#each uniqueUsers as user, idx} - - + {#each avatars as user} + + {#if user._id === "overflow"} + + {:else} + + {/if} {/each}
      @@ -27,10 +57,10 @@ .avatars { display: flex; } - .avatars :global(> *:not(:first-child)) { - margin-left: -12px; + span:not(:first-of-type) { + margin-left: -6px; } .avatars :global(.spectrum-Avatar) { - border: 2px solid var(--background); + border: 2px solid var(--avatars-background, var(--background)); } diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte index e6c79335a9..8586a300fc 100644 --- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte @@ -172,7 +172,7 @@
      - +
      diff --git a/packages/frontend-core/src/components/UserAvatar.svelte b/packages/frontend-core/src/components/UserAvatar.svelte index 97a06aa569..bc630ed473 100644 --- a/packages/frontend-core/src/components/UserAvatar.svelte +++ b/packages/frontend-core/src/components/UserAvatar.svelte @@ -3,7 +3,7 @@ import { helpers } from "@budibase/shared-core" export let user - export let size + export let size = "S" export let tooltipPosition = TooltipPosition.Top export let showTooltip = true From 06876b0ea2a79a3660e99bce83df4d10abddde06 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 7 Jul 2023 16:03:25 +0100 Subject: [PATCH 057/122] Improve tooltips more by ensuring they follow the target smoothly --- packages/bbui/src/Tooltip/AbsTooltip.svelte | 25 ++++++++++++++----- .../components/grid/layout/HeaderRow.svelte | 17 +++++-------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/packages/bbui/src/Tooltip/AbsTooltip.svelte b/packages/bbui/src/Tooltip/AbsTooltip.svelte index c6963d0870..3a2c035615 100644 --- a/packages/bbui/src/Tooltip/AbsTooltip.svelte +++ b/packages/bbui/src/Tooltip/AbsTooltip.svelte @@ -17,6 +17,7 @@ import Portal from "svelte-portal" import { fade } from "svelte/transition" import "@spectrum-css/tooltip/dist/index-vars.css" + import { onDestroy } from "svelte" export let position = TooltipPosition.Top export let type = TooltipType.Default @@ -30,20 +31,21 @@ let top = 0 let visible = false let timeout + let interval $: { if (hovered || fixed) { + // Debounce showing by 200ms to avoid flashing tooltip timeout = setTimeout(show, 200) } else { - clearTimeout(timeout) hide() } } $: tooltipStyle = color ? `background:${color};` : null $: tipStyle = color ? `border-top-color:${color};` : null - // Computes the position of the tooltip then shows it - const show = () => { + // Computes the position of the tooltip + const updateTooltipPosition = () => { const node = wrapper?.children?.[0] if (!node) { return @@ -63,17 +65,27 @@ } else if (position === TooltipPosition.Left) { left = bounds.left top = bounds.top + bounds.height / 2 - } else { - return } + } + // Computes the position of the tooltip then shows it. + // We set up a poll to frequently update the position of the tooltip in case + // the target moves. + const show = () => { + updateTooltipPosition() + interval = setInterval(updateTooltipPosition, 100) visible = true } // Hides the tooltip const hide = () => { + clearTimeout(timeout) + clearInterval(interval) visible = false } + + // Ensure we clean up interval and timeout + onDestroy(hide)
      {#if $config.allowSchemaChanges} - {#key left} + {#key $tableId}
      dispatch("add-column")} > From ce90f9cd257e4534744e18dcffec60b331121e42 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 7 Jul 2023 16:05:23 +0100 Subject: [PATCH 058/122] Improve position of user avatar tooltips --- .../app/[application]/_components/UserAvatars.svelte | 3 ++- .../src/pages/builder/app/[application]/_layout.svelte | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte b/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte index 9e62951d53..7e9682dacc 100644 --- a/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_components/UserAvatars.svelte @@ -5,6 +5,7 @@ export let users = [] export let order = "ltr" export let size = "S" + export let tooltipPosition = TooltipPosition.Top $: uniqueUsers = unique(users, order) $: avatars = getAvatars(uniqueUsers, order) @@ -47,7 +48,7 @@ color="var(--spectrum-global-color-gray-500)" /> {:else} - + {/if} {/each} diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte index 8586a300fc..8e637d6fa2 100644 --- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte @@ -15,6 +15,7 @@ Heading, Modal, notifications, + TooltipPosition, } from "@budibase/bbui" import AppActions from "components/deploy/AppActions.svelte" import { API } from "api" @@ -172,7 +173,11 @@
      - +
      From 39ff7f19605cf6761b8c1200f54d0e18f0133650 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 7 Jul 2023 15:25:58 +0000 Subject: [PATCH 059/122] Bump version to 2.8.3-alpha.0 --- lerna.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 0e0b1ed8b0..a8392a8b94 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.2", + "version": "2.8.3-alpha.0", "npmClient": "yarn", "packages": [ "packages/*" @@ -19,4 +19,4 @@ "loadEnvFiles": false } } -} +} \ No newline at end of file From f176d9d9fa6dd71340868f1e865a1c28a813682f Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 7 Jul 2023 15:38:41 +0000 Subject: [PATCH 060/122] Bump version to 2.8.3-alpha.1 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index a8392a8b94..141b8203ca 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.3-alpha.0", + "version": "2.8.3-alpha.1", "npmClient": "yarn", "packages": [ "packages/*" From db501fb10a21abf1bbbdaa21ba26197e67580286 Mon Sep 17 00:00:00 2001 From: Dean Date: Mon, 10 Jul 2023 09:30:15 +0100 Subject: [PATCH 061/122] Enabled collaboration behaviour in the automation section --- .../builderStore/store/automation/index.js | 36 +++++++++++++++++++ .../builder/src/builderStore/websocket.js | 12 ++++++- .../AutomationPanel/AutomationList.svelte | 9 +++-- .../AutomationPanel/AutomationPanel.svelte | 2 +- .../builder/app/[application]/_layout.svelte | 2 +- .../[application]/automation/_layout.svelte | 4 +++ .../server/src/api/controllers/automation.ts | 4 +++ packages/server/src/websockets/builder.ts | 15 ++++++++ packages/shared-core/src/constants.ts | 1 + 9 files changed, 79 insertions(+), 6 deletions(-) diff --git a/packages/builder/src/builderStore/store/automation/index.js b/packages/builder/src/builderStore/store/automation/index.js index 9e5516c512..9f29f61803 100644 --- a/packages/builder/src/builderStore/store/automation/index.js +++ b/packages/builder/src/builderStore/store/automation/index.js @@ -3,6 +3,7 @@ import { API } from "api" import { cloneDeep } from "lodash/fp" import { generate } from "shortid" import { selectedAutomation } from "builderStore" +import { automationStore } from "builderStore" const initialAutomationState = { automations: [], @@ -248,4 +249,39 @@ const automationActions = store => ({ } await store.actions.save(newAutomation) }, + replace: async (automationId, automation) => { + if (!automationId) { + return + } + if (!automation) { + store.update(state => { + // Remove the automation + state.automations = state.automations.filter( + x => x._id !== automationId + ) + // Select a new automation if required + if (automationId === state.selectedAutomationId) { + store.actions.select(state.automations[0]?._id) + } + return state + }) + } else { + const index = get(store).automations.findIndex( + x => x._id === automation._id + ) + if (index === -1) { + // Automation addition + store.update(state => ({ + ...state, + automations: [...state.automations, automation], + })) + } else { + // Automation update + store.update(state => { + state.automations[index] = automation + return state + }) + } + } + }, }) diff --git a/packages/builder/src/builderStore/websocket.js b/packages/builder/src/builderStore/websocket.js index 87195bed25..6121831c38 100644 --- a/packages/builder/src/builderStore/websocket.js +++ b/packages/builder/src/builderStore/websocket.js @@ -1,5 +1,10 @@ import { createWebsocket } from "@budibase/frontend-core" -import { userStore, store, deploymentStore } from "builderStore" +import { + userStore, + store, + deploymentStore, + automationStore, +} from "builderStore" import { datasources, tables } from "stores/backend" import { get } from "svelte/store" import { auth } from "stores/portal" @@ -67,5 +72,10 @@ export const createBuilderWebsocket = appId => { } ) + // Automations + socket.onOther(BuilderSocketEvent.AutomationChange, ({ id, automation }) => { + automationStore.actions.replace(id, automation) + }) + return socket } diff --git a/packages/builder/src/components/automation/AutomationPanel/AutomationList.svelte b/packages/builder/src/components/automation/AutomationPanel/AutomationList.svelte index 80d65a5cb6..9620dfe86c 100644 --- a/packages/builder/src/components/automation/AutomationPanel/AutomationList.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/AutomationList.svelte @@ -1,6 +1,10 @@
      - {#each $automationStore.automations.sort(aut => aut.name) as automation, idx} + {#each $automationStore.automations.sort(aut => aut.name) as automation} Date: Mon, 10 Jul 2023 11:03:10 +0200 Subject: [PATCH 063/122] Update yarn.lock --- yarn.lock | 2306 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 2091 insertions(+), 215 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8254f42481..afd2421835 100644 --- a/yarn.lock +++ b/yarn.lock @@ -177,7 +177,7 @@ dependencies: tslib "^2.2.0" -"@azure/core-util@^1.0.0", "@azure/core-util@^1.1.1", "@azure/core-util@^1.3.0": +"@azure/core-util@^1.0.0", "@azure/core-util@^1.3.0": version "1.3.2" resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.3.2.tgz#3f8cfda1e87fac0ce84f8c1a42fcd6d2a986632d" integrity sha512-2bECOUh88RvL1pMZTcc6OzfobBeWDBf5oBbhjIhT1MV9otMVWCzpOJkkiKtrnO88y5GGBelgY8At73KGAdbkeQ== @@ -185,6 +185,14 @@ "@azure/abort-controller" "^1.0.0" tslib "^2.2.0" +"@azure/core-util@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.2.0.tgz#3499deba1fc36dda6f1912b791809b6f15d4a392" + integrity sha512-ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng== + dependencies: + "@azure/abort-controller" "^1.0.0" + tslib "^2.2.0" + "@azure/identity@^2.0.4": version "2.1.0" resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-2.1.0.tgz#89f0bfc1d1264dfd3d0cb19837c33a9c6706d548" @@ -278,14 +286,45 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/code-frame@^7.10.4", "@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/code-frame@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/code-frame@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: "@babel/highlight" "^7.22.5" -"@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5": +"@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" + integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== + +"@babel/compat-data@^7.21.5": + version "7.21.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" + integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== + +"@babel/compat-data@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== @@ -311,7 +350,49 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.14", "@babel/core@^7.12.3", "@babel/core@^7.15.0", "@babel/core@^7.22.5", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.14", "@babel/core@^7.12.3", "@babel/core@^7.7.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" + integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.0" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.0" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.0" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/core@^7.15.0": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" + integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helpers" "^7.21.5" + "@babel/parser" "^7.21.8" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/core@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89" integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg== @@ -350,7 +431,27 @@ "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" -"@babel/generator@^7.17.3", "@babel/generator@^7.22.5", "@babel/generator@^7.7.2": +"@babel/generator@^7.17.3", "@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2": + version "7.21.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" + integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== + dependencies: + "@babel/types" "^7.21.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" + integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== + dependencies: + "@babel/types" "^7.21.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== @@ -360,13 +461,28 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: "@babel/types" "^7.22.5" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" @@ -374,7 +490,29 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.5": +"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" + integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02" integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw== @@ -385,7 +523,21 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9" + integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-member-expression-to-functions" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== @@ -400,7 +552,15 @@ "@babel/helper-split-export-declaration" "^7.22.5" semver "^6.3.0" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb" + integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" integrity sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A== @@ -433,11 +593,36 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.5": +"@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-environment-visitor@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" + integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== + +"@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + "@babel/helper-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" @@ -446,6 +631,13 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@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-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -453,6 +645,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" + integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q== + dependencies: + "@babel/types" "^7.21.0" + "@babel/helper-member-expression-to-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" @@ -460,14 +659,56 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.21.4", "@babel/helper-module-imports@^7.22.5": +"@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-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-imports@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.22.5": +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.0", "@babel/helper-module-transforms@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" + +"@babel/helper-module-transforms@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" + integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== + dependencies: + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helper-module-transforms@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== @@ -481,6 +722,13 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -488,12 +736,32 @@ dependencies: "@babel/types" "^7.22.5" -"@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.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@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.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-plugin-utils@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" + integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== + +"@babel/helper-plugin-utils@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-remap-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== @@ -503,7 +771,19 @@ "@babel/helper-wrap-function" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.22.5": +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/helper-replace-supers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== @@ -515,6 +795,20 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -522,35 +816,84 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.18.6", "@babel/helper-split-export-declaration@^7.22.5": +"@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-split-export-declaration@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== dependencies: "@babel/types" "^7.22.5" +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.22.5": +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-identifier@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== -"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.21.0", "@babel/helper-validator-option@^7.22.5": +"@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== + +"@babel/helper-validator-option@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-wrap-function@^7.18.9": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + "@babel/helper-wrap-function@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" @@ -561,7 +904,25 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helpers@^7.17.2", "@babel/helpers@^7.22.5": +"@babel/helpers@^7.17.2", "@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" + +"@babel/helpers@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" + integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.5" + "@babel/types" "^7.21.5" + +"@babel/helpers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820" integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q== @@ -570,7 +931,34 @@ "@babel/traverse" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.5": +"@babel/highlight@^7.10.4": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.16.7": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@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/highlight@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== @@ -584,19 +972,55 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.17.3", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5": +"@babel/parser@^7.0.0": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" + integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.17.3", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" + integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== + +"@babel/parser@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" + integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== + +"@babel/parser@^7.21.5", "@babel/parser@^7.21.8": + version "7.21.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" + integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== + +"@babel/parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== @@ -605,7 +1029,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.22.5" -"@babel/plugin-proposal-async-generator-functions@^7.16.8": +"@babel/plugin-proposal-async-generator-functions@^7.16.8", "@babel/plugin-proposal-async-generator-functions@^7.20.1", "@babel/plugin-proposal-async-generator-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== @@ -615,7 +1039,7 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7": +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -623,7 +1047,7 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.16.7": +"@babel/plugin-proposal-class-static-block@^7.16.7", "@babel/plugin-proposal-class-static-block@^7.18.6", "@babel/plugin-proposal-class-static-block@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== @@ -643,7 +1067,7 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/plugin-syntax-decorators" "^7.21.0" -"@babel/plugin-proposal-dynamic-import@^7.16.7": +"@babel/plugin-proposal-dynamic-import@^7.16.7", "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== @@ -651,7 +1075,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.7": +"@babel/plugin-proposal-export-namespace-from@^7.16.7", "@babel/plugin-proposal-export-namespace-from@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== @@ -659,7 +1083,7 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.7": +"@babel/plugin-proposal-json-strings@^7.16.7", "@babel/plugin-proposal-json-strings@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== @@ -667,7 +1091,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7", "@babel/plugin-proposal-logical-assignment-operators@^7.18.9", "@babel/plugin-proposal-logical-assignment-operators@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== @@ -675,7 +1099,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -683,7 +1107,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.7": +"@babel/plugin-proposal-numeric-separator@^7.16.7", "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -691,7 +1115,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.16.7": +"@babel/plugin-proposal-object-rest-spread@^7.16.7", "@babel/plugin-proposal-object-rest-spread@^7.20.2", "@babel/plugin-proposal-object-rest-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -702,7 +1126,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": +"@babel/plugin-proposal-optional-catch-binding@^7.16.7", "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== @@ -710,7 +1134,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.7": +"@babel/plugin-proposal-optional-chaining@^7.16.7", "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -719,7 +1143,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.11": +"@babel/plugin-proposal-private-methods@^7.16.11", "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== @@ -732,7 +1156,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-private-property-in-object@^7.16.7": +"@babel/plugin-proposal-private-property-in-object@^7.16.7", "@babel/plugin-proposal-private-property-in-object@^7.18.6", "@babel/plugin-proposal-private-property-in-object@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== @@ -742,7 +1166,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -799,6 +1223,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-import-assertions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" @@ -890,13 +1321,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.3.3", "@babel/plugin-syntax-typescript@^7.7.2": +"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.3.3": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -905,7 +1343,21 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.16.7", "@babel/plugin-transform-arrow-functions@^7.22.5": +"@babel/plugin-transform-arrow-functions@^7.16.7", "@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-arrow-functions@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" + integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-arrow-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== @@ -922,7 +1374,16 @@ "@babel/helper-remap-async-to-generator" "^7.22.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.16.8", "@babel/plugin-transform-async-to-generator@^7.22.5": +"@babel/plugin-transform-async-to-generator@^7.16.8", "@babel/plugin-transform-async-to-generator@^7.18.6", "@babel/plugin-transform-async-to-generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + +"@babel/plugin-transform-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== @@ -931,14 +1392,28 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.16.7", "@babel/plugin-transform-block-scoped-functions@^7.22.5": +"@babel/plugin-transform-block-scoped-functions@^7.16.7", "@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.16.7", "@babel/plugin-transform-block-scoping@^7.22.5": +"@babel/plugin-transform-block-scoping@^7.16.7", "@babel/plugin-transform-block-scoping@^7.20.2", "@babel/plugin-transform-block-scoping@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" + integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-block-scoping@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== @@ -962,7 +1437,22 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.16.7", "@babel/plugin-transform-classes@^7.22.5": +"@babel/plugin-transform-classes@^7.16.7", "@babel/plugin-transform-classes@^7.20.2", "@babel/plugin-transform-classes@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" + integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-classes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" integrity sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ== @@ -977,7 +1467,23 @@ "@babel/helper-split-export-declaration" "^7.22.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.7", "@babel/plugin-transform-computed-properties@^7.22.5": +"@babel/plugin-transform-computed-properties@^7.16.7", "@babel/plugin-transform-computed-properties@^7.18.9": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" + integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-computed-properties@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" + integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/template" "^7.20.7" + +"@babel/plugin-transform-computed-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== @@ -985,14 +1491,36 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.16.7", "@babel/plugin-transform-destructuring@^7.22.5": +"@babel/plugin-transform-destructuring@^7.16.7", "@babel/plugin-transform-destructuring@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" + integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-destructuring@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" + integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-destructuring@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -1000,7 +1528,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.16.7", "@babel/plugin-transform-duplicate-keys@^7.22.5": +"@babel/plugin-transform-duplicate-keys@^7.16.7", "@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-duplicate-keys@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== @@ -1015,7 +1550,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.16.7", "@babel/plugin-transform-exponentiation-operator@^7.22.5": +"@babel/plugin-transform-exponentiation-operator@^7.16.7", "@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-exponentiation-operator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== @@ -1031,14 +1574,37 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.16.7", "@babel/plugin-transform-for-of@^7.22.5": +"@babel/plugin-transform-for-of@^7.16.7", "@babel/plugin-transform-for-of@^7.18.8": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" + integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-for-of@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" + integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-for-of@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.16.7", "@babel/plugin-transform-function-name@^7.22.5": +"@babel/plugin-transform-function-name@^7.16.7", "@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== @@ -1055,7 +1621,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.16.7", "@babel/plugin-transform-literals@^7.22.5": +"@babel/plugin-transform-literals@^7.16.7", "@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== @@ -1070,14 +1643,29 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.16.7", "@babel/plugin-transform-member-expression-literals@^7.22.5": +"@babel/plugin-transform-member-expression-literals@^7.16.7", "@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-member-expression-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.16.7", "@babel/plugin-transform-modules-amd@^7.22.5": +"@babel/plugin-transform-modules-amd@^7.16.7", "@babel/plugin-transform-modules-amd@^7.19.6", "@babel/plugin-transform-modules-amd@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== + dependencies: + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-modules-amd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== @@ -1085,7 +1673,25 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.16.8", "@babel/plugin-transform-modules-commonjs@^7.21.5", "@babel/plugin-transform-modules-commonjs@^7.22.5": +"@babel/plugin-transform-modules-commonjs@^7.16.8", "@babel/plugin-transform-modules-commonjs@^7.19.6": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" + integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA== + dependencies: + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" + +"@babel/plugin-transform-modules-commonjs@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" + integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== + dependencies: + "@babel/helper-module-transforms" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-simple-access" "^7.21.5" + +"@babel/plugin-transform-modules-commonjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== @@ -1094,7 +1700,17 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.16.7", "@babel/plugin-transform-modules-systemjs@^7.22.5": +"@babel/plugin-transform-modules-systemjs@^7.16.7", "@babel/plugin-transform-modules-systemjs@^7.19.6", "@babel/plugin-transform-modules-systemjs@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-systemjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== @@ -1104,7 +1720,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" -"@babel/plugin-transform-modules-umd@^7.16.7", "@babel/plugin-transform-modules-umd@^7.22.5": +"@babel/plugin-transform-modules-umd@^7.16.7", "@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-umd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== @@ -1112,7 +1736,15 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8", "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8", "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== @@ -1120,7 +1752,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.16.7", "@babel/plugin-transform-new-target@^7.22.5": +"@babel/plugin-transform-new-target@^7.16.7", "@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-new-target@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== @@ -1154,7 +1793,15 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.5" -"@babel/plugin-transform-object-super@^7.16.7", "@babel/plugin-transform-object-super@^7.22.5": +"@babel/plugin-transform-object-super@^7.16.7", "@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== @@ -1179,7 +1826,21 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.16.7", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.5": +"@babel/plugin-transform-parameters@^7.16.7", "@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" + integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-parameters@^7.21.3": + version "7.21.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" + integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-parameters@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== @@ -1204,14 +1865,37 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.16.7", "@babel/plugin-transform-property-literals@^7.22.5": +"@babel/plugin-transform-property-literals@^7.16.7", "@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-property-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.16.7", "@babel/plugin-transform-regenerator@^7.22.5": +"@babel/plugin-transform-regenerator@^7.16.7", "@babel/plugin-transform-regenerator@^7.18.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-regenerator@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" + integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + regenerator-transform "^0.15.1" + +"@babel/plugin-transform-regenerator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== @@ -1219,14 +1903,33 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.1" -"@babel/plugin-transform-reserved-words@^7.16.7", "@babel/plugin-transform-reserved-words@^7.22.5": +"@babel/plugin-transform-reserved-words@^7.16.7", "@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@^7.13.10", "@babel/plugin-transform-runtime@^7.15.0": +"@babel/plugin-transform-runtime@^7.13.10": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8" + integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + semver "^6.3.0" + +"@babel/plugin-transform-runtime@^7.15.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" integrity sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA== @@ -1238,14 +1941,29 @@ babel-plugin-polyfill-regenerator "^0.4.1" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.16.7", "@babel/plugin-transform-shorthand-properties@^7.22.5": +"@babel/plugin-transform-shorthand-properties@^7.16.7", "@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.16.7", "@babel/plugin-transform-spread@^7.22.5": +"@babel/plugin-transform-spread@^7.16.7", "@babel/plugin-transform-spread@^7.19.0", "@babel/plugin-transform-spread@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== @@ -1253,21 +1971,42 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.16.7", "@babel/plugin-transform-sticky-regex@^7.22.5": +"@babel/plugin-transform-sticky-regex@^7.16.7", "@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-sticky-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.16.7", "@babel/plugin-transform-template-literals@^7.22.5": +"@babel/plugin-transform-template-literals@^7.16.7", "@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-template-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.16.7", "@babel/plugin-transform-typeof-symbol@^7.22.5": +"@babel/plugin-transform-typeof-symbol@^7.16.7", "@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== @@ -1284,7 +2023,21 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" -"@babel/plugin-transform-unicode-escapes@^7.16.7", "@babel/plugin-transform-unicode-escapes@^7.22.5": +"@babel/plugin-transform-unicode-escapes@^7.16.7", "@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-escapes@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" + integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== + dependencies: + "@babel/helper-plugin-utils" "^7.21.5" + +"@babel/plugin-transform-unicode-escapes@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== @@ -1299,7 +2052,15 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.16.7", "@babel/plugin-transform-unicode-regex@^7.22.5": +"@babel/plugin-transform-unicode-regex@^7.16.7", "@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-unicode-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== @@ -1395,7 +2156,170 @@ core-js-compat "^3.20.2" semver "^6.3.0" -"@babel/preset-env@^7.13.12", "@babel/preset-env@^7.15.0", "@babel/preset-env@^7.22.5": +"@babel/preset-env@^7.13.12": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" + integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== + dependencies: + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.20.1" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.20.2" + "@babel/plugin-transform-classes" "^7.20.2" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.20.2" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.19.6" + "@babel/plugin-transform-modules-commonjs" "^7.19.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.6" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-env@^7.15.0": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" + integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== + dependencies: + "@babel/compat-data" "^7.21.5" + "@babel/helper-compilation-targets" "^7.21.5" + "@babel/helper-plugin-utils" "^7.21.5" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" + "@babel/plugin-proposal-async-generator-functions" "^7.20.7" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.21.0" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.21.0" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.21.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.21.5" + "@babel/plugin-transform-async-to-generator" "^7.20.7" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.21.0" + "@babel/plugin-transform-classes" "^7.21.0" + "@babel/plugin-transform-computed-properties" "^7.21.5" + "@babel/plugin-transform-destructuring" "^7.21.3" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.21.5" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.20.11" + "@babel/plugin-transform-modules-commonjs" "^7.21.5" + "@babel/plugin-transform-modules-systemjs" "^7.20.11" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.21.3" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.21.5" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.20.7" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.21.5" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.21.5" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-env@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e" integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A== @@ -1508,14 +2432,39 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.10.5", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.10.5", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/runtime@^7.14.8": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.16.7", "@babel/template@^7.22.5", "@babel/template@^7.3.3": +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/template@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== @@ -1524,7 +2473,39 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" + integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.1" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.2" + "@babel/types" "^7.21.2" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.16.0", "@babel/traverse@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" + integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.5" + "@babel/helper-environment-visitor" "^7.21.5" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.21.5" + "@babel/types" "^7.21.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== @@ -1548,7 +2529,33 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.2", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.2", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" + integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.16.7", "@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.21.4", "@babel/types@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" + integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== @@ -1965,6 +2972,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== +"@esbuild/android-arm64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz#164b054d58551f8856285f386e1a8f45d9ba3a31" + integrity sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg== + "@esbuild/android-arm64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz#4aa8d8afcffb4458736ca9b32baa97d7cb5861ea" @@ -1980,6 +2992,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== +"@esbuild/android-arm@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.17.tgz#1b3b5a702a69b88deef342a7a80df4c894e4f065" + integrity sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg== + "@esbuild/android-arm@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.18.tgz#74a7e95af4ee212ebc9db9baa87c06a594f2a427" @@ -1990,6 +3007,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== +"@esbuild/android-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.17.tgz#6781527e3c4ea4de532b149d18a2167f06783e7f" + integrity sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA== + "@esbuild/android-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.18.tgz#1dcd13f201997c9fe0b204189d3a0da4eb4eb9b6" @@ -2000,6 +3022,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== +"@esbuild/darwin-arm64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz#c5961ef4d3c1cc80dafe905cc145b5a71d2ac196" + integrity sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ== + "@esbuild/darwin-arm64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz#444f3b961d4da7a89eb9bd35cfa4415141537c2a" @@ -2010,6 +3037,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== +"@esbuild/darwin-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz#b81f3259cc349691f67ae30f7b333a53899b3c20" + integrity sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg== + "@esbuild/darwin-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz#a6da308d0ac8a498c54d62e0b2bfb7119b22d315" @@ -2020,6 +3052,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== +"@esbuild/freebsd-arm64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz#db846ad16cf916fd3acdda79b85ea867cb100e87" + integrity sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA== + "@esbuild/freebsd-arm64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz#b83122bb468889399d0d63475d5aea8d6829c2c2" @@ -2030,6 +3067,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== +"@esbuild/freebsd-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz#4dd99acbaaba00949d509e7c144b1b6ef9e1815b" + integrity sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw== + "@esbuild/freebsd-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz#af59e0e03fcf7f221b34d4c5ab14094862c9c864" @@ -2040,6 +3082,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== +"@esbuild/linux-arm64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz#7f9274140b2bb9f4230dbbfdf5dc2761215e30f6" + integrity sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw== + "@esbuild/linux-arm64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz#8551d72ba540c5bce4bab274a81c14ed01eafdcf" @@ -2050,6 +3097,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== +"@esbuild/linux-arm@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz#5c8e44c2af056bb2147cf9ad13840220bcb8948b" + integrity sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg== + "@esbuild/linux-arm@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz#e09e76e526df4f665d4d2720d28ff87d15cdf639" @@ -2060,6 +3112,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== +"@esbuild/linux-ia32@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz#18a6b3798658be7f46e9873fa0c8d4bec54c9212" + integrity sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q== + "@esbuild/linux-ia32@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz#47878860ce4fe73a36fd8627f5647bcbbef38ba4" @@ -2075,6 +3132,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== +"@esbuild/linux-loong64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz#a8d93514a47f7b4232716c9f02aeb630bae24c40" + integrity sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw== + "@esbuild/linux-loong64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz#3f8fbf5267556fc387d20b2e708ce115de5c967a" @@ -2085,6 +3147,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== +"@esbuild/linux-mips64el@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz#4784efb1c3f0eac8133695fa89253d558149ee1b" + integrity sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A== + "@esbuild/linux-mips64el@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz#9d896d8f3c75f6c226cbeb840127462e37738226" @@ -2095,6 +3162,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== +"@esbuild/linux-ppc64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz#ef6558ec5e5dd9dc16886343e0ccdb0699d70d3c" + integrity sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ== + "@esbuild/linux-ppc64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz#3d9deb60b2d32c9985bdc3e3be090d30b7472783" @@ -2105,6 +3177,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== +"@esbuild/linux-riscv64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz#13a87fdbcb462c46809c9d16bcf79817ecf9ce6f" + integrity sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA== + "@esbuild/linux-riscv64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz#8a943cf13fd24ff7ed58aefb940ef178f93386bc" @@ -2115,6 +3192,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== +"@esbuild/linux-s390x@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz#83cb16d1d3ac0dca803b3f031ba3dc13f1ec7ade" + integrity sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ== + "@esbuild/linux-s390x@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz#66cb01f4a06423e5496facabdce4f7cae7cb80e5" @@ -2125,6 +3207,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== +"@esbuild/linux-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz#7bc400568690b688e20a0c94b2faabdd89ae1a79" + integrity sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg== + "@esbuild/linux-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz#23c26050c6c5d1359c7b774823adc32b3883b6c9" @@ -2135,6 +3222,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== +"@esbuild/netbsd-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz#1b5dcfbc4bfba80e67a11e9148de836af5b58b6c" + integrity sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA== + "@esbuild/netbsd-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz#789a203d3115a52633ff6504f8cbf757f15e703b" @@ -2145,6 +3237,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== +"@esbuild/openbsd-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz#e275098902291149a5dcd012c9ea0796d6b7adff" + integrity sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA== + "@esbuild/openbsd-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz#d7b998a30878f8da40617a10af423f56f12a5e90" @@ -2155,6 +3252,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== +"@esbuild/sunos-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz#10603474866f64986c0370a2d4fe5a2bb7fee4f5" + integrity sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q== + "@esbuild/sunos-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz#ecad0736aa7dae07901ba273db9ef3d3e93df31f" @@ -2165,6 +3267,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== +"@esbuild/win32-arm64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz#521a6d97ee0f96b7c435930353cc4e93078f0b54" + integrity sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q== + "@esbuild/win32-arm64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz#58dfc177da30acf956252d7c8ae9e54e424887c4" @@ -2175,6 +3282,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== +"@esbuild/win32-ia32@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz#56f88462ebe82dad829dc2303175c0e0ccd8e38e" + integrity sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ== + "@esbuild/win32-ia32@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz#340f6163172b5272b5ae60ec12c312485f69232b" @@ -2185,6 +3297,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== +"@esbuild/win32-x64@0.17.17": + version "0.17.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz#2b577b976e6844106715bbe0cdc57cd1528063f9" + integrity sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg== + "@esbuild/win32-x64@0.17.18": version "0.17.18" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz#3a8e57153905308db357fd02f57c180ee3a0a1fa" @@ -2579,6 +3696,13 @@ dependencies: jest-get-type "^28.0.2" +"@jest/expect-utils@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" + integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== + dependencies: + jest-get-type "^29.4.3" + "@jest/expect-utils@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" @@ -2958,6 +4082,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" + integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== + dependencies: + "@jest/schemas" "^29.4.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.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" @@ -3295,12 +4431,12 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": +"@jridgewell/sourcemap-codec@1.4.14", "@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/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -3313,7 +4449,15 @@ "@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.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@jridgewell/trace-mapping@^0.3.15": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== @@ -3528,7 +4672,7 @@ dependencies: which "^3.0.0" -"@npmcli/run-script@6.0.2", "@npmcli/run-script@^6.0.0": +"@npmcli/run-script@6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885" integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA== @@ -3539,6 +4683,17 @@ read-package-json-fast "^3.0.0" which "^3.0.0" +"@npmcli/run-script@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.0.tgz#f89e322c729e26ae29db6cc8cc76559074aac208" + integrity sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/promise-spawn" "^6.0.0" + node-gyp "^9.0.0" + read-package-json-fast "^3.0.0" + which "^3.0.0" + "@nrwl/devkit@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.2.1.tgz#2da4dbe5826b0721cae547635554b6e411a069f6" @@ -3574,12 +4729,19 @@ dependencies: nx "16.2.1" -"@nrwl/tao@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.4.3.tgz#8a72e8c1c903d8d7e1d9a298c28f03a000a925d8" - integrity sha512-h+/UdXtdVuH9K2+Rx1HK5AHXGtgXNIqdLIH1KRL+74fiQ+JNO2Xuz9wqiD+rZ5tmtL/4hZpePCMkTz2FusKvbA== +"@nrwl/tao@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.3.2.tgz#eefc1974342afbbe48e4e5351d6707ad2f9fb179" + integrity sha512-2Kg7dtv6JcQagCZPSq+okceI81NqmXGGgbKWqS7sOfdmp1otxS9uiUFNXw+Pdtnw38mdRviMtSOXScntu4sUKg== dependencies: - nx "16.4.3" + nx "16.3.2" + +"@nrwl/tao@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.5.0.tgz#dc855c6490e640927f2188fbb3c496aec0112b6c" + integrity sha512-lY/XV2n7iulHY77Uakt3Epa9m/NG7oTSN196baLjFykxUvLJI47PMX5qytugHkS8JLdcAB5p0qGsrQSHoi6jvg== + dependencies: + nx "16.5.0" "@nrwl/workspace@16.2.1": version "16.2.1" @@ -3645,95 +4807,145 @@ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.2.1.tgz#8a144a6fd38a2a7179c583c1fc344b2a0de27996" integrity sha512-xK/dL5T2R8zrcD8/13PeaYH/LBcYeaELIZkXGdGbtQ8WeFHjPJLBfuWo/7Se7KSWIXLIJEeYrVZwyxuei1dOTA== -"@nx/nx-darwin-arm64@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.4.3.tgz#08e63921c4e4dfc9eb9da612140c62ca8c190059" - integrity sha512-iVr3KTHXqGWx34mLxKjdDT1m6px9NME7zqSoKZW9DQuxDt3G7NN4PkK6+n2YqVNNSOmYml/Oo5iVtQ2TUCJDFA== +"@nx/nx-darwin-arm64@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.3.2.tgz#83b6e78b27d2d7da8f7626560f52070c8735d28a" + integrity sha512-YfYVNfsJBzBcBnJUU4AcA6A4QMkgnVlETfp4KGL36Otq542mRY1ISGHdox63ocI5AKh5gay5AaGcR4wR9PU9Vg== + +"@nx/nx-darwin-arm64@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.5.0.tgz#c9631c6c62148b34d13e74c61e2270b4fd515109" + integrity sha512-0+5FH3ot5o0lpL0OKD4fO2n0a6LqLxr0LwU2VYxaAR1GLzOeVE5W3jBWY9ztOE+ktm8mGaZsdIIOQ77Iz/xwsQ== "@nx/nx-darwin-x64@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.2.1.tgz#f878b9257bb5ed939c5095b72f1f37fe01bab950" integrity sha512-J1ZBqy8FtIhvZopcc96JWZY2InZClQ+XHWHnAmX8S1f79hcLUiatpu90FZhvfXmfOfLlpkKsa8aje/kjpnnWhA== -"@nx/nx-darwin-x64@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.4.3.tgz#e1e591f38bd103cf110487bd8c35daf17f8636c7" - integrity sha512-Km1N7Rek4VZW9rFMpV/gwmW0YHCoeV/5/tbYOYjSPJY6n2GB/vVoqE1DTf69muIk32436aK+qYRpd98bXC8GKg== +"@nx/nx-darwin-x64@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.3.2.tgz#0ae2a64356542c5fb73ca8038ce10ec4512e7fcb" + integrity sha512-bJtpozz0zSRVRrcQ76GrlT3TWEGTymLYWrVG51bH5KZ46t6/a4EQBI3uL3vubMmOZ0jR4ywybOcPBBhxmBJ68w== -"@nx/nx-freebsd-x64@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.4.3.tgz#dc7fd8dbb87d7eb613b3f7302b0e3cba233277fd" - integrity sha512-i6gc7oiDekYY2DS20COoeIrUqSQt0A3V+xUbrMGTInbHMux8QlfY5LGPRHGzqRlvnmUbrpgN0TdwBB9KOgaWmw== +"@nx/nx-darwin-x64@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.5.0.tgz#d9efa60329856f13b96fea55488ffd1f105ed988" + integrity sha512-yziX2oXUSyOPOcRLmFMRsNs0eBVla5IGjAKqpY4OXAPBuyrOfgsW5ztj0PQM34gvqipXtTlN04Xt/U0jzQLudA== + +"@nx/nx-freebsd-x64@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.3.2.tgz#202adf4d6070f47ed46450f006ecd50851147c74" + integrity sha512-ZvufI0bWqT67nLbBo6ejrIGxypdoedRQTP/tudWbs/4isvxLe1uVku1BfKCTQUsJG367SqNOU1H5kzI/MRr3ow== + +"@nx/nx-freebsd-x64@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.5.0.tgz#73c5c2f50302087a7b98855c9a8d3564aed5c75f" + integrity sha512-hwIRRMyWrT2R4ozp6yXRNR1fwcclBlkkIQ51/1IzINPQxynMguuOvNZaJFD4OuZIDmI526++GmogPZc0aMzwkg== "@nx/nx-linux-arm-gnueabihf@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.2.1.tgz#a0f7d2c1f90d78bf30c7beae7c5481a71fb2652a" integrity sha512-rnujPmWlnkEvzkWARuW85cizVx6uGwQ/gA84tK3cHZQf9ly172WbDtsMtYRS9/CjvysMqDV0zBd7o/YhwpXNZg== -"@nx/nx-linux-arm-gnueabihf@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.4.3.tgz#5a2aa53297eff9b3d0cef5b0280d67400e61e80d" - integrity sha512-hozcDrzbv3X0oWYYbJfSybVmKviko78wjjxvdwYS2H9eqNN6sNBZ5+LL+duUazCeGGHj1fRipvb9E3rJxiKWEw== +"@nx/nx-linux-arm-gnueabihf@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.3.2.tgz#62314a82566e3647866b9dd4167a2d0e1397f001" + integrity sha512-IQL4kxdiZLvifar7+SIum3glRuVsxtE0dL8RvteSDXrxDQnaTUrjILC+VGhalRmk7ngBbGKNrhWOeeL7390CzQ== + +"@nx/nx-linux-arm-gnueabihf@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.5.0.tgz#4e1cb9d8294ef6cc5d380d6e23421ba1c16f18c9" + integrity sha512-BEWLpBhJ2AcZNDsiExLDcM9kmQ4+E+0YUcOsrAeX1s5D4HXXVtHMdTmOucKs4NNFqMuJ2Cf3ZzqmAIkRug0beA== "@nx/nx-linux-arm64-gnu@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.2.1.tgz#30dead7a96437c7cbb041a45e1c0e7292fb2151a" integrity sha512-ZcuQN8eaxEI+93ut6UrDrZMPsk61LGlS6yaWPgrv3blKMfcU2+DYBDQ3ois7o5t0bnVad5QYSNhIvnMF2iU+hQ== -"@nx/nx-linux-arm64-gnu@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.4.3.tgz#2129426f8258e193f9997adafcda570e23d94435" - integrity sha512-LrlSKCZtFl8TiIFuLjkSNN/yzQ8phZ6+0jgsuumrIE8t02y+WLcZ4dSGlCo4nwVX/MDCtTbc9LPI+rIoBvO/pQ== +"@nx/nx-linux-arm64-gnu@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.3.2.tgz#02826400aa55b8f44bac83332dd29647d0e95001" + integrity sha512-f6AWgPVu3mfUEoOBa0rY2/7QY0Or9eR0KtLFpcPh7RUpxPw2EXzIbjD/0RGipdpspSrgiMKbZpsUjo6mXBFsQA== + +"@nx/nx-linux-arm64-gnu@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.5.0.tgz#763d62a5a56b39bbdf75d39afce3369b6c2fd276" + integrity sha512-EWmTbDLbBIjM/OJ594hoFKsEka/b8jM6NehL37mlIXL6fixUEA8LlO0MfUQ+kIPg79nWIujzulkIEhYFDWM1WA== "@nx/nx-linux-arm64-musl@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.2.1.tgz#31219ecf98f9fe78b5fc06c9e0102d99e335bc5b" integrity sha512-mMOvkYyBLU4j+mSHobtrj/pIDYXFGIX3Q9FMWxZ5Xz15m0DsbypZ/8v6NWpJaBY4VX6rJhCc+D/pZH+QBT8+/g== -"@nx/nx-linux-arm64-musl@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.4.3.tgz#0285f71f94b5a2eb40f15033457f937e0362770d" - integrity sha512-3ahS0k330T339FdVBQhr3EGrghAaezqdVpbOwG2pyiZRwvLVgnDkPF/d4EkGd3ZAsOLazcPkPH/fKxPPf8HP2g== +"@nx/nx-linux-arm64-musl@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.3.2.tgz#a0a81520e0904aa026a7ab0a8a3bf3facec9f14c" + integrity sha512-AvrWcYz7021E3b5P9/0i26p60XMZfw86Epks51L6AhlflarlOH4AcEChc7APMtb1ELAIbDWx2S6oIDRbQ7rtVA== + +"@nx/nx-linux-arm64-musl@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.5.0.tgz#a05af4368c9cd538186ff1ea0503c87bbf00e092" + integrity sha512-np/7+HEtEEvtu4zo3GBBPtTG8IP++vvH3o8VXpAB9eD4Jctz3rYzbfMc7GtLZkz8LCmCsjzqnrNtmcmoaRbomQ== "@nx/nx-linux-x64-gnu@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.2.1.tgz#fb89cbbdf852e27093e0296ff7414ccccdf3591a" integrity sha512-Kyn4dxFTj2PCRv+39tKU8BzDRE6/ru5v435uvodx03GS650F7+OMr4DN57jG4MQWhf//OUX8zPkvbKhsmxjndA== -"@nx/nx-linux-x64-gnu@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.4.3.tgz#defea39bbd5f494c28369bd403f909d5ec905ac0" - integrity sha512-Nbo+FLBYZRhJUB367Eg9f0mH7Q+X67H+QAF+wU2oK3StSGQNQbLnr7Q0yfmX912WdYDe7gWhEpqWTLZ7rv65mg== +"@nx/nx-linux-x64-gnu@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.3.2.tgz#e79b5c142ec8d9bfb458ea5803bc4b62abbcf296" + integrity sha512-K2pWGAcbCNm6b7UZI9cc8z4Rb540QcuepBXD7akjPjWerzXriT6VCn4i9mVKsCg2mwSfknTJJVJ1PZwJSmTl/Q== + +"@nx/nx-linux-x64-gnu@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.5.0.tgz#bc6fb6da02755ce4f48bd25418fe227751f6d938" + integrity sha512-iLOwgAaa1BHPLFhkBVi7GLAf6LfdYuv/R2rxlqq4d6fhv4Eq91Wo08LsqbFds+LpMN0CA+W/QMc3w9IIS/MPrA== "@nx/nx-linux-x64-musl@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.2.1.tgz#82b1b5ba04ef6e4d49527841239bf9e0fb1456e3" integrity sha512-q8iFxLosSLiWkRWsbrioXV/qMG8TgsbqcM0VGz2FFLNMJ9DXvav/E/+8YbgEeHOjvA1MDeRaspIpDF7OMgJYGw== -"@nx/nx-linux-x64-musl@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.4.3.tgz#c78db85f3234d2b899c7acaa7b5e2ef2c8591eb6" - integrity sha512-RG31ewe3GRmwSMBgWF0yeJ1zu8s42xywpwK8swgGHpUp+Z6JN8dkUqi7UfHGbjeaOIDg4w45/7OJyrE7dlqHCg== +"@nx/nx-linux-x64-musl@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.3.2.tgz#900aee8f171638b9fb44378e2ac0548cb4aa99a7" + integrity sha512-sY1QDuQlqyYiRPJZanrtV07tU0DOXiCrWb0pDsGiO0qHuUSmW5Vw17GWEY4z3rt0/5U8fJ+/9WQrneviOmsOKg== + +"@nx/nx-linux-x64-musl@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.5.0.tgz#88b7016056e8547c6ec4f89b932fafe3551352ca" + integrity sha512-UE3tpgli7a08AsRaw/o1BUXnFOxICGzcYj1aglHBh6urVeUHK0aNt11djZcQ6ETgPgcjoGdwr7RqpANGnJQH9g== "@nx/nx-win32-arm64-msvc@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.2.1.tgz#8a19a0c2db565f6d07a2d0b4a8b8fc6c8c86fadd" integrity sha512-PpGiYzrMivDY1i10Zwf5Hmnv6oAQ8ACf6ehDgyQ3tByMMXHgyUZJLykfPaoWjoLh0s8wOvMV74WZO+K1LcIxTA== -"@nx/nx-win32-arm64-msvc@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.4.3.tgz#d131273e8267eb98a7640f79a94049b5f12d572e" - integrity sha512-5HXY8S0vGUculndAhWqBrqkrQxY6M3v3Ac/3rr8O238JkdkhRiHilnGbwS2MIQpU7dou3wROO6wKT7+TyFv+cA== +"@nx/nx-win32-arm64-msvc@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.3.2.tgz#88db772b3535648e147b1a0206b1a1fe875fa9a5" + integrity sha512-wBfohT2hjrLKn9WFHvG0MFVk7uYhgYNiptnTLdTouziHgFyZ08vyl7XYBq55BwHPMQ5iswVoEfjn/5ZBfCPscg== + +"@nx/nx-win32-arm64-msvc@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.5.0.tgz#e4f80fa4b89d73c8d9e072cdc898563c1099f609" + integrity sha512-u9cNKP8zrNIdeyaK5LHX+Zh+rkadE8tSE+vNulphCLhGuXJRpjaVY1juq9UQEo41NJQE6DuWWk2fnj4gALWugQ== "@nx/nx-win32-x64-msvc@16.2.1": version "16.2.1" resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.2.1.tgz#848b4c5b118f6a6f92f59c1643297e938c439242" integrity sha512-m5oHCaSKdyydM1n1W9V0m2oxBL8PiF54dZB0+PlKB2fhf1zxiyq8i1hL2hXbKA90IOYcUt5/b7761/BzN5njAw== -"@nx/nx-win32-x64-msvc@16.4.3": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.4.3.tgz#cc8d87dbada3965b3156440277951b742b6c0de3" - integrity sha512-9vdA5t5xuWCQ9JFJZFjzYGz9w5wtZ7zfKcx2HdBvg2nDWUzK5Z3khwsakTSsc7Ff7Hnd0i0l5T3Ls6Hk42Haww== +"@nx/nx-win32-x64-msvc@16.3.2": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.3.2.tgz#2195faaf1fc465c7a89bfdd62323fdd2a5d91f15" + integrity sha512-QC0sWrfQm0/WdvvM//7UAgm+otbak6bznZ0zawTeqmLBh1hLjNeweyzSVKQEtZtlzDMKpzCVuuwkJq+VKBLvmw== + +"@nx/nx-win32-x64-msvc@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.5.0.tgz#75f1822d3e3cd8a4eda4813d814dc2d17c3089d4" + integrity sha512-E9109SAYNZXqCeWikZXyxNd7SZnCbdKGvqtQktS7dedHGwOmgIWfJ6bsvA7s2zHr09THQKJ4+7U1tDkWVNR9cg== "@nx/workspace@16.2.1": version "16.2.1" @@ -3799,6 +5011,11 @@ "@octokit/types" "^9.0.0" universal-user-agent "^6.0.0" +"@octokit/openapi-types@^16.0.0": + version "16.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-16.0.0.tgz#d92838a6cd9fb4639ca875ddb3437f1045cc625e" + integrity sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA== + "@octokit/openapi-types@^18.0.0": version "18.0.0" resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" @@ -3872,7 +5089,14 @@ dependencies: "@octokit/openapi-types" "^18.0.0" -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": +"@octokit/types@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.0.0.tgz#6050db04ddf4188ec92d60e4da1a2ce0633ff635" + integrity sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw== + dependencies: + "@octokit/openapi-types" "^16.0.0" + +"@octokit/types@^9.2.3": version "9.3.2" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== @@ -5354,10 +6578,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*", "@types/jest@29.5.0", "@types/jest@^29.4.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" - integrity sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg== +"@types/jest@*": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206" + integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -5370,6 +6594,14 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" +"@types/jest@29.5.0", "@types/jest@^29.4.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" + integrity sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + "@types/json-schema@*", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -5518,10 +6750,10 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.13.4", "@types/node@>=13.7.0": - version "18.14.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" - integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== +"@types/node@*": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== "@types/node@14.18.20": version "14.18.20" @@ -5533,6 +6765,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708" integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== +"@types/node@>=10.0.0", "@types/node@>=12.12.47", "@types/node@>=13.13.4", "@types/node@>=13.7.0": + version "18.14.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.5.tgz#4a13a6445862159303fc38586598a9396fc408b3" + integrity sha512-CRT4tMK/DHYhw1fcCEBwME9CSaZNclxfzVMe7GsO6ULSwsttbj70wSiX6rZdIjGblu93sTJxLdhNIT85KKI7Qw== + "@types/node@>=4.2.0 < 13": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" @@ -6230,7 +7467,7 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@yarnpkg/parsers@3.0.0-rc.46", "@yarnpkg/parsers@^3.0.0-rc.18": +"@yarnpkg/parsers@3.0.0-rc.46": version "3.0.0-rc.46" resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01" integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q== @@ -6238,6 +7475,14 @@ js-yaml "^3.10.0" tslib "^2.4.0" +"@yarnpkg/parsers@^3.0.0-rc.18": + version "3.0.0-rc.42" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.42.tgz#3814e90a81bb1f9c06cc83c6a009139c55efe94d" + integrity sha512-eW9Mbegmb5bJjwawJM9ghjUjUqciNMhC6L7XrQPF/clXS5bbP66MstsgCT5hy9VlfUh/CfBT+0Wucf531dMjHA== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + "@zkochan/js-yaml@0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826" @@ -6375,7 +7620,12 @@ acorn@^7.1.1, acorn@^7.3.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: +acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +acorn@^8.9.0: version "8.9.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== @@ -6447,7 +7697,7 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.11.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.1.0, ajv@^8.4.0: +ajv@^8.0.0, ajv@^8.1.0, ajv@^8.4.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -6457,6 +7707,16 @@ ajv@^8.0.0, ajv@^8.0.1, ajv@^8.1.0, ajv@^8.4.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" + integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -7009,7 +8269,7 @@ axios@^0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@^1.0.0, axios@^1.1.3: +axios@^1.0.0: version "1.3.5" resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.5.tgz#e07209b39a0d11848e3e341fa087acd71dadc542" integrity sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw== @@ -7018,6 +8278,15 @@ axios@^1.0.0, axios@^1.1.3: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.1.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + babel-jest@29.5.0, babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -7591,7 +8860,12 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -bson@*, bson@^5.3.0: +bson@*: + version "5.0.1" + resolved "https://registry.yarnpkg.com/bson/-/bson-5.0.1.tgz#4cd3eeeabf6652ef0d6ab600f9a18212d39baac3" + integrity sha512-y09gBGusgHtinMon/GVbv1J6FrXhnr/+6hqLlSmEFzkz6PodqF6TxjyvfvY3AfO+oG1mgUtbC86xSbOlwvM62Q== + +bson@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/bson/-/bson-5.3.0.tgz#37b006df4cd91ed125cb686467c1dd6d4606b514" integrity sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag== @@ -8713,7 +9987,14 @@ copyfiles@2.4.1, copyfiles@^2.4.1: untildify "^4.0.0" yargs "^16.1.0" -core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.25.1, core-js-compat@^3.30.1, core-js-compat@^3.30.2: +core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.25.1: + version "3.29.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.29.0.tgz#1b8d9eb4191ab112022e7f6364b99b65ea52f528" + integrity sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ== + dependencies: + browserslist "^4.21.5" + +core-js-compat@^3.30.1, core-js-compat@^3.30.2: version "3.31.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.0.tgz#4030847c0766cc0e803dcdfb30055d7ef2064bf1" integrity sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw== @@ -9209,7 +10490,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -9223,6 +10504,13 @@ debug@^3.0.1, debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + debuglog@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -9246,7 +10534,12 @@ decimal.js@^10.2.1, decimal.js@^10.4.3: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + +decode-uri-component@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== @@ -10035,7 +11328,14 @@ ee-first@1.1.1, ee-first@~1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -ejs@^3.1.6, ejs@^3.1.7: +ejs@^3.1.6: + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" + +ejs@^3.1.7: version "3.1.9" resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== @@ -10229,7 +11529,7 @@ engine.io@~6.4.1: engine.io-parser "~5.0.3" ws "~8.11.0" -enhanced-resolve@^5.14.1, enhanced-resolve@^5.8.3: +enhanced-resolve@^5.14.1: version "5.14.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== @@ -10237,6 +11537,14 @@ enhanced-resolve@^5.14.1, enhanced-resolve@^5.8.3: graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.8.3: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enquirer@^2.3.5, enquirer@^2.3.6, enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -10249,7 +11557,12 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: +entities@^4.2.0, entities@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + +entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -10300,7 +11613,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.5, es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.17.5, es-abstract@^1.20.4: version "1.21.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== @@ -10339,6 +11652,35 @@ es-abstract@^1.17.5, es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-abstract@^1.19.0, es-abstract@^1.19.5: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + es-aggregate-error@^1.0.8: version "1.0.9" resolved "https://registry.yarnpkg.com/es-aggregate-error/-/es-aggregate-error-1.0.9.tgz#b50925cdf78c8a634bd766704f6f7825902be3d9" @@ -10594,7 +11936,7 @@ esbuild@^0.16.17: "@esbuild/win32-ia32" "0.16.17" "@esbuild/win32-x64" "0.16.17" -esbuild@^0.17.18, esbuild@^0.17.5: +esbuild@^0.17.18: version "0.17.18" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.18.tgz#f4f8eb6d77384d68cd71c53eb6601c7efe05e746" integrity sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w== @@ -10622,6 +11964,34 @@ esbuild@^0.17.18, esbuild@^0.17.5: "@esbuild/win32-ia32" "0.17.18" "@esbuild/win32-x64" "0.17.18" +esbuild@^0.17.5: + version "0.17.17" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.17.tgz#fa906ab11b11d2ed4700f494f4f764229b25c916" + integrity sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA== + optionalDependencies: + "@esbuild/android-arm" "0.17.17" + "@esbuild/android-arm64" "0.17.17" + "@esbuild/android-x64" "0.17.17" + "@esbuild/darwin-arm64" "0.17.17" + "@esbuild/darwin-x64" "0.17.17" + "@esbuild/freebsd-arm64" "0.17.17" + "@esbuild/freebsd-x64" "0.17.17" + "@esbuild/linux-arm" "0.17.17" + "@esbuild/linux-arm64" "0.17.17" + "@esbuild/linux-ia32" "0.17.17" + "@esbuild/linux-loong64" "0.17.17" + "@esbuild/linux-mips64el" "0.17.17" + "@esbuild/linux-ppc64" "0.17.17" + "@esbuild/linux-riscv64" "0.17.17" + "@esbuild/linux-s390x" "0.17.17" + "@esbuild/linux-x64" "0.17.17" + "@esbuild/netbsd-x64" "0.17.17" + "@esbuild/openbsd-x64" "0.17.17" + "@esbuild/sunos-x64" "0.17.17" + "@esbuild/win32-arm64" "0.17.17" + "@esbuild/win32-ia32" "0.17.17" + "@esbuild/win32-x64" "0.17.17" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -10740,11 +12110,16 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + eslint@6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" @@ -10946,13 +12321,20 @@ esprima@~3.1.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" integrity sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg== -esquery@^1.0.1, esquery@^1.4.0, esquery@^1.4.2: +esquery@^1.0.1, esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" +esquery@^1.4.0: + version "1.4.0" + 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.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -11199,7 +12581,18 @@ expect@^28.1.3: jest-message-util "^28.1.3" jest-util "^28.1.3" -expect@^29.0.0, expect@^29.5.0: +expect@^29.0.0: + version "29.4.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" + integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== + dependencies: + "@jest/expect-utils" "^29.4.3" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" + +expect@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== @@ -11393,7 +12786,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9: +fast-glob@^3.0.3, fast-glob@^3.2.11: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -11404,6 +12797,17 @@ fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-patch@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947" @@ -12168,7 +13572,25 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: +get-intrinsic@^1.0.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== @@ -12458,7 +13880,7 @@ glob@^8.0.0, glob@^8.0.1, glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -glob@^9.2.0, glob@^9.3.1: +glob@^9.2.0, glob@^9.3.0, glob@^9.3.1: version "9.3.5" resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== @@ -12525,13 +13947,20 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: +globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" +globals@^13.6.0, globals@^13.9.0: + version "13.12.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + dependencies: + type-fest "^0.20.2" + globalthis@^1.0.1, globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -12726,11 +14155,16 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@4.2.11, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@4.2.11, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, 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== + graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -12825,7 +14259,7 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -13241,11 +14675,16 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.0.4, ignore@^5.1.1, ignore@^5.2.0: +ignore@^5.0.4, ignore@^5.1.1: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + image-q@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/image-q/-/image-q-4.0.0.tgz#31e075be7bae3c1f42a85c469b4732c358981776" @@ -13443,6 +14882,15 @@ inquirer@^8.2.4: through "^2.3.6" wrap-ansi "^7.0.0" +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + internal-slot@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -13609,11 +15057,16 @@ is-buffer@^1.1.5, is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.1.3, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + is-ci@3.0.1, is-ci@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" @@ -14474,6 +15927,16 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-diff@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" + integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" + jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -14734,6 +16197,16 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-matcher-utils@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" + integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== + dependencies: + chalk "^4.0.0" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" + jest-matcher-utils@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" @@ -14774,6 +16247,21 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" + integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.4.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.4.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-message-util@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" @@ -15209,6 +16697,18 @@ jest-util@^29.0.0, jest-util@^29.5.0: graceful-fs "^4.2.9" picomatch "^2.2.3" +jest-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" + integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== + dependencies: + "@jest/types" "^29.4.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + jest-validate@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" @@ -16800,11 +18300,21 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.14.0, lru-cache@^7.14.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: +lru-cache@^7.14.0, lru-cache@^7.14.1: + version "7.18.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.1.tgz#4716408dec51d5d0104732647f584d1f6738b109" + integrity sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg== + +lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.18.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== +lru-cache@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.0.1.tgz#ac061ed291f8b9adaca2b085534bb1d3b61bef83" + integrity sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg== + lru-cache@^9.1.1: version "9.1.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" @@ -16866,7 +18376,14 @@ magic-string@^0.22.5: dependencies: vlq "^0.2.2" -magic-string@^0.25.2, magic-string@^0.25.7: +magic-string@^0.25.2: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== @@ -16936,7 +18453,28 @@ make-fetch-happen@^10.0.3: socks-proxy-agent "^7.0.0" ssri "^9.0.0" -make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.0: +make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1: + version "11.0.3" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz#ed83dd3685b97f75607156d2721848f6eca561b9" + integrity sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA== + dependencies: + agentkeepalive "^4.2.1" + cacache "^17.0.0" + http-cache-semantics "^4.1.1" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^4.0.0" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^10.0.0" + +make-fetch-happen@^11.1.0: version "11.1.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== @@ -17297,7 +18835,14 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1: +minimatch@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.0.tgz#bfc8e88a1c40ffd40c172ddac3decb8451503b56" + integrity sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== @@ -17313,11 +18858,16 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.7, minimist@^1.2.8: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.3, minimist@^1.2.7, minimist@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minimist@^1.2.0, 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== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -17383,7 +18933,12 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: dependencies: yallist "^4.0.0" -minipass@^4.0.0, minipass@^4.2.4: +minipass@^4.0.0: + version "4.2.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.4.tgz#7d0d97434b6a19f59c5c3221698b48bbf3b2cd06" + integrity sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ== + +minipass@^4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== @@ -17695,6 +19250,11 @@ nanoid@^2.1.0: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" @@ -17809,14 +19369,14 @@ node-fetch@2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-fetch@2.6.7: +node-fetch@2.6.7, node-fetch@^2.6.7: 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-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6, node-fetch@^2.6.7: +node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.6: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== @@ -18164,7 +19724,20 @@ npm-pick-manifest@^8.0.0: npm-package-arg "^10.0.0" semver "^7.3.5" -npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3, npm-registry-fetch@^14.0.5: +npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz#8545e321c2b36d2c6fe6e009e77e9f0e527f547b" + integrity sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA== + dependencies: + make-fetch-happen "^11.0.0" + minipass "^4.0.0" + minipass-fetch "^3.0.0" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^10.0.0" + proc-log "^3.0.0" + +npm-registry-fetch@^14.0.5: version "14.0.5" resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d" integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA== @@ -18242,7 +19815,12 @@ nunjucks@^3.2.3: asap "^2.0.3" commander "^5.1.0" -nwsapi@^2.2.0, nwsapi@^2.2.2: +nwsapi@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" + integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + +nwsapi@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== @@ -18313,12 +19891,63 @@ nx@16.2.1: "@nx/nx-win32-arm64-msvc" "16.2.1" "@nx/nx-win32-x64-msvc" "16.2.1" -nx@16.4.3, "nx@>=16.1.3 < 17", nx@^16.2.1: - version "16.4.3" - resolved "https://registry.yarnpkg.com/nx/-/nx-16.4.3.tgz#0bd8e408eeb9f09f9fca334689bf3d13f361254f" - integrity sha512-bq3wc7WI/j/mmz4MbrhDVE+DLJ6ywvmAoUjxNRcVAhPi+rT7bDaztVZceDbxxVFW55wfOIjcYwhS9fGQMSBBpQ== +nx@16.3.2, "nx@>=16.1.3 < 17": + version "16.3.2" + resolved "https://registry.yarnpkg.com/nx/-/nx-16.3.2.tgz#92a2d7ef06d15b3b111b7cf9d35de08de0a22d90" + integrity sha512-fOzCVL7qoCJAcYTJwvJ9j+PSaL791ro4AICWuLxaphZsp2jcLoav4Ev7ONPks2Wlkt8FS9bee3nqQ3w1ya36Og== dependencies: - "@nrwl/tao" "16.4.3" + "@nrwl/tao" "16.3.2" + "@parcel/watcher" "2.0.4" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "^3.0.0-rc.18" + "@zkochan/js-yaml" "0.0.6" + axios "^1.0.0" + chalk "^4.1.0" + cli-cursor "3.1.0" + cli-spinners "2.6.1" + cliui "^7.0.2" + dotenv "~10.0.0" + enquirer "~2.3.6" + fast-glob "3.2.7" + figures "3.2.0" + flat "^5.0.2" + fs-extra "^11.1.0" + glob "7.1.4" + ignore "^5.0.4" + js-yaml "4.1.0" + jsonc-parser "3.2.0" + lines-and-columns "~2.0.3" + minimatch "3.0.5" + npm-run-path "^4.0.1" + open "^8.4.0" + semver "7.3.4" + string-width "^4.2.3" + strong-log-transformer "^2.1.0" + tar-stream "~2.2.0" + tmp "~0.2.1" + tsconfig-paths "^4.1.2" + tslib "^2.3.0" + v8-compile-cache "2.3.0" + yargs "^17.6.2" + yargs-parser "21.1.1" + optionalDependencies: + "@nx/nx-darwin-arm64" "16.3.2" + "@nx/nx-darwin-x64" "16.3.2" + "@nx/nx-freebsd-x64" "16.3.2" + "@nx/nx-linux-arm-gnueabihf" "16.3.2" + "@nx/nx-linux-arm64-gnu" "16.3.2" + "@nx/nx-linux-arm64-musl" "16.3.2" + "@nx/nx-linux-x64-gnu" "16.3.2" + "@nx/nx-linux-x64-musl" "16.3.2" + "@nx/nx-win32-arm64-msvc" "16.3.2" + "@nx/nx-win32-x64-msvc" "16.3.2" + +nx@16.5.0, nx@^16.2.1: + version "16.5.0" + resolved "https://registry.yarnpkg.com/nx/-/nx-16.5.0.tgz#eb6551586a068ef289430b0830dd3851ec4eeb4b" + integrity sha512-X95atskaF1ejrF+C80mC4SwFPq0G/yFvxhfeWpPjKj7vUJEy1nZ4SjqlNVMORdN8dKQTE6ss76cIJux3fE7EXw== + dependencies: + "@nrwl/tao" "16.5.0" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" @@ -18353,16 +19982,16 @@ nx@16.4.3, "nx@>=16.1.3 < 17", nx@^16.2.1: yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "16.4.3" - "@nx/nx-darwin-x64" "16.4.3" - "@nx/nx-freebsd-x64" "16.4.3" - "@nx/nx-linux-arm-gnueabihf" "16.4.3" - "@nx/nx-linux-arm64-gnu" "16.4.3" - "@nx/nx-linux-arm64-musl" "16.4.3" - "@nx/nx-linux-x64-gnu" "16.4.3" - "@nx/nx-linux-x64-musl" "16.4.3" - "@nx/nx-win32-arm64-msvc" "16.4.3" - "@nx/nx-win32-x64-msvc" "16.4.3" + "@nx/nx-darwin-arm64" "16.5.0" + "@nx/nx-darwin-x64" "16.5.0" + "@nx/nx-freebsd-x64" "16.5.0" + "@nx/nx-linux-arm-gnueabihf" "16.5.0" + "@nx/nx-linux-arm64-gnu" "16.5.0" + "@nx/nx-linux-arm64-musl" "16.5.0" + "@nx/nx-linux-x64-gnu" "16.5.0" + "@nx/nx-linux-x64-musl" "16.5.0" + "@nx/nx-win32-arm64-msvc" "16.5.0" + "@nx/nx-win32-x64-msvc" "16.5.0" oauth-sign@~0.9.0: version "0.9.0" @@ -18410,7 +20039,12 @@ object-identity-map@^1.0.2: dependencies: object.entries "^1.1.0" -object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-inspect@^1.12.2: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== @@ -18456,6 +20090,16 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" @@ -18647,7 +20291,19 @@ optionator@^0.8.1, optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1, optionator@^0.9.3: +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== @@ -19190,7 +20846,15 @@ path-parser@^6.1.0: search-params "3.0.0" tslib "^1.10.0" -path-scurry@^1.6.1, path-scurry@^1.7.0: +path-scurry@^1.6.1: + version "1.6.4" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.6.4.tgz#020a9449e5382a4acb684f9c7e1283bc5695de66" + integrity sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg== + dependencies: + lru-cache "^9.0.0" + minipass "^5.0.0" + +path-scurry@^1.7.0: version "1.9.2" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== @@ -19820,7 +21484,7 @@ postcss-scss@^4.0.6: resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd" integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ== -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.11: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -19828,6 +21492,14 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-svgo@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" @@ -19866,7 +21538,34 @@ postcss-values-parser@^6.0.2: is-url-superb "^4.0.0" quote-unquote "^1.0.0" -postcss@^8.1.7, postcss@^8.2.10, postcss@^8.2.9, postcss@^8.3.11, postcss@^8.4.12, postcss@^8.4.18, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.5: +postcss@^8.1.7: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.2.10, postcss@^8.2.9, postcss@^8.3.11, postcss@^8.4.12, postcss@^8.4.18: + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.21: + version "8.4.22" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.22.tgz#c29e6776b60ab3af602d4b513d5bd2ff9aa85dc1" + integrity sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.23, postcss@^8.4.5: version "8.4.24" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== @@ -20245,11 +21944,16 @@ prettier-plugin-svelte@^2.3.0: resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz#0e845b560b55cd1d951d6c50431b4949f8591746" integrity sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA== -prettier@2.8.8, prettier@^2.5.1: +prettier@2.8.8: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^2.5.1: + version "2.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== + pretty-bytes@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -20284,7 +21988,16 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.5.0: +pretty-format@^29.0.0, pretty-format@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" + integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== + dependencies: + "@jest/schemas" "^29.4.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== @@ -20514,7 +22227,12 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== -psl@^1.1.28, psl@^1.1.33: +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +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== @@ -20554,7 +22272,12 @@ punycode@^1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +punycode@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== @@ -20741,7 +22464,7 @@ read-package-json-fast@^3.0.0: json-parse-even-better-errors "^3.0.0" npm-normalize-package-bin "^3.0.0" -read-package-json@6.0.4, read-package-json@^6.0.0: +read-package-json@6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== @@ -20751,6 +22474,16 @@ read-package-json@6.0.4, read-package-json@^6.0.0: normalize-package-data "^5.0.0" npm-normalize-package-bin "^3.0.0" +read-package-json@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.1.tgz#566cb06bc05dbddefba4607e9096d5a9efbcd836" + integrity sha512-AaHqXxfAVa+fNL07x8iAghfKOds/XXsu7zoouIVsbm7PEbQ3nMWXlvjcbrNLjElnUHWQtAo4QEa0RXuvD4XlpA== + dependencies: + glob "^9.3.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^5.0.0" + npm-normalize-package-bin "^3.0.0" + read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -20804,10 +22537,10 @@ readable-stream@1.1.14, readable-stream@1.1.x, readable-stream@^1.0.26-4, readab isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62" - integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== +"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.4.0: + version "3.6.0" + 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" string_decoder "^1.1.1" @@ -20823,7 +22556,20 @@ readable-stream@1.1.14, readable-stream@1.1.x, readable-stream@^1.0.26-4, readab isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6: + version "2.3.7" + 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" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^2.1.4, readable-stream@^2.3.0, readable-stream@^2.3.5: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -20836,6 +22582,15 @@ readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.1.tgz#f9f9b5f536920253b3d26e7660e7da4ccff9bb62" + integrity sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.3.0.tgz#0914d0c72db03b316c9733bb3461d64a3cc50cba" @@ -21252,7 +23007,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== -resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.21.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: +resolve@^1.10.0, resolve@^1.11.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.21.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -21261,6 +23016,15 @@ resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.1 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.12.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@1.0.2, responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -21592,11 +23356,16 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: +safe-stable-stringify@^2.1.0: version "2.4.3" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== +safe-stable-stringify@^2.3.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -21672,7 +23441,16 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -schema-utils@^3.1.1, schema-utils@^3.1.2: +schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.2.tgz#36c10abca6f7577aeae136c804b0c741edeadc99" integrity sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg== @@ -21745,25 +23523,46 @@ semver@7.3.4: dependencies: lru-cache "^6.0.0" -semver@7.3.7: +semver@7.3.7, semver@^7.3.4: 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@7.5.3, semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3: +semver@7.5.3, semver@^7.5.3: version "7.5.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== dependencies: lru-cache "^6.0.0" +semver@7.x, semver@^7.3.2, semver@^7.3.7, semver@^7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.0.0, semver@^7.1.1: + version "7.4.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" + integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== + dependencies: + lru-cache "^6.0.0" + +semver@^7.2.1, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + semver@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-2.3.2.tgz#b9848f25d6cf36333073ec9ef8856d42f1233e52" @@ -21987,7 +23786,7 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== -sigstore@^1.3.0, sigstore@^1.4.0: +sigstore@^1.3.0: version "1.6.0" resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.6.0.tgz#887a4007c6ee83f3ef3fd844be1a0840e849c301" integrity sha512-QODKff/qW/TXOZI6V/Clqu74xnInAS6it05mufj4/fSewexLtfEntgLZZcBtUK44CDQyUE5TUXYy1ARYzlfG9g== @@ -21997,6 +23796,15 @@ sigstore@^1.3.0, sigstore@^1.4.0: make-fetch-happen "^11.0.1" tuf-js "^1.1.3" +sigstore@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.5.2.tgz#8d4c2a549341211cb08c687999843edc48c1a94c" + integrity sha512-X95v6xAAooVpn7PaB94TDmFeSO5SBfCtB1R23fvzr36WTfjtkiiyOeei979nbTjc8nzh6FSLeltQZuODsm1EjQ== + dependencies: + "@sigstore/protobuf-specs" "^0.1.0" + make-fetch-happen "^11.0.1" + tuf-js "^1.1.3" + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" @@ -22232,7 +24040,14 @@ sonic-boom@^2.2.1: dependencies: atomic-sleep "^1.0.0" -sonic-boom@^3.0.0, sonic-boom@^3.1.0: +sonic-boom@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" + integrity sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A== + dependencies: + atomic-sleep "^1.0.0" + +sonic-boom@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== @@ -22351,7 +24166,7 @@ source-map@^0.8.0-beta.0: dependencies: whatwg-url "^7.0.0" -sourcemap-codec@^1.4.8: +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -22715,6 +24530,15 @@ string.prototype.startswith@^1.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" @@ -22724,6 +24548,15 @@ string.prototype.trimend@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string.prototype.trimstart@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" @@ -23057,12 +24890,12 @@ svelte-spa-router@^3.0.5: dependencies: regexparam "2.0.1" -svelte@3.49.0: +svelte@3.49.0, svelte@^3.38.2: version "3.49.0" resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.49.0.tgz#5baee3c672306de1070c3b7888fc2204e36a4029" integrity sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA== -svelte@^3.38.2, svelte@^3.46.2, svelte@^3.48.0, svelte@^3.49.0: +svelte@^3.46.2, svelte@^3.48.0, svelte@^3.49.0: version "3.55.1" resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.55.1.tgz#6f93b153e5248039906ce5fe196efdb9e05dfce8" integrity sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ== @@ -23263,7 +25096,7 @@ tar@6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -tar@6.1.15, tar@^6.1.11, tar@^6.1.2: +tar@6.1.15: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== @@ -23275,6 +25108,18 @@ tar@6.1.15, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.11, tar@^6.1.2: + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^4.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + tarn@^3.0.1, tarn@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" @@ -23334,7 +25179,17 @@ terser-webpack-plugin@^5.3.7: serialize-javascript "^6.0.1" terser "^5.16.8" -terser@^5.0.0, terser@^5.16.8: +terser@^5.0.0: + version "5.16.5" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.5.tgz#1c285ca0655f467f92af1bbab46ab72d1cb08e5a" + integrity sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +terser@^5.16.8: version "5.17.6" resolved "https://registry.yarnpkg.com/terser/-/terser-5.17.6.tgz#d810e75e1bb3350c799cd90ebefe19c9412c12de" integrity sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ== @@ -23807,7 +25662,12 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.4.1: +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +tslib@^2.4.1: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== @@ -24533,7 +26393,7 @@ vlq@^0.2.2: resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== -vm2@3.9.17, vm2@^3.9.15, vm2@^3.9.8: +vm2@3.9.17: version "3.9.17" resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.17.tgz#251b165ff8a0e034942b5181057305e39570aeab" integrity sha512-AqwtCnZ/ERcX+AVj9vUsphY56YANXxRuqMb7GsDtAr0m0PcQX3u0Aj3KWiXM0YAHy7i6JEeHrwOnwXbGYgRpAw== @@ -24541,6 +26401,22 @@ vm2@3.9.17, vm2@^3.9.15, vm2@^3.9.8: acorn "^8.7.0" acorn-walk "^8.2.0" +vm2@^3.9.15: + version "3.9.16" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.16.tgz#0fbc2a265f7bf8b837cea6f4a908f88a3f93b8e6" + integrity sha512-3T9LscojNTxdOyG+e8gFeyBXkMlOBYDoF6dqZbj+MPVHi9x10UfiTAJIobuchRCp3QvC+inybTbMJIUrLsig0w== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + +vm2@^3.9.8: + version "3.9.14" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.14.tgz#964042b474cf1e6e4f475a39144773cdb9deb734" + integrity sha512-HgvPHYHeQy8+QhzlFryvSteA4uQLBCOub02mgqdR+0bN/akRZ48TGB1v0aCv7ksyc0HXx16AZtMHKS38alc6TA== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + vuvuzela@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" @@ -24897,7 +26773,7 @@ winston@^3.1.0, winston@^3.3.3: triple-beam "^1.3.0" winston-transport "^4.5.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== From de083e875139fa8ae66a2b95ea59622ab3bfc777 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 10 Jul 2023 10:18:49 +0100 Subject: [PATCH 064/122] set global retry times --- qa-core/src/jest/jestSetup.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/qa-core/src/jest/jestSetup.ts b/qa-core/src/jest/jestSetup.ts index 5c86d5fd24..6c60845c87 100644 --- a/qa-core/src/jest/jestSetup.ts +++ b/qa-core/src/jest/jestSetup.ts @@ -1,4 +1,5 @@ import { logging } from "@budibase/backend-core" logging.LOG_CONTEXT = false +jest.retryTimes(2) jest.setTimeout(60000) From 39efd01f231e08a87f1e6a722e258b941070e445 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 10 Jul 2023 11:41:46 +0200 Subject: [PATCH 065/122] Update nx --- package.json | 9 +-- yarn.lock | 207 +++++++++++++++------------------------------------ 2 files changed, 64 insertions(+), 152 deletions(-) diff --git a/package.json b/package.json index 79c417bd54..2ede10758b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "devDependencies": { "@esbuild-plugins/tsconfig-paths": "^0.1.2", - "@nx/js": "16.2.1", + "@nx/js": "16.5.0", "@rollup/plugin-json": "^4.0.2", "@typescript-eslint/parser": "5.45.0", "esbuild": "^0.17.18", @@ -16,8 +16,8 @@ "lerna": "7.0.2", "madge": "^6.0.0", "minimist": "^1.2.8", - "nx": "^16.2.1", - "nx-cloud": "^16.0.5", + "nx": "16.5.0", + "nx-cloud": "16.0.5", "prettier": "2.8.8", "prettier-plugin-svelte": "^2.3.0", "rimraf": "^3.0.2", @@ -108,6 +108,5 @@ "@budibase/string-templates": "0.0.0", "@budibase/types": "0.0.0" }, - "dependencies": { - } + "dependencies": {} } diff --git a/yarn.lock b/yarn.lock index afd2421835..592e5e191c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4694,13 +4694,6 @@ read-package-json-fast "^3.0.0" which "^3.0.0" -"@nrwl/devkit@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.2.1.tgz#2da4dbe5826b0721cae547635554b6e411a069f6" - integrity sha512-yeNEccQzDuL+/thbS2XTq8MtD0KDrI92gXIPSrS/Q6QnDNJGz6T2kRe/mJWrcfrDFm/L61MsAlGXobElhceNMw== - dependencies: - "@nx/devkit" "16.2.1" - "@nrwl/devkit@16.2.2": version "16.2.2" resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.2.2.tgz#fd7d0a19b4be3ba35cc0d3dd9e4154f9812f432f" @@ -4708,12 +4701,19 @@ dependencies: "@nx/devkit" "16.2.2" -"@nrwl/js@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-16.2.1.tgz#6eacfa1f0658ca1e288da86b6c38be4846f2779a" - integrity sha512-+XCgHocQzqn/wQauzTuWv/ioyuuiC3FfE3H+wg2FgfYuJLYuGyGx4qDhuiGvaaLqOK1dJQxLBsZW9Gjk77qe1g== +"@nrwl/devkit@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.5.0.tgz#b116f7637f501449a702b268d18cd806dada3360" + integrity sha512-O/CH43gM2sumfO1BX7f20B4rniE9P48XwMEQoi1HssdzL+IstHWw5Q9BO2uoSCNpu5x04V/VzX/8yFmoFmOJ7g== dependencies: - "@nx/js" "16.2.1" + "@nx/devkit" "16.5.0" + +"@nrwl/js@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-16.5.0.tgz#59685c77fbe3d092c0ca3a5df0230ccc8cc24513" + integrity sha512-phWuClgKKVXUFk3TXvJQFIDrsoeZXa0j8+vccLMgdOKhjJ5P/33UAMCn7Vp47iRYJbQsbMbzDtoT4bR3sKnvWw== + dependencies: + "@nx/js" "16.5.0" "@nrwl/nx-cloud@16.0.5": version "16.0.5" @@ -4722,13 +4722,6 @@ dependencies: nx-cloud "16.0.5" -"@nrwl/tao@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.2.1.tgz#08bb3dae81e958777268747c385c32a608452c3e" - integrity sha512-mhLkMxGFbnR4hu9UbjMvzdePDXmUpV33mImt1myewP/cY9YZdzv5ntqT+9U+zzVg7Q2ZGosiGQE+IYRm6yeWog== - dependencies: - nx "16.2.1" - "@nrwl/tao@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.3.2.tgz#eefc1974342afbbe48e4e5351d6707ad2f9fb179" @@ -4743,24 +4736,12 @@ dependencies: nx "16.5.0" -"@nrwl/workspace@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-16.2.1.tgz#22e83a4b545e563fd157c407b387113a6bc639bc" - integrity sha512-k9CUsGNBC5gTnTMcPDHFkxIPzzhhm47DhmNV3xueuwSAyZbvnekCtmkFRdwe4jtOFjB6+MpTsol9p37vKfXVLA== +"@nrwl/workspace@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-16.5.0.tgz#7f75e9548d5803baee7ab76e30fc6a10e6af1e4a" + integrity sha512-uEiCSYgD7YhyDAjNUhGbLDJ82o496dwK6gCr8/3+9gQqrkkjOQoCO7Rt6gBRsJEQIdwYz8CR+bl3K9cFyErsYw== dependencies: - "@nx/workspace" "16.2.1" - -"@nx/devkit@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.2.1.tgz#f937604149272b46927cad5645ecc444973f97f2" - integrity sha512-OrnFkU+lrSP/MdQW6C07aMlLyMp98oZMyfZ6h721T66zvuDfchhG2RXLX/Rb2t1lgZ+oMBKwvxxUKMRpHKPekA== - dependencies: - "@nrwl/devkit" "16.2.1" - ejs "^3.1.7" - ignore "^5.0.4" - semver "7.3.4" - tmp "~0.2.1" - tslib "^2.3.0" + "@nx/workspace" "16.5.0" "@nx/devkit@16.2.2", "@nx/devkit@>=16.1.3 < 17": version "16.2.2" @@ -4774,10 +4755,22 @@ tmp "~0.2.1" tslib "^2.3.0" -"@nx/js@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/js/-/js-16.2.1.tgz#41c8c2d610131fa064bbb2b6bb25bd67ed06be79" - integrity sha512-WpK8yqVCrkCRTbNxSuRuQFpBXyX+doynixVv8yuB8HKPfE/wx6252eUMT43DWQJ+stmd5IhoH4THGyqpf+aaHg== +"@nx/devkit@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.5.0.tgz#aacb35a0a4b151e251691469fcf836c0506d4f15" + integrity sha512-IfGGKwgOBZshgRtL0V0IOuTaW8mnuSFft708fQfRyw8ArpNeyJbdbIvd9lCsHAFaKE5VTIKug4C48tyQikM7eA== + dependencies: + "@nrwl/devkit" "16.5.0" + ejs "^3.1.7" + ignore "^5.0.4" + semver "7.5.3" + tmp "~0.2.1" + tslib "^2.3.0" + +"@nx/js@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/js/-/js-16.5.0.tgz#638ee27f26e81337e91f051220d0aa2fcbde1dd6" + integrity sha512-lOx/edPm6iNGeUUHDGcG+LwHgLKgftfIjdy+bfOlqm2W9yl5tc6vw5+G5XBiFr2wA5nZeKiz4sTw88QzTA/z0A== dependencies: "@babel/core" "^7.15.0" "@babel/plugin-proposal-class-properties" "^7.14.5" @@ -4786,27 +4779,24 @@ "@babel/preset-env" "^7.15.0" "@babel/preset-typescript" "^7.15.0" "@babel/runtime" "^7.14.8" - "@nrwl/js" "16.2.1" - "@nx/devkit" "16.2.1" - "@nx/workspace" "16.2.1" + "@nrwl/js" "16.5.0" + "@nx/devkit" "16.5.0" + "@nx/workspace" "16.5.0" "@phenomnomnominal/tsquery" "~5.0.1" babel-plugin-const-enum "^1.0.1" babel-plugin-macros "^2.8.0" babel-plugin-transform-typescript-metadata "^0.3.1" chalk "^4.1.0" + detect-port "^1.5.1" fast-glob "3.2.7" fs-extra "^11.1.0" ignore "^5.0.4" js-tokens "^4.0.0" minimatch "3.0.5" + semver "7.5.3" source-map-support "0.5.19" tslib "^2.3.0" -"@nx/nx-darwin-arm64@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.2.1.tgz#8a144a6fd38a2a7179c583c1fc344b2a0de27996" - integrity sha512-xK/dL5T2R8zrcD8/13PeaYH/LBcYeaELIZkXGdGbtQ8WeFHjPJLBfuWo/7Se7KSWIXLIJEeYrVZwyxuei1dOTA== - "@nx/nx-darwin-arm64@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.3.2.tgz#83b6e78b27d2d7da8f7626560f52070c8735d28a" @@ -4817,11 +4807,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.5.0.tgz#c9631c6c62148b34d13e74c61e2270b4fd515109" integrity sha512-0+5FH3ot5o0lpL0OKD4fO2n0a6LqLxr0LwU2VYxaAR1GLzOeVE5W3jBWY9ztOE+ktm8mGaZsdIIOQ77Iz/xwsQ== -"@nx/nx-darwin-x64@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.2.1.tgz#f878b9257bb5ed939c5095b72f1f37fe01bab950" - integrity sha512-J1ZBqy8FtIhvZopcc96JWZY2InZClQ+XHWHnAmX8S1f79hcLUiatpu90FZhvfXmfOfLlpkKsa8aje/kjpnnWhA== - "@nx/nx-darwin-x64@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.3.2.tgz#0ae2a64356542c5fb73ca8038ce10ec4512e7fcb" @@ -4842,11 +4827,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.5.0.tgz#73c5c2f50302087a7b98855c9a8d3564aed5c75f" integrity sha512-hwIRRMyWrT2R4ozp6yXRNR1fwcclBlkkIQ51/1IzINPQxynMguuOvNZaJFD4OuZIDmI526++GmogPZc0aMzwkg== -"@nx/nx-linux-arm-gnueabihf@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.2.1.tgz#a0f7d2c1f90d78bf30c7beae7c5481a71fb2652a" - integrity sha512-rnujPmWlnkEvzkWARuW85cizVx6uGwQ/gA84tK3cHZQf9ly172WbDtsMtYRS9/CjvysMqDV0zBd7o/YhwpXNZg== - "@nx/nx-linux-arm-gnueabihf@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.3.2.tgz#62314a82566e3647866b9dd4167a2d0e1397f001" @@ -4857,11 +4837,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.5.0.tgz#4e1cb9d8294ef6cc5d380d6e23421ba1c16f18c9" integrity sha512-BEWLpBhJ2AcZNDsiExLDcM9kmQ4+E+0YUcOsrAeX1s5D4HXXVtHMdTmOucKs4NNFqMuJ2Cf3ZzqmAIkRug0beA== -"@nx/nx-linux-arm64-gnu@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.2.1.tgz#30dead7a96437c7cbb041a45e1c0e7292fb2151a" - integrity sha512-ZcuQN8eaxEI+93ut6UrDrZMPsk61LGlS6yaWPgrv3blKMfcU2+DYBDQ3ois7o5t0bnVad5QYSNhIvnMF2iU+hQ== - "@nx/nx-linux-arm64-gnu@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.3.2.tgz#02826400aa55b8f44bac83332dd29647d0e95001" @@ -4872,11 +4847,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.5.0.tgz#763d62a5a56b39bbdf75d39afce3369b6c2fd276" integrity sha512-EWmTbDLbBIjM/OJ594hoFKsEka/b8jM6NehL37mlIXL6fixUEA8LlO0MfUQ+kIPg79nWIujzulkIEhYFDWM1WA== -"@nx/nx-linux-arm64-musl@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.2.1.tgz#31219ecf98f9fe78b5fc06c9e0102d99e335bc5b" - integrity sha512-mMOvkYyBLU4j+mSHobtrj/pIDYXFGIX3Q9FMWxZ5Xz15m0DsbypZ/8v6NWpJaBY4VX6rJhCc+D/pZH+QBT8+/g== - "@nx/nx-linux-arm64-musl@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.3.2.tgz#a0a81520e0904aa026a7ab0a8a3bf3facec9f14c" @@ -4887,11 +4857,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.5.0.tgz#a05af4368c9cd538186ff1ea0503c87bbf00e092" integrity sha512-np/7+HEtEEvtu4zo3GBBPtTG8IP++vvH3o8VXpAB9eD4Jctz3rYzbfMc7GtLZkz8LCmCsjzqnrNtmcmoaRbomQ== -"@nx/nx-linux-x64-gnu@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.2.1.tgz#fb89cbbdf852e27093e0296ff7414ccccdf3591a" - integrity sha512-Kyn4dxFTj2PCRv+39tKU8BzDRE6/ru5v435uvodx03GS650F7+OMr4DN57jG4MQWhf//OUX8zPkvbKhsmxjndA== - "@nx/nx-linux-x64-gnu@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.3.2.tgz#e79b5c142ec8d9bfb458ea5803bc4b62abbcf296" @@ -4902,11 +4867,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.5.0.tgz#bc6fb6da02755ce4f48bd25418fe227751f6d938" integrity sha512-iLOwgAaa1BHPLFhkBVi7GLAf6LfdYuv/R2rxlqq4d6fhv4Eq91Wo08LsqbFds+LpMN0CA+W/QMc3w9IIS/MPrA== -"@nx/nx-linux-x64-musl@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.2.1.tgz#82b1b5ba04ef6e4d49527841239bf9e0fb1456e3" - integrity sha512-q8iFxLosSLiWkRWsbrioXV/qMG8TgsbqcM0VGz2FFLNMJ9DXvav/E/+8YbgEeHOjvA1MDeRaspIpDF7OMgJYGw== - "@nx/nx-linux-x64-musl@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.3.2.tgz#900aee8f171638b9fb44378e2ac0548cb4aa99a7" @@ -4917,11 +4877,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.5.0.tgz#88b7016056e8547c6ec4f89b932fafe3551352ca" integrity sha512-UE3tpgli7a08AsRaw/o1BUXnFOxICGzcYj1aglHBh6urVeUHK0aNt11djZcQ6ETgPgcjoGdwr7RqpANGnJQH9g== -"@nx/nx-win32-arm64-msvc@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.2.1.tgz#8a19a0c2db565f6d07a2d0b4a8b8fc6c8c86fadd" - integrity sha512-PpGiYzrMivDY1i10Zwf5Hmnv6oAQ8ACf6ehDgyQ3tByMMXHgyUZJLykfPaoWjoLh0s8wOvMV74WZO+K1LcIxTA== - "@nx/nx-win32-arm64-msvc@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.3.2.tgz#88db772b3535648e147b1a0206b1a1fe875fa9a5" @@ -4932,11 +4887,6 @@ resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.5.0.tgz#e4f80fa4b89d73c8d9e072cdc898563c1099f609" integrity sha512-u9cNKP8zrNIdeyaK5LHX+Zh+rkadE8tSE+vNulphCLhGuXJRpjaVY1juq9UQEo41NJQE6DuWWk2fnj4gALWugQ== -"@nx/nx-win32-x64-msvc@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.2.1.tgz#848b4c5b118f6a6f92f59c1643297e938c439242" - integrity sha512-m5oHCaSKdyydM1n1W9V0m2oxBL8PiF54dZB0+PlKB2fhf1zxiyq8i1hL2hXbKA90IOYcUt5/b7761/BzN5njAw== - "@nx/nx-win32-x64-msvc@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.3.2.tgz#2195faaf1fc465c7a89bfdd62323fdd2a5d91f15" @@ -4947,13 +4897,13 @@ resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.5.0.tgz#75f1822d3e3cd8a4eda4813d814dc2d17c3089d4" integrity sha512-E9109SAYNZXqCeWikZXyxNd7SZnCbdKGvqtQktS7dedHGwOmgIWfJ6bsvA7s2zHr09THQKJ4+7U1tDkWVNR9cg== -"@nx/workspace@16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-16.2.1.tgz#52cc54bf9970fe6769459b1315eb7f6db8ec387f" - integrity sha512-gGJNKsH2KFtxlBBL0AqPu0vo322wGfCPDK19OxgwTQMWDruMZ9jjAe3XU4a+FbCGmK1CmZUlbFo4HueD9hVkig== +"@nx/workspace@16.5.0": + version "16.5.0" + resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-16.5.0.tgz#a587898fb46e9e2dddb8b290edb59c54bfda9759" + integrity sha512-0qHtCH4HxOIgH4KdWt892wxpIsNWU18WglAFNuq1yDrb2wZWVzHPO9PEBC/FOl0/Ol3/Mbey5q2trRVHMuwEUQ== dependencies: - "@nrwl/workspace" "16.2.1" - "@nx/devkit" "16.2.1" + "@nrwl/workspace" "16.5.0" + "@nx/devkit" "16.5.0" "@parcel/watcher" "2.0.4" chalk "^4.1.0" chokidar "^3.5.1" @@ -4965,7 +4915,7 @@ ignore "^5.0.4" minimatch "3.0.5" npm-run-path "^4.0.1" - nx "16.2.1" + nx "16.5.0" open "^8.4.0" rxjs "^7.8.0" tmp "~0.2.1" @@ -7635,6 +7585,11 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== +address@^1.0.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + after-all-results@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/after-all-results/-/after-all-results-2.0.0.tgz#6ac2fc202b500f88da8f4f5530cfa100f4c6a2d0" @@ -10863,6 +10818,14 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +detect-port@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" + integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== + dependencies: + address "^1.0.1" + debug "4" + detective-amd@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-3.1.2.tgz#bf55eb5291c218b76d6224a3d07932ef13a9a357" @@ -19825,7 +19788,7 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== -nx-cloud@16.0.5, nx-cloud@^16.0.5: +nx-cloud@16.0.5: version "16.0.5" resolved "https://registry.yarnpkg.com/nx-cloud/-/nx-cloud-16.0.5.tgz#fa0b0185d254405ec47fcbcdbbd8b12ff1add096" integrity sha512-13P7r0aKikjBtmdZrNorwXzVPeVIV4MLEwqGY+DEG6doLBtI5KqEQk/d5B5l2dCF2BEi/LXEmLYCmf9gwbOJ+Q== @@ -19841,56 +19804,6 @@ nx-cloud@16.0.5, nx-cloud@^16.0.5: tar "6.1.11" yargs-parser ">=21.1.1" -nx@16.2.1: - version "16.2.1" - resolved "https://registry.yarnpkg.com/nx/-/nx-16.2.1.tgz#8571a4663c79dc9d60c98599b19146b58c59b473" - integrity sha512-O+yGcYIQtYKYagbIuOQFk1P8ki5PHn0BZjdZpsa4K8UZ4pCaRWzlwWwwUL91FUJe6tdhic5710DwAAakbGKP7Q== - dependencies: - "@nrwl/tao" "16.2.1" - "@parcel/watcher" "2.0.4" - "@yarnpkg/lockfile" "^1.1.0" - "@yarnpkg/parsers" "^3.0.0-rc.18" - "@zkochan/js-yaml" "0.0.6" - axios "^1.0.0" - chalk "^4.1.0" - cli-cursor "3.1.0" - cli-spinners "2.6.1" - cliui "^7.0.2" - dotenv "~10.0.0" - enquirer "~2.3.6" - fast-glob "3.2.7" - figures "3.2.0" - flat "^5.0.2" - fs-extra "^11.1.0" - glob "7.1.4" - ignore "^5.0.4" - js-yaml "4.1.0" - jsonc-parser "3.2.0" - lines-and-columns "~2.0.3" - minimatch "3.0.5" - npm-run-path "^4.0.1" - open "^8.4.0" - semver "7.3.4" - string-width "^4.2.3" - strong-log-transformer "^2.1.0" - tar-stream "~2.2.0" - tmp "~0.2.1" - tsconfig-paths "^4.1.2" - tslib "^2.3.0" - v8-compile-cache "2.3.0" - yargs "^17.6.2" - yargs-parser "21.1.1" - optionalDependencies: - "@nx/nx-darwin-arm64" "16.2.1" - "@nx/nx-darwin-x64" "16.2.1" - "@nx/nx-linux-arm-gnueabihf" "16.2.1" - "@nx/nx-linux-arm64-gnu" "16.2.1" - "@nx/nx-linux-arm64-musl" "16.2.1" - "@nx/nx-linux-x64-gnu" "16.2.1" - "@nx/nx-linux-x64-musl" "16.2.1" - "@nx/nx-win32-arm64-msvc" "16.2.1" - "@nx/nx-win32-x64-msvc" "16.2.1" - nx@16.3.2, "nx@>=16.1.3 < 17": version "16.3.2" resolved "https://registry.yarnpkg.com/nx/-/nx-16.3.2.tgz#92a2d7ef06d15b3b111b7cf9d35de08de0a22d90" @@ -19942,7 +19855,7 @@ nx@16.3.2, "nx@>=16.1.3 < 17": "@nx/nx-win32-arm64-msvc" "16.3.2" "@nx/nx-win32-x64-msvc" "16.3.2" -nx@16.5.0, nx@^16.2.1: +nx@16.5.0: version "16.5.0" resolved "https://registry.yarnpkg.com/nx/-/nx-16.5.0.tgz#eb6551586a068ef289430b0830dd3851ec4eeb4b" integrity sha512-X95atskaF1ejrF+C80mC4SwFPq0G/yFvxhfeWpPjKj7vUJEy1nZ4SjqlNVMORdN8dKQTE6ss76cIJux3fE7EXw== From f45f1567a51b065154a960c834d87fcd9ac360d6 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 10 Jul 2023 12:18:07 +0200 Subject: [PATCH 066/122] Update lerna --- package.json | 12 ++++++------ yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 2ede10758b..d655ea61a3 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "husky": "^8.0.3", "js-yaml": "^4.1.0", "kill-port": "^1.6.1", - "lerna": "7.0.2", + "lerna": "7.1.1", "madge": "^6.0.0", "minimist": "^1.2.8", "nx": "16.5.0", @@ -46,15 +46,15 @@ "restore": "yarn run clean && yarn run bootstrap && yarn run build", "nuke": "yarn run nuke:packages && yarn run nuke:docker", "nuke:packages": "yarn run restore", - "nuke:docker": "lerna run --stream --parallel dev:stack:nuke", + "nuke:docker": "lerna run --stream dev:stack:nuke", "clean": "lerna clean", "kill-builder": "kill-port 3000", "kill-server": "kill-port 4001 4002", "kill-all": "yarn run kill-builder && yarn run kill-server", - "dev": "yarn run kill-all && lerna run --stream --parallel dev:builder --stream", - "dev:noserver": "yarn run kill-builder && lerna run --stream dev:stack:up && lerna run --stream --parallel dev:builder --ignore @budibase/backend-core --ignore @budibase/server --ignore @budibase/worker", - "dev:server": "yarn run kill-server && yarn build --projects=@budibase/client && lerna run --stream --parallel dev:builder --scope @budibase/worker --scope @budibase/server", - "dev:built": "yarn run kill-all && cd packages/server && yarn dev:stack:up && cd ../../ && lerna run --stream --parallel dev:built", + "dev": "yarn run kill-all && lerna run --stream dev:builder --stream", + "dev:noserver": "yarn run kill-builder && lerna run --stream dev:stack:up && lerna run --stream dev:builder --ignore @budibase/backend-core --ignore @budibase/server --ignore @budibase/worker", + "dev:server": "yarn run kill-server && yarn build --projects=@budibase/client && lerna run --stream dev:builder --scope @budibase/worker --scope @budibase/server", + "dev:built": "yarn run kill-all && cd packages/server && yarn dev:stack:up && cd ../../ && lerna run --stream dev:built", "dev:docker": "yarn build:docker:pre && docker-compose -f hosting/docker-compose.build.yaml -f hosting/docker-compose.dev.yaml --env-file hosting/.env up --build --scale proxy-service=0", "test": "lerna run --stream test --stream", "lint:eslint": "eslint packages qa-core --max-warnings=0", diff --git a/yarn.lock b/yarn.lock index 592e5e191c..ae1b14ad53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4487,21 +4487,21 @@ path-to-regexp "1.x" urijs "^1.19.2" -"@lerna/child-process@7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.0.2.tgz#0ea270dcc34cbece6b5319f1d4a24733060883bd" - integrity sha512-15lMrNBL/pvREMJPSfIPieaBtyyapDco/TNjALLEL53JGzO9g8rj5PipfE9h5ILx8aq/GaP17XCh209aVCun/w== +"@lerna/child-process@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-7.1.1.tgz#60eddd6dc4b6ba0fd51851c78b6dbdc4e1614220" + integrity sha512-mR8PaTkckYPLmEBG2VsVsJq2UuzEvjXevOB1rKLKUZ/dPCGcottVhbiEzTxickc+s7Y/1dTTLn/1BKj3B1a5BA== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/create@7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-7.0.2.tgz#a9335b889b54a456b3efc953f109aaf1d134b40a" - integrity sha512-1arGpEpWbWmci1MyaGKvP2SqCAPFWpLqZp0swckianX1kx1mso9B16BWFvcHhU57zCD0Co/z+jX+02UEzZGP7Q== +"@lerna/create@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-7.1.1.tgz#2af94afb01971c1b594c06347b6998607aefe5c4" + integrity sha512-1PY2OgwGxp7b91JzLKEhONVl69mCt1IyYEc6pzKy3Sv+UOdeK2QFq1SX/85hNOR3iitiyZ75bNWUTcBly1ZlZg== dependencies: - "@lerna/child-process" "7.0.2" + "@lerna/child-process" "7.1.1" dedent "0.7.0" fs-extra "^11.1.1" init-package-json "5.0.0" @@ -17545,13 +17545,13 @@ leaflet@^1.7.1: resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.3.tgz#52ec436954964e2d3d39e0d433da4b2500d74414" integrity sha512-iB2cR9vAkDOu5l3HAay2obcUHZ7xwUBBjph8+PGtmW/2lYhbLizWtG7nTeYht36WfOslixQF9D/uSIzhZgGMfQ== -lerna@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.0.2.tgz#45e844bfca72d12cc285c9a00f6f2cfb341bed05" - integrity sha512-omFpf1pTiaObC2YOC7K+euaDwhQA9CyKN1kXxmlSwaSkh8b8QTs4SC8jp3oNeXfcHpVS1ttuuz98AvQvJD46wA== +lerna@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.1.1.tgz#6703062e6c4ddefdaf41e8890e9200690924fd71" + integrity sha512-rjivAl3bYu2+lWOi90vy0tYFgwBYPMiNkR/DuEWZC08wle5dsbOZ/SlXeLk9+kzbF89Bt5P6p+qF78A2tJsWPA== dependencies: - "@lerna/child-process" "7.0.2" - "@lerna/create" "7.0.2" + "@lerna/child-process" "7.1.1" + "@lerna/create" "7.1.1" "@npmcli/run-script" "6.0.2" "@nx/devkit" ">=16.1.3 < 17" "@octokit/plugin-enterprise-rest" "6.0.1" From 711fb7b5c97e8414a5cf22624511d9c2d2e646e2 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 10 Jul 2023 12:21:05 +0200 Subject: [PATCH 067/122] Downgrade nx to support node 14 --- package.json | 4 +- yarn.lock | 188 +++++++++++++++++++++++++-------------------------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/package.json b/package.json index d655ea61a3..83719d7589 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "devDependencies": { "@esbuild-plugins/tsconfig-paths": "^0.1.2", - "@nx/js": "16.5.0", + "@nx/js": "16.4.3", "@rollup/plugin-json": "^4.0.2", "@typescript-eslint/parser": "5.45.0", "esbuild": "^0.17.18", @@ -16,7 +16,7 @@ "lerna": "7.1.1", "madge": "^6.0.0", "minimist": "^1.2.8", - "nx": "16.5.0", + "nx": "16.4.3", "nx-cloud": "16.0.5", "prettier": "2.8.8", "prettier-plugin-svelte": "^2.3.0", diff --git a/yarn.lock b/yarn.lock index ae1b14ad53..9537bb81fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4701,19 +4701,19 @@ dependencies: "@nx/devkit" "16.2.2" -"@nrwl/devkit@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.5.0.tgz#b116f7637f501449a702b268d18cd806dada3360" - integrity sha512-O/CH43gM2sumfO1BX7f20B4rniE9P48XwMEQoi1HssdzL+IstHWw5Q9BO2uoSCNpu5x04V/VzX/8yFmoFmOJ7g== +"@nrwl/devkit@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-16.4.3.tgz#036be0d478ef7156e55c1cfb4d13da080983503d" + integrity sha512-sDGv3RX5DHBMFFiHdd91e4YFXb87X5jsKkEg5Y2jmFtz/OilBKA9yoRhZ8t+iLBOmbgUngC5ZYPHc+Ykd2U3nA== dependencies: - "@nx/devkit" "16.5.0" + "@nx/devkit" "16.4.3" -"@nrwl/js@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-16.5.0.tgz#59685c77fbe3d092c0ca3a5df0230ccc8cc24513" - integrity sha512-phWuClgKKVXUFk3TXvJQFIDrsoeZXa0j8+vccLMgdOKhjJ5P/33UAMCn7Vp47iRYJbQsbMbzDtoT4bR3sKnvWw== +"@nrwl/js@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-16.4.3.tgz#2f0d7c824a4abe6d55912c0e4abcc18a390aab25" + integrity sha512-hA26y1aZfnjIJVlVtEMdK8BFFtKTZVZ6VWOgtUhCMmbtxpE4tpTssRItzq5dkQi9Et/dry8ClWqRWPqlW7LqxQ== dependencies: - "@nx/js" "16.5.0" + "@nx/js" "16.4.3" "@nrwl/nx-cloud@16.0.5": version "16.0.5" @@ -4729,19 +4729,19 @@ dependencies: nx "16.3.2" -"@nrwl/tao@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.5.0.tgz#dc855c6490e640927f2188fbb3c496aec0112b6c" - integrity sha512-lY/XV2n7iulHY77Uakt3Epa9m/NG7oTSN196baLjFykxUvLJI47PMX5qytugHkS8JLdcAB5p0qGsrQSHoi6jvg== +"@nrwl/tao@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-16.4.3.tgz#8a72e8c1c903d8d7e1d9a298c28f03a000a925d8" + integrity sha512-h+/UdXtdVuH9K2+Rx1HK5AHXGtgXNIqdLIH1KRL+74fiQ+JNO2Xuz9wqiD+rZ5tmtL/4hZpePCMkTz2FusKvbA== dependencies: - nx "16.5.0" + nx "16.4.3" -"@nrwl/workspace@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-16.5.0.tgz#7f75e9548d5803baee7ab76e30fc6a10e6af1e4a" - integrity sha512-uEiCSYgD7YhyDAjNUhGbLDJ82o496dwK6gCr8/3+9gQqrkkjOQoCO7Rt6gBRsJEQIdwYz8CR+bl3K9cFyErsYw== +"@nrwl/workspace@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-16.4.3.tgz#5d8bd06d2d1650318237dd9eb786e6695ebe7802" + integrity sha512-8FKqGgB8IFeMebCZeaD2Ta0/wSqWMFEX0FWCj1piuJNosgfImdQZUgYfLorsAjyR69GBP+59OkmsxDClZcCPMw== dependencies: - "@nx/workspace" "16.5.0" + "@nx/workspace" "16.4.3" "@nx/devkit@16.2.2", "@nx/devkit@>=16.1.3 < 17": version "16.2.2" @@ -4755,22 +4755,22 @@ tmp "~0.2.1" tslib "^2.3.0" -"@nx/devkit@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.5.0.tgz#aacb35a0a4b151e251691469fcf836c0506d4f15" - integrity sha512-IfGGKwgOBZshgRtL0V0IOuTaW8mnuSFft708fQfRyw8ArpNeyJbdbIvd9lCsHAFaKE5VTIKug4C48tyQikM7eA== +"@nx/devkit@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-16.4.3.tgz#a5e691f1fd49b5b0d8bb0a4347b3501b11e33056" + integrity sha512-5LHtia3Ioy4uwWDIpnCbslFwxNdRJ2cWWmzq4oDINZnUMzNsjatVowKkOUBeG4Xh++6Dvui/VSdKZ6J0MUoQzw== dependencies: - "@nrwl/devkit" "16.5.0" + "@nrwl/devkit" "16.4.3" ejs "^3.1.7" ignore "^5.0.4" semver "7.5.3" tmp "~0.2.1" tslib "^2.3.0" -"@nx/js@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/js/-/js-16.5.0.tgz#638ee27f26e81337e91f051220d0aa2fcbde1dd6" - integrity sha512-lOx/edPm6iNGeUUHDGcG+LwHgLKgftfIjdy+bfOlqm2W9yl5tc6vw5+G5XBiFr2wA5nZeKiz4sTw88QzTA/z0A== +"@nx/js@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/js/-/js-16.4.3.tgz#3d5aa519cd5f769c69a14b1c6418ab2bb43de519" + integrity sha512-0Uia5j+BOybXN0Fpfl1729m+bot+6g0tKKR3WLh715QCuXoKPtprTYgp/GEi+dUCUNrmHzCAduztMvsH0RY9Kw== dependencies: "@babel/core" "^7.15.0" "@babel/plugin-proposal-class-properties" "^7.14.5" @@ -4779,9 +4779,9 @@ "@babel/preset-env" "^7.15.0" "@babel/preset-typescript" "^7.15.0" "@babel/runtime" "^7.14.8" - "@nrwl/js" "16.5.0" - "@nx/devkit" "16.5.0" - "@nx/workspace" "16.5.0" + "@nrwl/js" "16.4.3" + "@nx/devkit" "16.4.3" + "@nx/workspace" "16.4.3" "@phenomnomnominal/tsquery" "~5.0.1" babel-plugin-const-enum "^1.0.1" babel-plugin-macros "^2.8.0" @@ -4802,108 +4802,108 @@ resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.3.2.tgz#83b6e78b27d2d7da8f7626560f52070c8735d28a" integrity sha512-YfYVNfsJBzBcBnJUU4AcA6A4QMkgnVlETfp4KGL36Otq542mRY1ISGHdox63ocI5AKh5gay5AaGcR4wR9PU9Vg== -"@nx/nx-darwin-arm64@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.5.0.tgz#c9631c6c62148b34d13e74c61e2270b4fd515109" - integrity sha512-0+5FH3ot5o0lpL0OKD4fO2n0a6LqLxr0LwU2VYxaAR1GLzOeVE5W3jBWY9ztOE+ktm8mGaZsdIIOQ77Iz/xwsQ== +"@nx/nx-darwin-arm64@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.4.3.tgz#08e63921c4e4dfc9eb9da612140c62ca8c190059" + integrity sha512-iVr3KTHXqGWx34mLxKjdDT1m6px9NME7zqSoKZW9DQuxDt3G7NN4PkK6+n2YqVNNSOmYml/Oo5iVtQ2TUCJDFA== "@nx/nx-darwin-x64@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.3.2.tgz#0ae2a64356542c5fb73ca8038ce10ec4512e7fcb" integrity sha512-bJtpozz0zSRVRrcQ76GrlT3TWEGTymLYWrVG51bH5KZ46t6/a4EQBI3uL3vubMmOZ0jR4ywybOcPBBhxmBJ68w== -"@nx/nx-darwin-x64@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.5.0.tgz#d9efa60329856f13b96fea55488ffd1f105ed988" - integrity sha512-yziX2oXUSyOPOcRLmFMRsNs0eBVla5IGjAKqpY4OXAPBuyrOfgsW5ztj0PQM34gvqipXtTlN04Xt/U0jzQLudA== +"@nx/nx-darwin-x64@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-16.4.3.tgz#e1e591f38bd103cf110487bd8c35daf17f8636c7" + integrity sha512-Km1N7Rek4VZW9rFMpV/gwmW0YHCoeV/5/tbYOYjSPJY6n2GB/vVoqE1DTf69muIk32436aK+qYRpd98bXC8GKg== "@nx/nx-freebsd-x64@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.3.2.tgz#202adf4d6070f47ed46450f006ecd50851147c74" integrity sha512-ZvufI0bWqT67nLbBo6ejrIGxypdoedRQTP/tudWbs/4isvxLe1uVku1BfKCTQUsJG367SqNOU1H5kzI/MRr3ow== -"@nx/nx-freebsd-x64@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.5.0.tgz#73c5c2f50302087a7b98855c9a8d3564aed5c75f" - integrity sha512-hwIRRMyWrT2R4ozp6yXRNR1fwcclBlkkIQ51/1IzINPQxynMguuOvNZaJFD4OuZIDmI526++GmogPZc0aMzwkg== +"@nx/nx-freebsd-x64@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.4.3.tgz#dc7fd8dbb87d7eb613b3f7302b0e3cba233277fd" + integrity sha512-i6gc7oiDekYY2DS20COoeIrUqSQt0A3V+xUbrMGTInbHMux8QlfY5LGPRHGzqRlvnmUbrpgN0TdwBB9KOgaWmw== "@nx/nx-linux-arm-gnueabihf@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.3.2.tgz#62314a82566e3647866b9dd4167a2d0e1397f001" integrity sha512-IQL4kxdiZLvifar7+SIum3glRuVsxtE0dL8RvteSDXrxDQnaTUrjILC+VGhalRmk7ngBbGKNrhWOeeL7390CzQ== -"@nx/nx-linux-arm-gnueabihf@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.5.0.tgz#4e1cb9d8294ef6cc5d380d6e23421ba1c16f18c9" - integrity sha512-BEWLpBhJ2AcZNDsiExLDcM9kmQ4+E+0YUcOsrAeX1s5D4HXXVtHMdTmOucKs4NNFqMuJ2Cf3ZzqmAIkRug0beA== +"@nx/nx-linux-arm-gnueabihf@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.4.3.tgz#5a2aa53297eff9b3d0cef5b0280d67400e61e80d" + integrity sha512-hozcDrzbv3X0oWYYbJfSybVmKviko78wjjxvdwYS2H9eqNN6sNBZ5+LL+duUazCeGGHj1fRipvb9E3rJxiKWEw== "@nx/nx-linux-arm64-gnu@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.3.2.tgz#02826400aa55b8f44bac83332dd29647d0e95001" integrity sha512-f6AWgPVu3mfUEoOBa0rY2/7QY0Or9eR0KtLFpcPh7RUpxPw2EXzIbjD/0RGipdpspSrgiMKbZpsUjo6mXBFsQA== -"@nx/nx-linux-arm64-gnu@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.5.0.tgz#763d62a5a56b39bbdf75d39afce3369b6c2fd276" - integrity sha512-EWmTbDLbBIjM/OJ594hoFKsEka/b8jM6NehL37mlIXL6fixUEA8LlO0MfUQ+kIPg79nWIujzulkIEhYFDWM1WA== +"@nx/nx-linux-arm64-gnu@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.4.3.tgz#2129426f8258e193f9997adafcda570e23d94435" + integrity sha512-LrlSKCZtFl8TiIFuLjkSNN/yzQ8phZ6+0jgsuumrIE8t02y+WLcZ4dSGlCo4nwVX/MDCtTbc9LPI+rIoBvO/pQ== "@nx/nx-linux-arm64-musl@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.3.2.tgz#a0a81520e0904aa026a7ab0a8a3bf3facec9f14c" integrity sha512-AvrWcYz7021E3b5P9/0i26p60XMZfw86Epks51L6AhlflarlOH4AcEChc7APMtb1ELAIbDWx2S6oIDRbQ7rtVA== -"@nx/nx-linux-arm64-musl@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.5.0.tgz#a05af4368c9cd538186ff1ea0503c87bbf00e092" - integrity sha512-np/7+HEtEEvtu4zo3GBBPtTG8IP++vvH3o8VXpAB9eD4Jctz3rYzbfMc7GtLZkz8LCmCsjzqnrNtmcmoaRbomQ== +"@nx/nx-linux-arm64-musl@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.4.3.tgz#0285f71f94b5a2eb40f15033457f937e0362770d" + integrity sha512-3ahS0k330T339FdVBQhr3EGrghAaezqdVpbOwG2pyiZRwvLVgnDkPF/d4EkGd3ZAsOLazcPkPH/fKxPPf8HP2g== "@nx/nx-linux-x64-gnu@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.3.2.tgz#e79b5c142ec8d9bfb458ea5803bc4b62abbcf296" integrity sha512-K2pWGAcbCNm6b7UZI9cc8z4Rb540QcuepBXD7akjPjWerzXriT6VCn4i9mVKsCg2mwSfknTJJVJ1PZwJSmTl/Q== -"@nx/nx-linux-x64-gnu@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.5.0.tgz#bc6fb6da02755ce4f48bd25418fe227751f6d938" - integrity sha512-iLOwgAaa1BHPLFhkBVi7GLAf6LfdYuv/R2rxlqq4d6fhv4Eq91Wo08LsqbFds+LpMN0CA+W/QMc3w9IIS/MPrA== +"@nx/nx-linux-x64-gnu@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.4.3.tgz#defea39bbd5f494c28369bd403f909d5ec905ac0" + integrity sha512-Nbo+FLBYZRhJUB367Eg9f0mH7Q+X67H+QAF+wU2oK3StSGQNQbLnr7Q0yfmX912WdYDe7gWhEpqWTLZ7rv65mg== "@nx/nx-linux-x64-musl@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.3.2.tgz#900aee8f171638b9fb44378e2ac0548cb4aa99a7" integrity sha512-sY1QDuQlqyYiRPJZanrtV07tU0DOXiCrWb0pDsGiO0qHuUSmW5Vw17GWEY4z3rt0/5U8fJ+/9WQrneviOmsOKg== -"@nx/nx-linux-x64-musl@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.5.0.tgz#88b7016056e8547c6ec4f89b932fafe3551352ca" - integrity sha512-UE3tpgli7a08AsRaw/o1BUXnFOxICGzcYj1aglHBh6urVeUHK0aNt11djZcQ6ETgPgcjoGdwr7RqpANGnJQH9g== +"@nx/nx-linux-x64-musl@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.4.3.tgz#c78db85f3234d2b899c7acaa7b5e2ef2c8591eb6" + integrity sha512-RG31ewe3GRmwSMBgWF0yeJ1zu8s42xywpwK8swgGHpUp+Z6JN8dkUqi7UfHGbjeaOIDg4w45/7OJyrE7dlqHCg== "@nx/nx-win32-arm64-msvc@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.3.2.tgz#88db772b3535648e147b1a0206b1a1fe875fa9a5" integrity sha512-wBfohT2hjrLKn9WFHvG0MFVk7uYhgYNiptnTLdTouziHgFyZ08vyl7XYBq55BwHPMQ5iswVoEfjn/5ZBfCPscg== -"@nx/nx-win32-arm64-msvc@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.5.0.tgz#e4f80fa4b89d73c8d9e072cdc898563c1099f609" - integrity sha512-u9cNKP8zrNIdeyaK5LHX+Zh+rkadE8tSE+vNulphCLhGuXJRpjaVY1juq9UQEo41NJQE6DuWWk2fnj4gALWugQ== +"@nx/nx-win32-arm64-msvc@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.4.3.tgz#d131273e8267eb98a7640f79a94049b5f12d572e" + integrity sha512-5HXY8S0vGUculndAhWqBrqkrQxY6M3v3Ac/3rr8O238JkdkhRiHilnGbwS2MIQpU7dou3wROO6wKT7+TyFv+cA== "@nx/nx-win32-x64-msvc@16.3.2": version "16.3.2" resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.3.2.tgz#2195faaf1fc465c7a89bfdd62323fdd2a5d91f15" integrity sha512-QC0sWrfQm0/WdvvM//7UAgm+otbak6bznZ0zawTeqmLBh1hLjNeweyzSVKQEtZtlzDMKpzCVuuwkJq+VKBLvmw== -"@nx/nx-win32-x64-msvc@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.5.0.tgz#75f1822d3e3cd8a4eda4813d814dc2d17c3089d4" - integrity sha512-E9109SAYNZXqCeWikZXyxNd7SZnCbdKGvqtQktS7dedHGwOmgIWfJ6bsvA7s2zHr09THQKJ4+7U1tDkWVNR9cg== +"@nx/nx-win32-x64-msvc@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.4.3.tgz#cc8d87dbada3965b3156440277951b742b6c0de3" + integrity sha512-9vdA5t5xuWCQ9JFJZFjzYGz9w5wtZ7zfKcx2HdBvg2nDWUzK5Z3khwsakTSsc7Ff7Hnd0i0l5T3Ls6Hk42Haww== -"@nx/workspace@16.5.0": - version "16.5.0" - resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-16.5.0.tgz#a587898fb46e9e2dddb8b290edb59c54bfda9759" - integrity sha512-0qHtCH4HxOIgH4KdWt892wxpIsNWU18WglAFNuq1yDrb2wZWVzHPO9PEBC/FOl0/Ol3/Mbey5q2trRVHMuwEUQ== +"@nx/workspace@16.4.3": + version "16.4.3" + resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-16.4.3.tgz#0466ba261511bdbd41afedfe51ee002e6dee8f86" + integrity sha512-vgZo4ywYhRheFA2xUzf6Jt00tJ4B2iYFRqFCw4bNDOrn01wnpDUcMof4M0VE3P0OHMKktygDxuARzO20tGMRQQ== dependencies: - "@nrwl/workspace" "16.5.0" - "@nx/devkit" "16.5.0" + "@nrwl/workspace" "16.4.3" + "@nx/devkit" "16.4.3" "@parcel/watcher" "2.0.4" chalk "^4.1.0" chokidar "^3.5.1" @@ -4915,7 +4915,7 @@ ignore "^5.0.4" minimatch "3.0.5" npm-run-path "^4.0.1" - nx "16.5.0" + nx "16.4.3" open "^8.4.0" rxjs "^7.8.0" tmp "~0.2.1" @@ -19855,12 +19855,12 @@ nx@16.3.2, "nx@>=16.1.3 < 17": "@nx/nx-win32-arm64-msvc" "16.3.2" "@nx/nx-win32-x64-msvc" "16.3.2" -nx@16.5.0: - version "16.5.0" - resolved "https://registry.yarnpkg.com/nx/-/nx-16.5.0.tgz#eb6551586a068ef289430b0830dd3851ec4eeb4b" - integrity sha512-X95atskaF1ejrF+C80mC4SwFPq0G/yFvxhfeWpPjKj7vUJEy1nZ4SjqlNVMORdN8dKQTE6ss76cIJux3fE7EXw== +nx@16.4.3: + version "16.4.3" + resolved "https://registry.yarnpkg.com/nx/-/nx-16.4.3.tgz#0bd8e408eeb9f09f9fca334689bf3d13f361254f" + integrity sha512-bq3wc7WI/j/mmz4MbrhDVE+DLJ6ywvmAoUjxNRcVAhPi+rT7bDaztVZceDbxxVFW55wfOIjcYwhS9fGQMSBBpQ== dependencies: - "@nrwl/tao" "16.5.0" + "@nrwl/tao" "16.4.3" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" @@ -19895,16 +19895,16 @@ nx@16.5.0: yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "16.5.0" - "@nx/nx-darwin-x64" "16.5.0" - "@nx/nx-freebsd-x64" "16.5.0" - "@nx/nx-linux-arm-gnueabihf" "16.5.0" - "@nx/nx-linux-arm64-gnu" "16.5.0" - "@nx/nx-linux-arm64-musl" "16.5.0" - "@nx/nx-linux-x64-gnu" "16.5.0" - "@nx/nx-linux-x64-musl" "16.5.0" - "@nx/nx-win32-arm64-msvc" "16.5.0" - "@nx/nx-win32-x64-msvc" "16.5.0" + "@nx/nx-darwin-arm64" "16.4.3" + "@nx/nx-darwin-x64" "16.4.3" + "@nx/nx-freebsd-x64" "16.4.3" + "@nx/nx-linux-arm-gnueabihf" "16.4.3" + "@nx/nx-linux-arm64-gnu" "16.4.3" + "@nx/nx-linux-arm64-musl" "16.4.3" + "@nx/nx-linux-x64-gnu" "16.4.3" + "@nx/nx-linux-x64-musl" "16.4.3" + "@nx/nx-win32-arm64-msvc" "16.4.3" + "@nx/nx-win32-x64-msvc" "16.4.3" oauth-sign@~0.9.0: version "0.9.0" From fb35d52ac98ee880a41e79f6e5c929ff5c898a49 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Mon, 10 Jul 2023 11:23:29 +0100 Subject: [PATCH 068/122] Add temporary tooltip to help creating the first row in grids --- packages/bbui/src/Tooltip/AbsTooltip.svelte | 8 +++-- .../src/components/grid/layout/NewRow.svelte | 31 ++++++++++++------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/packages/bbui/src/Tooltip/AbsTooltip.svelte b/packages/bbui/src/Tooltip/AbsTooltip.svelte index 3a2c035615..9be7251445 100644 --- a/packages/bbui/src/Tooltip/AbsTooltip.svelte +++ b/packages/bbui/src/Tooltip/AbsTooltip.svelte @@ -27,8 +27,8 @@ let wrapper let hovered = false - let left = 0 - let top = 0 + let left + let top let visible = false let timeout let interval @@ -48,6 +48,8 @@ const updateTooltipPosition = () => { const node = wrapper?.children?.[0] if (!node) { + left = null + top = null return } const bounds = node.getBoundingClientRect() @@ -98,7 +100,7 @@
      -{#if visible && text} +{#if visible && text && left != null && top != null} import { getContext, onDestroy, onMount, tick } from "svelte" - import { Icon, Button } from "@budibase/bbui" + import { Icon, Button, TempTooltip, TooltipType } from "@budibase/bbui" import GridScrollWrapper from "./GridScrollWrapper.svelte" import DataCell from "../cells/DataCell.svelte" import { fade } from "svelte/transition" @@ -27,6 +27,8 @@ rowVerticalInversionIndex, columnHorizontalInversionIndex, selectedRows, + config, + canAddRows, } = getContext("grid") let visible = false @@ -39,6 +41,7 @@ $: $tableId, (visible = false) $: invertY = shouldInvertY(offset, $rowVerticalInversionIndex, $renderedRows) $: selectedRowCount = Object.values($selectedRows).length + $: hasNoRows = !$rows.length const shouldInvertY = (offset, inversionIndex, rows) => { if (offset === 0) { @@ -146,16 +149,22 @@ -{#if !visible && !selectedRowCount} -
      dispatch("add-row-inline")} - transition:fade|local={{ duration: 130 }} - class:offset={!$stickyColumn} - > - -
      -{/if} + + {#if !visible && !selectedRowCount && $canAddRows} +
      dispatch("add-row-inline")} + transition:fade|local={{ duration: 130 }} + class:offset={!$stickyColumn} + > + +
      + {/if} +
      {#if visible} From b25c1b7f0c81376becb3e73977e8cc22a731519f Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Mon, 10 Jul 2023 10:47:11 +0000 Subject: [PATCH 069/122] Bump version to 2.8.3-alpha.2 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 141b8203ca..08130364bd 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.3-alpha.1", + "version": "2.8.3-alpha.2", "npmClient": "yarn", "packages": [ "packages/*" From ca375b7c39efe3d5a987ccbfbfd2b4e118bb1130 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Mon, 10 Jul 2023 11:51:07 +0100 Subject: [PATCH 070/122] Lint --- .../src/components/common/NavItem.svelte | 36 ------------------- .../src/components/grid/layout/NewRow.svelte | 4 +-- 2 files changed, 2 insertions(+), 38 deletions(-) diff --git a/packages/builder/src/components/common/NavItem.svelte b/packages/builder/src/components/common/NavItem.svelte index 468f60b9f7..6f87c8c362 100644 --- a/packages/builder/src/components/common/NavItem.svelte +++ b/packages/builder/src/components/common/NavItem.svelte @@ -2,7 +2,6 @@ import { Icon } from "@budibase/bbui" import { createEventDispatcher, getContext } from "svelte" import { helpers } from "@budibase/shared-core" - import { UserAvatar } from "@budibase/frontend-core" import UserAvatars from "../../pages/builder/app/[application]/_components/UserAvatars.svelte" export let icon @@ -119,10 +118,6 @@
      {/if}
      - - - -
      From 2585b73723be8a22d3b10950eb41849793c96fde Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 10 Jul 2023 16:52:26 +0200 Subject: [PATCH 092/122] Use native history --- packages/backend-core/src/logging/system.ts | 35 ++++++++++++++------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/packages/backend-core/src/logging/system.ts b/packages/backend-core/src/logging/system.ts index 98f2b155a5..d5d19018c7 100644 --- a/packages/backend-core/src/logging/system.ts +++ b/packages/backend-core/src/logging/system.ts @@ -5,28 +5,41 @@ import * as rfs from "rotating-file-stream" import env from "../environment" import { budibaseTempDir } from "../objectStore" -const logsFileName = path.join(budibaseTempDir(), `budibase.logs`) -const rollingFileName = `${logsFileName}.bak` +const logsFileName = `budibase.logs` +const budibaseLogsHistoryFileName = "budibase-logs-history.txt" + +const logsPath = path.join(budibaseTempDir(), "systemlogs") + +function getFullPath(fileName: string) { + return path.join(logsPath, fileName) +} export function localFileDestination() { const outFile = rfs.createStream(logsFileName, { size: env.ROLLING_LOG_MAX_SIZE, - }) - - outFile.on("rotation", () => { - fs.copyFileSync(logsFileName, rollingFileName) + path: logsPath, + maxFiles: 1, + immutable: true, + history: "budibase-logs-history.txt", + initialRotation: false, }) return outFile } export function getLogReadStream() { - const logsContent = fs.readFileSync(logsFileName) - if (!fs.existsSync(rollingFileName)) { - return logsContent + const streams = [] + const historyFile = getFullPath(budibaseLogsHistoryFileName) + if (fs.existsSync(historyFile)) { + const fileContent = fs.readFileSync(historyFile, "utf-8") + const historyFiles = fileContent.split("\n") + for (const historyFile of historyFiles.filter(x => x)) { + streams.push(fs.readFileSync(historyFile)) + } } - const rollingContent = fs.readFileSync(rollingFileName) - const combinedContent = Buffer.concat([rollingContent, logsContent]) + streams.push(fs.readFileSync(getFullPath(logsFileName))) + + const combinedContent = Buffer.concat(streams) return combinedContent } From e0c0e9bd65f21748a62975da2c8798490060043d Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 10 Jul 2023 17:17:45 +0200 Subject: [PATCH 093/122] Clean --- packages/backend-core/src/logging/system.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-core/src/logging/system.ts b/packages/backend-core/src/logging/system.ts index d5d19018c7..5f9faa9163 100644 --- a/packages/backend-core/src/logging/system.ts +++ b/packages/backend-core/src/logging/system.ts @@ -20,7 +20,7 @@ export function localFileDestination() { path: logsPath, maxFiles: 1, immutable: true, - history: "budibase-logs-history.txt", + history: budibaseLogsHistoryFileName, initialRotation: false, }) From 6bd41574850531faac407b450e97a9aec979354d Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 10 Jul 2023 17:45:45 +0200 Subject: [PATCH 094/122] Clean --- .../src/pages/builder/portal/account/systemLogs/index.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/builder/src/pages/builder/portal/account/systemLogs/index.svelte b/packages/builder/src/pages/builder/portal/account/systemLogs/index.svelte index 228fc31a6c..0a59075220 100644 --- a/packages/builder/src/pages/builder/portal/account/systemLogs/index.svelte +++ b/packages/builder/src/pages/builder/portal/account/systemLogs/index.svelte @@ -23,7 +23,7 @@ From 911a352844f9c1dc79447ce646b53ae50c178f90 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 11 Jul 2023 12:14:56 +0200 Subject: [PATCH 101/122] Remove autocolumns on creation --- .../modals/CreateTableModal.svelte | 66 +------------------ 1 file changed, 3 insertions(+), 63 deletions(-) diff --git a/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte b/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte index bfca91afaa..d13a7c30db 100644 --- a/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte +++ b/packages/builder/src/components/backend/TableNavigator/modals/CreateTableModal.svelte @@ -2,21 +2,13 @@ import { goto, url } from "@roxi/routify" import { tables } from "stores/backend" import { notifications } from "@budibase/bbui" - import { - Input, - Label, - ModalContent, - Toggle, - Divider, - Layout, - } from "@budibase/bbui" + import { Input, Label, ModalContent, Layout } from "@budibase/bbui" import { datasources } from "stores/backend" import TableDataImport from "../TableDataImport.svelte" import { BUDIBASE_INTERNAL_DB_ID, BUDIBASE_DATASOURCE_TYPE, } from "constants/backend" - import { buildAutoColumn, getAutoColumnInformation } from "builderStore/utils" $: tableNames = $tables.list.map(table => table.name) $: selectedSource = $datasources.list.find( @@ -43,28 +35,12 @@ } let error = "" - let autoColumns = getAutoColumnInformation() + let schema = {} let rows = [] let allValid = true let displayColumn = null - function getAutoColumns() { - const selectedAutoColumns = {} - - Object.entries(autoColumns).forEach(([subtype, column]) => { - if (column.enabled) { - selectedAutoColumns[column.name] = buildAutoColumn( - name, - column.name, - subtype - ) - } - }) - - return selectedAutoColumns - } - function checkValid(evt) { const tableName = evt.target.value if (tableNames.includes(tableName)) { @@ -77,7 +53,7 @@ async function saveTable() { let newTable = { name, - schema: { ...schema, ...getAutoColumns() }, + schema: { ...schema }, rows, type: "internal", sourceId: targetDatasourceId, @@ -118,21 +94,6 @@ bind:value={name} {error} /> -
      - -
      -
      - - - -
      -
      - - -
      -
      - -
      - - From 83f7b28fdd0990963e718a461ed14a4c0857e50e Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 11 Jul 2023 11:17:11 +0100 Subject: [PATCH 102/122] Update field configuration setting to be full width and show number of fields --- .../FieldConfiguration.svelte | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte index 2778ce4f74..f9dccf586c 100644 --- a/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte +++ b/packages/builder/src/components/design/settings/controls/FieldConfiguration/FieldConfiguration.svelte @@ -12,25 +12,36 @@ export let componentInstance export let value = [] - const convertOldColumnFormat = oldColumns => { - if (typeof oldColumns?.[0] === "string") { - value = oldColumns.map(field => ({ name: field, displayName: field })) - } - } - - $: convertOldColumnFormat(value) - const dispatch = createEventDispatcher() let drawer let boundValue + $: text = getText(value) + $: convertOldColumnFormat(value) $: datasource = getDatasourceForProvider($currentAsset, componentInstance) $: schema = getSchema($currentAsset, datasource) $: options = Object.keys(schema || {}) $: sanitisedValue = getValidColumns(value, options) $: updateBoundValue(sanitisedValue) + const getText = value => { + if (!value?.length) { + return "All fields" + } + let text = `${value.length} field` + if (value.length !== 1) { + text += "s" + } + return text + } + + const convertOldColumnFormat = oldColumns => { + if (typeof oldColumns?.[0] === "string") { + value = oldColumns.map(field => ({ name: field, displayName: field })) + } + } + const getSchema = (asset, datasource) => { const schema = getSchemaForDatasource(asset, datasource).schema @@ -75,7 +86,10 @@ } -Configure fields +
      + {text} +
      + Configure the fields in your form. @@ -83,3 +97,9 @@ + + From 6ffdd49b8e5538c5ade92944dce0e0185627862a Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Jul 2023 10:25:29 +0000 Subject: [PATCH 103/122] Bump version to 2.8.6-alpha.1 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 4d129626b6..422eb36427 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.6-alpha.0", + "version": "2.8.6-alpha.1", "npmClient": "yarn", "packages": [ "packages/*" From 653e21a45b5ddb0ccb803ec721a3b53131787be1 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Jul 2023 10:26:15 +0000 Subject: [PATCH 104/122] Bump version to 2.8.6-alpha.2 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 422eb36427..baede3fbc4 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.6-alpha.1", + "version": "2.8.6-alpha.2", "npmClient": "yarn", "packages": [ "packages/*" From 6e2a8e0ab958652da7809fc59140e60d63213246 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 11 Jul 2023 13:09:51 +0200 Subject: [PATCH 105/122] Rename .log extensions --- packages/backend-core/src/logging/system.ts | 2 +- packages/worker/src/api/controllers/system/logs.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend-core/src/logging/system.ts b/packages/backend-core/src/logging/system.ts index 5f9faa9163..76f6ad1098 100644 --- a/packages/backend-core/src/logging/system.ts +++ b/packages/backend-core/src/logging/system.ts @@ -5,7 +5,7 @@ import * as rfs from "rotating-file-stream" import env from "../environment" import { budibaseTempDir } from "../objectStore" -const logsFileName = `budibase.logs` +const logsFileName = `budibase.log` const budibaseLogsHistoryFileName = "budibase-logs-history.txt" const logsPath = path.join(budibaseTempDir(), "systemlogs") diff --git a/packages/worker/src/api/controllers/system/logs.ts b/packages/worker/src/api/controllers/system/logs.ts index f3b9438723..a5607d545a 100644 --- a/packages/worker/src/api/controllers/system/logs.ts +++ b/packages/worker/src/api/controllers/system/logs.ts @@ -6,7 +6,7 @@ export async function getLogs(ctx: UserCtx) { const { installId } = await installation.getInstall() - const fileName = `${installId}-${Date.now()}.logs` + const fileName = `${installId}-${Date.now()}.log` ctx.set("content-disposition", `attachment; filename=${fileName}`) ctx.body = logReadStream From b39a80f97c7c75ee1c16584e919460d4ffcad217 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Jul 2023 11:13:08 +0000 Subject: [PATCH 106/122] Bump version to 2.8.6-alpha.3 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index baede3fbc4..5a6d5d384e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.6-alpha.2", + "version": "2.8.6-alpha.3", "npmClient": "yarn", "packages": [ "packages/*" From dc73e57ba83d8e84d7a1ef0bbefff15189e174f3 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 11 Jul 2023 13:48:52 +0200 Subject: [PATCH 107/122] Respect max values --- packages/backend-core/src/environment.ts | 2 +- packages/backend-core/src/logging/system.ts | 40 +++++++++++- .../src/logging/tests/system.spec.ts | 61 +++++++++++++++++++ 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 packages/backend-core/src/logging/tests/system.spec.ts diff --git a/packages/backend-core/src/environment.ts b/packages/backend-core/src/environment.ts index 5a230f6925..a5a231fb27 100644 --- a/packages/backend-core/src/environment.ts +++ b/packages/backend-core/src/environment.ts @@ -168,7 +168,7 @@ const environment = { // @ts-ignore environment[key] = value }, - ROLLING_LOG_MAX_SIZE: process.env.ROLLING_LOG_MAX_SIZE || "100M", + ROLLING_LOG_MAX_SIZE: process.env.ROLLING_LOG_MAX_SIZE || "20M", } // clean up any environment variable edge cases diff --git a/packages/backend-core/src/logging/system.ts b/packages/backend-core/src/logging/system.ts index 76f6ad1098..9a32b69a9f 100644 --- a/packages/backend-core/src/logging/system.ts +++ b/packages/backend-core/src/logging/system.ts @@ -14,11 +14,47 @@ function getFullPath(fileName: string) { return path.join(logsPath, fileName) } +export function getSingleFileMaxSizeInfo(totalMaxSize: string) { + const regex = /(\d+)([A-Za-z])/ + const match = totalMaxSize?.match(regex) + if (!match) { + console.warn(`totalMaxSize does not have a valid value`, { + totalMaxSize, + }) + return undefined + } + + const size = +match[1] + const unit = match[2] + if (size === 1) { + switch (unit) { + case "B": + return { size: `${size}B`, totalHistoryFiles: 1 } + case "K": + return { size: `${(size * 1000) / 2}B`, totalHistoryFiles: 1 } + case "M": + return { size: `${(size * 1000) / 2}K`, totalHistoryFiles: 1 } + case "G": + return { size: `${(size * 1000) / 2}M`, totalHistoryFiles: 1 } + default: + return undefined + } + } + + if (size % 2 === 0) { + return { size: `${size / 2}${unit}`, totalHistoryFiles: 1 } + } + + return { size: `1${unit}`, totalHistoryFiles: size } +} + export function localFileDestination() { + const fileInfo = getSingleFileMaxSizeInfo(env.ROLLING_LOG_MAX_SIZE) const outFile = rfs.createStream(logsFileName, { - size: env.ROLLING_LOG_MAX_SIZE, + // As we have a rolling size, we want to half the max size + size: fileInfo?.size, path: logsPath, - maxFiles: 1, + maxFiles: fileInfo?.totalHistoryFiles || 1, immutable: true, history: budibaseLogsHistoryFileName, initialRotation: false, diff --git a/packages/backend-core/src/logging/tests/system.spec.ts b/packages/backend-core/src/logging/tests/system.spec.ts new file mode 100644 index 0000000000..f756d59e2b --- /dev/null +++ b/packages/backend-core/src/logging/tests/system.spec.ts @@ -0,0 +1,61 @@ +import { getSingleFileMaxSizeInfo } from "../system" + +describe("system", () => { + describe("getSingleFileMaxSizeInfo", () => { + it.each([ + ["100B", "50B"], + ["200K", "100K"], + ["20M", "10M"], + ["4G", "2G"], + ])( + "Halving even number (%s) returns halved size and 1 history file (%s)", + (totalValue, expectedMaxSize) => { + const result = getSingleFileMaxSizeInfo(totalValue) + expect(result).toEqual({ + size: expectedMaxSize, + totalHistoryFiles: 1, + }) + } + ) + + it.each([ + ["5B", "1B", 5], + ["17K", "1K", 17], + ["21M", "1M", 21], + ["3G", "1G", 3], + ])( + "Halving an odd number (%s) returns as many files as size (%s)", + (totalValue, expectedMaxSize, totalHistoryFiles) => { + const result = getSingleFileMaxSizeInfo(totalValue) + expect(result).toEqual({ + size: expectedMaxSize, + totalHistoryFiles, + }) + } + ) + + it.each([ + ["1B", "1B"], + ["1K", "500B"], + ["1M", "500K"], + ["1G", "500M"], + ])( + "Halving '%s' returns halved unit (%s)", + (totalValue, expectedMaxSize) => { + const result = getSingleFileMaxSizeInfo(totalValue) + expect(result).toEqual({ + size: expectedMaxSize, + totalHistoryFiles: 1, + }) + } + ) + + it.each([[undefined], [""], ["50"], ["wrongvalue"]])( + "Halving wrongly formatted value ('%s') returns undefined", + totalValue => { + const result = getSingleFileMaxSizeInfo(totalValue!) + expect(result).toBeUndefined() + } + ) + }) +}) From 2d27587d0c3a16369cab23acb88ff7c213893169 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 11 Jul 2023 14:01:42 +0200 Subject: [PATCH 108/122] Support even values --- packages/backend-core/src/logging/system.ts | 2 +- packages/backend-core/src/logging/tests/system.spec.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/backend-core/src/logging/system.ts b/packages/backend-core/src/logging/system.ts index 9a32b69a9f..d918c6efd6 100644 --- a/packages/backend-core/src/logging/system.ts +++ b/packages/backend-core/src/logging/system.ts @@ -45,7 +45,7 @@ export function getSingleFileMaxSizeInfo(totalMaxSize: string) { return { size: `${size / 2}${unit}`, totalHistoryFiles: 1 } } - return { size: `1${unit}`, totalHistoryFiles: size } + return { size: `1${unit}`, totalHistoryFiles: size - 1 } } export function localFileDestination() { diff --git a/packages/backend-core/src/logging/tests/system.spec.ts b/packages/backend-core/src/logging/tests/system.spec.ts index f756d59e2b..b84d8e8456 100644 --- a/packages/backend-core/src/logging/tests/system.spec.ts +++ b/packages/backend-core/src/logging/tests/system.spec.ts @@ -19,12 +19,12 @@ describe("system", () => { ) it.each([ - ["5B", "1B", 5], - ["17K", "1K", 17], - ["21M", "1M", 21], - ["3G", "1G", 3], + ["5B", "1B", 4], + ["17K", "1K", 16], + ["21M", "1M", 20], + ["3G", "1G", 2], ])( - "Halving an odd number (%s) returns as many files as size (%s)", + "Halving an odd number (%s) returns as many files as size (-1) (%s)", (totalValue, expectedMaxSize, totalHistoryFiles) => { const result = getSingleFileMaxSizeInfo(totalValue) expect(result).toEqual({ From 252ee9d27cc7532d9a2c50969e993f962619298b Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Tue, 11 Jul 2023 14:02:18 +0200 Subject: [PATCH 109/122] Dropping the default values --- packages/backend-core/src/environment.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-core/src/environment.ts b/packages/backend-core/src/environment.ts index a5a231fb27..5076b7569b 100644 --- a/packages/backend-core/src/environment.ts +++ b/packages/backend-core/src/environment.ts @@ -168,7 +168,7 @@ const environment = { // @ts-ignore environment[key] = value }, - ROLLING_LOG_MAX_SIZE: process.env.ROLLING_LOG_MAX_SIZE || "20M", + ROLLING_LOG_MAX_SIZE: process.env.ROLLING_LOG_MAX_SIZE || "10M", } // clean up any environment variable edge cases From 13debfc398ba27b3cb44b386be6789015888e198 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Tue, 11 Jul 2023 12:15:59 +0000 Subject: [PATCH 110/122] Bump version to 2.8.6-alpha.4 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 5a6d5d384e..2bc833e70a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.8.6-alpha.3", + "version": "2.8.6-alpha.4", "npmClient": "yarn", "packages": [ "packages/*" From 82a851dd36cb1a7d050004697a1f4464395f40d1 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 11 Jul 2023 13:38:17 +0100 Subject: [PATCH 111/122] Update text depending on whether the app already has screens --- .../pages/builder/app/[application]/design/new.svelte | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/builder/src/pages/builder/app/[application]/design/new.svelte b/packages/builder/src/pages/builder/app/[application]/design/new.svelte index 8b341ee2c4..13eaaeaf7e 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/new.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/new.svelte @@ -4,17 +4,19 @@ import blankImage from "./blank.png" import tableImage from "./table.png" import CreateScreenModal from "./_components/CreateScreenModal.svelte" - import { store as frontendStore } from "builderStore" + import { store } from "builderStore" import { goto } from "@roxi/routify" let createScreenModal + + $: hasScreens = $store.screens?.length
      0} - onClose={() => $goto(`./${$frontendStore.screens[0]._id}`)} - heading="Create your first screen" + showClose={$store.screens.length > 0} + onClose={() => $goto(`./${$store.screens[0]._id}`)} + heading={hasScreens ? "Create new screen" : "Create your first screen"} >
      Start from scratch or create screens from your data From 097406079296fc09eaac1f14b8f20000b600c59e Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 11 Jul 2023 13:41:26 +0100 Subject: [PATCH 112/122] Update screen role modal to use better text and title --- .../[application]/design/_components/ScreenRoleModal.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte b/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte index cde8047b97..5d73b7961c 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/_components/ScreenRoleModal.svelte @@ -40,14 +40,14 @@ - Select which level of access you want your screens to have + Select the level of access required to see these screens