From fabde1b7bf5b74cb289ff5fe05240078562c8fb9 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 14 Jan 2022 09:58:23 +0000 Subject: [PATCH 01/28] Fix issue where error was always reset when a component was re-registered --- .../src/components/app/forms/InnerForm.svelte | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/client/src/components/app/forms/InnerForm.svelte b/packages/client/src/components/app/forms/InnerForm.svelte index 47bc717d92..6c51a85f19 100644 --- a/packages/client/src/components/app/forms/InnerForm.svelte +++ b/packages/client/src/components/app/forms/InnerForm.svelte @@ -141,8 +141,18 @@ return } + // Create validation function based on field schema + const schemaConstraints = schema?.[field]?.constraints + const validator = createValidatorFromConstraints( + schemaConstraints, + validationRules, + field, + table + ) + // If we've already registered this field then keep some existing state let initialValue = deepGet(initialValues, field) ?? defaultValue + let initialError = null let fieldId = `id-${generateID()}` const existingField = getField(field) if (existingField) { @@ -156,20 +166,17 @@ } else { initialValue = fieldState.value ?? initialValue } + + // If this field has already been registered and we previously had an + // error set, then re-run the validator to see if we can unset it + if (fieldState.error) { + initialError = validator(initialValue) + } } // Auto columns are always disabled const isAutoColumn = !!schema?.[field]?.autocolumn - // Create validation function based on field schema - const schemaConstraints = schema?.[field]?.constraints - const validator = createValidatorFromConstraints( - schemaConstraints, - validationRules, - field, - table - ) - // Construct field info const fieldInfo = writable({ name: field, @@ -178,7 +185,7 @@ fieldState: { fieldId, value: initialValue, - error: null, + error: initialError, disabled: disabled || fieldDisabled || isAutoColumn, defaultValue, validator, @@ -254,6 +261,7 @@ // Update field state const error = validator ? validator(value) : null + console.log("value changed to", value, "new error is", error) fieldInfo.update(state => { state.fieldState.value = value state.fieldState.error = error From 407a0ce6a9a36f9dbc86880e55f2fa7b63eabeb2 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 14 Jan 2022 16:47:50 +0000 Subject: [PATCH 02/28] Remove log --- packages/client/src/components/app/forms/InnerForm.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/client/src/components/app/forms/InnerForm.svelte b/packages/client/src/components/app/forms/InnerForm.svelte index 6c51a85f19..c1e92bf442 100644 --- a/packages/client/src/components/app/forms/InnerForm.svelte +++ b/packages/client/src/components/app/forms/InnerForm.svelte @@ -261,7 +261,6 @@ // Update field state const error = validator ? validator(value) : null - console.log("value changed to", value, "new error is", error) fieldInfo.update(state => { state.fieldState.value = value state.fieldState.error = error From dd44c4e7e3559a35a51c8aa668e44664ea0cd053 Mon Sep 17 00:00:00 2001 From: Bastiaan Terhorst Date: Tue, 18 Jan 2022 15:04:40 +0100 Subject: [PATCH 03/28] Update MultiFieldSelect to accept a defaultValue This changes the multi select control to accept defaultValues. As these are passed in as strings (flattened arrays in the form of "1, 2, 3") they need to be split into an array to be accepted by the control. --- .../components/app/forms/MultiFieldSelect.svelte | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/client/src/components/app/forms/MultiFieldSelect.svelte b/packages/client/src/components/app/forms/MultiFieldSelect.svelte index cecc569b6f..06811f3e05 100644 --- a/packages/client/src/components/app/forms/MultiFieldSelect.svelte +++ b/packages/client/src/components/app/forms/MultiFieldSelect.svelte @@ -20,6 +20,7 @@ let fieldSchema $: flatOptions = optionsSource == null || optionsSource === "schema" + $: expandedValue = expand(fieldState?.value) $: options = getOptions( optionsSource, fieldSchema, @@ -28,6 +29,18 @@ valueColumn, customOptions ) + + const expand = values => { + if (!values) { + return [] + } + + if (Array.isArray(values)) { + return values + } + + return values.split(",") + } {#if fieldState} x : x => x.label} getOptionValue={flatOptions ? x => x : x => x.value} From ae44eca7645a8435cfe53cc132f2807f330d21a2 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 18 Jan 2022 15:24:42 +0000 Subject: [PATCH 04/28] Fixing issue #4064 - making it possible to delete JSON fields. --- .../DataTable/modals/JSONSchemaModal.svelte | 57 +++++++++++++------ 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte b/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte index a575d0c288..1d0266100b 100644 --- a/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte @@ -9,6 +9,7 @@ Select, Body, Layout, + ActionButton, } from "@budibase/bbui" import { onMount, createEventDispatcher } from "svelte" import { FIELDS } from "constants/backend" @@ -20,8 +21,8 @@ let dispatcher = createEventDispatcher() let mode = "Form" let fieldCount = 0 - let fieldKeys = {}, - fieldTypes = {} + let fieldKeys = [], + fieldTypes = [] let keyValueOptions = [ { label: "String", value: FIELDS.STRING.type }, { label: "Number", value: FIELDS.NUMBER.type }, @@ -50,27 +51,48 @@ if (!schema) { schema = {} } - let i = 0 - for (let [key, value] of Object.entries(schema)) { - fieldKeys[i] = key - fieldTypes[i] = value.type - i++ + // find the entries which aren't in the list + const schemaEntries = Object.entries(schema).filter( + ([key]) => !fieldKeys.includes(key) + ) + for (let [key, value] of schemaEntries) { + fieldKeys.push(key) + fieldTypes.push(value.type) } - fieldCount = i + fieldCount = fieldKeys.length } function saveSchema() { - for (let i of Object.keys(fieldKeys)) { - const key = fieldKeys[i] + const newSchema = {} + for (let [index, key] of fieldKeys.entries()) { // they were added to schema, rather than generated - if (!schema[key]) { - schema[key] = { - type: fieldTypes[i], - } + newSchema[key] = { + ...schema[key], + type: fieldTypes[index], } } + dispatcher("save", { schema: newSchema, json }) + schema = newSchema + } - dispatcher("save", { schema, json }) + function removeKey(index) { + const keyToRemove = fieldKeys[index] + if (fieldKeys[index + 1] != null) { + fieldKeys[index] = fieldKeys[index + 1] + fieldTypes[index] = fieldTypes[index + 1] + } + fieldKeys.splice(index, 1) + fieldTypes.splice(index, 1) + fieldCount-- + if (json) { + try { + const parsed = JSON.parse(json) + delete parsed[keyToRemove] + json = JSON.stringify(parsed, null, 2) + } catch (err) { + // json not valid, ignore + } + } } onMount(() => { @@ -97,6 +119,7 @@ getOptionValue={field => field.value} getOptionLabel={field => field.label} /> + removeKey(i)} /> {/each}
@@ -118,9 +141,9 @@ From 8b976bed52ca4e8e6ca8ae72f6713f6456e8b9f0 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 19 Jan 2022 11:22:27 +0000 Subject: [PATCH 11/28] Update log out handling to work better, and add support for navigating to a return URL --- packages/client/src/api/auth.js | 9 +++++++++ packages/client/src/stores/auth.js | 9 ++++++++- packages/client/src/stores/routes.js | 15 +++++++++++++-- packages/client/src/utils/buttonActions.js | 12 +++++++++++- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/packages/client/src/api/auth.js b/packages/client/src/api/auth.js index 68ca5dbc80..9ac09f5571 100644 --- a/packages/client/src/api/auth.js +++ b/packages/client/src/api/auth.js @@ -18,6 +18,15 @@ export const logIn = async ({ email, password }) => { }) } +/** + * Logs the user out and invaidates their session. + */ +export const logOut = async () => { + return await API.post({ + url: "/api/global/auth/logout", + }) +} + /** * Fetches the currently logged in user object */ diff --git a/packages/client/src/stores/auth.js b/packages/client/src/stores/auth.js index 1fa4ae17b0..f50f7a52c1 100644 --- a/packages/client/src/stores/auth.js +++ b/packages/client/src/stores/auth.js @@ -1,5 +1,6 @@ import * as API from "../api" import { writable } from "svelte/store" +import { initialise } from "./initialise.js" const createAuthStore = () => { const store = writable(null) @@ -11,8 +12,14 @@ const createAuthStore = () => { } const logOut = async () => { + try { + await API.logOut() + } catch (error) { + // Do nothing + } + + // Manually destroy cookie to be sure window.document.cookie = `budibase:auth=; budibase:currentapp=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;` - window.location = "/builder/auth/login" } return { diff --git a/packages/client/src/stores/routes.js b/packages/client/src/stores/routes.js index 1d5dca1645..d50677493b 100644 --- a/packages/client/src/stores/routes.js +++ b/packages/client/src/stores/routes.js @@ -18,8 +18,8 @@ const createRouteStore = () => { const fetchRoutes = async () => { const routeConfig = await API.fetchRoutes() let routes = [] - Object.values(routeConfig.routes).forEach(route => { - Object.entries(route.subpaths).forEach(([path, config]) => { + Object.values(routeConfig.routes || {}).forEach(route => { + Object.entries(route.subpaths || {}).forEach(([path, config]) => { routes.push({ path, screenId: config.screenId, @@ -83,12 +83,23 @@ const createRouteStore = () => { const setRouterLoaded = () => { store.update(state => ({ ...state, routerLoaded: true })) } + const createFullURL = relativeURL => { + if (!relativeURL?.startsWith("/")) { + return relativeURL + } + if (!window.location.href.includes("#")) { + return `${window.location.href}#${relativeURL}` + } + const base = window.location.href.split("#")[0] + return `${base}#${relativeURL}` + } return { subscribe: store.subscribe, actions: { fetchRoutes, navigate, + createFullURL, setRouteParams, setQueryParams, setActiveRoute, diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js index 6b4dd4235a..1ab3b26976 100644 --- a/packages/client/src/utils/buttonActions.js +++ b/packages/client/src/utils/buttonActions.js @@ -112,8 +112,18 @@ const refreshDataProviderHandler = async (action, context) => { ) } -const logoutHandler = async () => { +const logoutHandler = async action => { await authStore.actions.logOut() + let returnUrl = "/builder/auth/login" + let internal = false + if (action.parameters.returnUrl) { + internal = action.parameters.returnUrl?.startsWith("/") + returnUrl = routeStore.actions.createFullURL(action.parameters.returnUrl) + } + window.location.href = returnUrl + if (internal) { + window.location.reload() + } } const clearFormHandler = async (action, context) => { From 4e7d5e7d65133e8e25ddb6f6a1ac82dac180c206 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 19 Jan 2022 11:22:44 +0000 Subject: [PATCH 12/28] Fix server crash when trying to log out and already logged out --- packages/worker/src/api/controllers/global/auth.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/worker/src/api/controllers/global/auth.js b/packages/worker/src/api/controllers/global/auth.js index 2ba12194ca..44ee99aee7 100644 --- a/packages/worker/src/api/controllers/global/auth.js +++ b/packages/worker/src/api/controllers/global/auth.js @@ -141,7 +141,9 @@ exports.resetUpdate = async ctx => { } exports.logout = async ctx => { - await platformLogout({ ctx, userId: ctx.user._id }) + if (ctx.user && ctx.user._id) { + await platformLogout({ ctx, userId: ctx.user._id }) + } ctx.body = { message: "User logged out." } } From ca35a5b768da06b7d87bb5c433a3be13bc6c9354 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 19 Jan 2022 11:32:56 +0000 Subject: [PATCH 13/28] Lint --- packages/client/src/stores/auth.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/client/src/stores/auth.js b/packages/client/src/stores/auth.js index f50f7a52c1..9cd2613e24 100644 --- a/packages/client/src/stores/auth.js +++ b/packages/client/src/stores/auth.js @@ -1,6 +1,5 @@ import * as API from "../api" import { writable } from "svelte/store" -import { initialise } from "./initialise.js" const createAuthStore = () => { const store = writable(null) From da148952e7b32e9cab82f0bc52e74367b7e27378 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 19 Jan 2022 12:42:11 +0100 Subject: [PATCH 14/28] fix lint --- packages/builder/cypress/support/commands.js | 9 ++++---- .../support/queryLevelTransformerFunction.js | 13 ++++++------ .../queryLevelTransformerFunctionWithData.js | 21 ++++++++++--------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index 686d0ee9bf..e69bc8badc 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -430,13 +430,14 @@ Cypress.Commands.add("addDatasourceConfig", (datasource, skipFetch) => { // Click to fetch tables if (skipFetch) { cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Skip table fetch") + cy.get(".spectrum-Button") + .contains("Skip table fetch") .click({ force: true }) }) - } - else { + } else { cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Save and fetch tables") + cy.get(".spectrum-Button") + .contains("Save and fetch tables") .click({ force: true }) cy.wait(1000) }) diff --git a/packages/builder/cypress/support/queryLevelTransformerFunction.js b/packages/builder/cypress/support/queryLevelTransformerFunction.js index 0c099df1a0..213d2abc20 100644 --- a/packages/builder/cypress/support/queryLevelTransformerFunction.js +++ b/packages/builder/cypress/support/queryLevelTransformerFunction.js @@ -1,12 +1,13 @@ +// eslint-disable-next-line const breweries = data const totals = {} -for (let brewery of breweries) - {const state = brewery.state - if (totals[state] == null) - {totals[state] = 1 - } else - {totals[state]++ +for (let brewery of breweries) { + const state = brewery.state + if (totals[state] == null) { + totals[state] = 1 + } else { + totals[state]++ } } const entries = Object.entries(totals) diff --git a/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js b/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js index f7d9631ef9..3d4f6024d2 100644 --- a/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js +++ b/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js @@ -1,15 +1,16 @@ +// eslint-disable-next-line const breweries = data const totals = {} -for (let brewery of breweries) - {const state = brewery.state - if (totals[state] == null) - {totals[state] = 1 - } else - {totals[state]++ +for (let brewery of breweries) { + const state = brewery.state + if (totals[state] == null) { + totals[state] = 1 + } else { + totals[state]++ } } -const stateCodes = - {texas: "tx", +const stateCodes = { + texas: "tx", colorado: "co", florida: "fl", iwoa: "ia", @@ -24,7 +25,7 @@ const stateCodes = ohio: "oh", } const entries = Object.entries(totals) -return entries.map(([state, count]) => - {stateCodes[state.toLowerCase()] +return entries.map(([state, count]) => { + stateCodes[state.toLowerCase()] return { state, count, flag: "http://flags.ox3.in/svg/us/${stateCode}.svg" } }) From f456fbd68f18fb3c3f859c60b11d4006f399b003 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 19 Jan 2022 11:49:24 +0000 Subject: [PATCH 15/28] v1.0.44-alpha.2 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 4240dd788a..f7f5e3f11e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index f01880d87f..ebf402add6 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 9515461230..87651d5020 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 90b95c9b32..b6d08f0af2 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.1", - "@budibase/client": "^1.0.44-alpha.1", + "@budibase/bbui": "^1.0.44-alpha.2", + "@budibase/client": "^1.0.44-alpha.2", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.44-alpha.1", + "@budibase/string-templates": "^1.0.44-alpha.2", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 9c6acedfd0..2f3d93c85d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index 94eb8e9fc1..ec95f14790 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.1", + "@budibase/bbui": "^1.0.44-alpha.2", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.44-alpha.1", + "@budibase/string-templates": "^1.0.44-alpha.2", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index e05326f559..59694ad18b 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.44-alpha.1", - "@budibase/client": "^1.0.44-alpha.1", - "@budibase/string-templates": "^1.0.44-alpha.1", + "@budibase/backend-core": "^1.0.44-alpha.2", + "@budibase/client": "^1.0.44-alpha.2", + "@budibase/string-templates": "^1.0.44-alpha.2", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index fa8fd868e5..429e1f7b6b 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index a77c80ebc8..7d423b63ab 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.44-alpha.1", + "version": "1.0.44-alpha.2", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.44-alpha.1", - "@budibase/string-templates": "^1.0.44-alpha.1", + "@budibase/backend-core": "^1.0.44-alpha.2", + "@budibase/string-templates": "^1.0.44-alpha.2", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From d6bbe73db0faf81d248f4be2a442e9d3294d6978 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 19 Jan 2022 12:45:15 +0000 Subject: [PATCH 16/28] Update log out action text --- .../PropertyControls/ButtonActionEditor/actions/LogOut.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte index e36946ee0a..37dac8ebc0 100644 --- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte +++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte @@ -9,8 +9,8 @@
- Please enter what URL you would like to be redirected to after logging - out. If you dont' enter a value, you'll be redirected to the login screen. + Please enter the URL you would like to be redirected to after logging out. + If you don't enter a value, you'll be redirected to the login screen.
From e0a3911851fee45b13378ae6c42a3d939bdbb82f Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 19 Jan 2022 12:50:07 +0000 Subject: [PATCH 17/28] Rename return URL to redirect URL in log out action --- .../ButtonActionEditor/actions/LogOut.svelte | 6 +++--- packages/client/src/utils/buttonActions.js | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte index 37dac8ebc0..f0606d86b3 100644 --- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte +++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/ButtonActionEditor/actions/LogOut.svelte @@ -13,11 +13,11 @@ If you don't enter a value, you'll be redirected to the login screen.
- + (parameters.returnUrl = value.detail)} + value={parameters.redirectUrl} + on:change={value => (parameters.redirectUrl = value.detail)} {bindings} />
diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js index 1ab3b26976..2ef324d23c 100644 --- a/packages/client/src/utils/buttonActions.js +++ b/packages/client/src/utils/buttonActions.js @@ -114,13 +114,15 @@ const refreshDataProviderHandler = async (action, context) => { const logoutHandler = async action => { await authStore.actions.logOut() - let returnUrl = "/builder/auth/login" + let redirectUrl = "/builder/auth/login" let internal = false - if (action.parameters.returnUrl) { - internal = action.parameters.returnUrl?.startsWith("/") - returnUrl = routeStore.actions.createFullURL(action.parameters.returnUrl) + if (action.parameters.redirectUrl) { + internal = action.parameters.redirectUrl?.startsWith("/") + redirectUrl = routeStore.actions.createFullURL( + action.parameters.redirectUrl + ) } - window.location.href = returnUrl + window.location.href = redirectUrl if (internal) { window.location.reload() } From 079ca74f8ad3adf92bc6ae3e599b91a1b09951fd Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 19 Jan 2022 11:53:44 +0000 Subject: [PATCH 18/28] Making the worker tell the UI it is in production when running in Cypress. --- packages/worker/src/api/controllers/system/environment.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/worker/src/api/controllers/system/environment.js b/packages/worker/src/api/controllers/system/environment.js index b897fbd943..4edf1ff8d3 100644 --- a/packages/worker/src/api/controllers/system/environment.js +++ b/packages/worker/src/api/controllers/system/environment.js @@ -6,6 +6,7 @@ exports.fetch = async ctx => { cloud: !env.SELF_HOSTED, accountPortalUrl: env.ACCOUNT_PORTAL_URL, disableAccountPortal: env.DISABLE_ACCOUNT_PORTAL, - isDev: env.isDev(), + // in test need to pretend its in production for the UI (Cypress) + isDev: env.isDev() && !env.isTest(), } } From 31d80fd99b64b565207d8f2a5648a74532989c80 Mon Sep 17 00:00:00 2001 From: Maurits Lourens Date: Wed, 19 Jan 2022 15:23:41 +0100 Subject: [PATCH 19/28] #3397 - select radio buttons alignment setting --- packages/client/manifest.json | 20 +++++++++++++++++++ .../components/app/forms/OptionsField.svelte | 2 ++ 2 files changed, 22 insertions(+) diff --git a/packages/client/manifest.json b/packages/client/manifest.json index e618ca1c11..3f8d4c0e3b 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -2065,6 +2065,26 @@ } ] }, + { + "type": "select", + "label": "Direction", + "key": "direction", + "defaultValue": "vertical", + "options": [ + { + "label": "Horizontal", + "value": "horizontal" + }, + { + "label": "Vertical", + "value": "vertical" + } + ], + "dependsOn": { + "setting": "optionsType", + "value": "radio" + } + }, { "type": "text", "label": "Default value", diff --git a/packages/client/src/components/app/forms/OptionsField.svelte b/packages/client/src/components/app/forms/OptionsField.svelte index 4ad8f4611e..8140600e7e 100644 --- a/packages/client/src/components/app/forms/OptionsField.svelte +++ b/packages/client/src/components/app/forms/OptionsField.svelte @@ -15,6 +15,7 @@ export let valueColumn export let customOptions export let autocomplete = false + export let direction = "vertical" let fieldState let fieldApi @@ -64,6 +65,7 @@ disabled={fieldState.disabled} error={fieldState.error} {options} + {direction} on:change={e => fieldApi.setValue(e.detail)} getOptionLabel={flatOptions ? x => x : x => x.label} getOptionValue={flatOptions ? x => x : x => x.value} From 90d2c0a5cf9eb14f31367d4bdc2d928b42098ac4 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 19 Jan 2022 14:52:46 +0000 Subject: [PATCH 20/28] v1.0.44-alpha.3 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index f7f5e3f11e..576984a180 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index ebf402add6..4337c52d38 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 87651d5020..1889d751dc 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index b6d08f0af2..42d49bc2e1 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.2", - "@budibase/client": "^1.0.44-alpha.2", + "@budibase/bbui": "^1.0.44-alpha.3", + "@budibase/client": "^1.0.44-alpha.3", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.44-alpha.2", + "@budibase/string-templates": "^1.0.44-alpha.3", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 2f3d93c85d..9d787f5c14 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index ec95f14790..5952fe0c81 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.2", + "@budibase/bbui": "^1.0.44-alpha.3", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.44-alpha.2", + "@budibase/string-templates": "^1.0.44-alpha.3", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 59694ad18b..6487a4c6d0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.44-alpha.2", - "@budibase/client": "^1.0.44-alpha.2", - "@budibase/string-templates": "^1.0.44-alpha.2", + "@budibase/backend-core": "^1.0.44-alpha.3", + "@budibase/client": "^1.0.44-alpha.3", + "@budibase/string-templates": "^1.0.44-alpha.3", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 429e1f7b6b..14c140c998 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 7d423b63ab..7261de5bf1 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.44-alpha.2", + "version": "1.0.44-alpha.3", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.44-alpha.2", - "@budibase/string-templates": "^1.0.44-alpha.2", + "@budibase/backend-core": "^1.0.44-alpha.3", + "@budibase/string-templates": "^1.0.44-alpha.3", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From dff50e4e1ba23aadcd0ea9caf2e63a974f978874 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 19 Jan 2022 14:59:39 +0000 Subject: [PATCH 21/28] v1.0.44-alpha.4 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 576984a180..7d581189c6 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 4337c52d38..7056d7ab08 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 1889d751dc..422985403d 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 42d49bc2e1..fd27f379f5 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.3", - "@budibase/client": "^1.0.44-alpha.3", + "@budibase/bbui": "^1.0.44-alpha.4", + "@budibase/client": "^1.0.44-alpha.4", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.44-alpha.3", + "@budibase/string-templates": "^1.0.44-alpha.4", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 9d787f5c14..49edbc765e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index 5952fe0c81..fa37b5b81a 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.3", + "@budibase/bbui": "^1.0.44-alpha.4", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.44-alpha.3", + "@budibase/string-templates": "^1.0.44-alpha.4", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 6487a4c6d0..5f1cc4aabc 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.44-alpha.3", - "@budibase/client": "^1.0.44-alpha.3", - "@budibase/string-templates": "^1.0.44-alpha.3", + "@budibase/backend-core": "^1.0.44-alpha.4", + "@budibase/client": "^1.0.44-alpha.4", + "@budibase/string-templates": "^1.0.44-alpha.4", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 14c140c998..66d66430d1 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 7261de5bf1..178a2bfa40 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.44-alpha.3", + "version": "1.0.44-alpha.4", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.44-alpha.3", - "@budibase/string-templates": "^1.0.44-alpha.3", + "@budibase/backend-core": "^1.0.44-alpha.4", + "@budibase/string-templates": "^1.0.44-alpha.4", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 5995badd3aa981aea2fc3b765113188a36cbfa54 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 19 Jan 2022 15:08:47 +0000 Subject: [PATCH 22/28] v1.0.44-alpha.5 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 7d581189c6..9fc276c8c1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 7056d7ab08..991d27fcda 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 422985403d..1af906fd0c 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index fd27f379f5..7518964fd5 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.4", - "@budibase/client": "^1.0.44-alpha.4", + "@budibase/bbui": "^1.0.44-alpha.5", + "@budibase/client": "^1.0.44-alpha.5", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.44-alpha.4", + "@budibase/string-templates": "^1.0.44-alpha.5", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 49edbc765e..157cb2e73e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index fa37b5b81a..b055cd943b 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.4", + "@budibase/bbui": "^1.0.44-alpha.5", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.44-alpha.4", + "@budibase/string-templates": "^1.0.44-alpha.5", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 5f1cc4aabc..81b7e2a35e 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.44-alpha.4", - "@budibase/client": "^1.0.44-alpha.4", - "@budibase/string-templates": "^1.0.44-alpha.4", + "@budibase/backend-core": "^1.0.44-alpha.5", + "@budibase/client": "^1.0.44-alpha.5", + "@budibase/string-templates": "^1.0.44-alpha.5", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 66d66430d1..5fad1790ee 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 178a2bfa40..2c5e8c199f 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.44-alpha.4", + "version": "1.0.44-alpha.5", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.44-alpha.4", - "@budibase/string-templates": "^1.0.44-alpha.4", + "@budibase/backend-core": "^1.0.44-alpha.5", + "@budibase/string-templates": "^1.0.44-alpha.5", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From d953e12ec719114857a547d46f6c1d78c9d2e060 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 19 Jan 2022 16:10:22 +0100 Subject: [PATCH 23/28] Revert "Small changes associated with the smoke build" --- .../builder/cypress/integration/addMultiOptionDatatype.spec.js | 2 +- packages/builder/cypress/support/commands.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js b/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js index 1b67c1b3fc..d708c7bc0b 100644 --- a/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js +++ b/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js @@ -39,4 +39,4 @@ context("Add Multi-Option Datatype", () => { }) }) }) - +}) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index e69bc8badc..5952f4699c 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -43,7 +43,6 @@ Cypress.Commands.add("createApp", name => { } }) cy.contains(/Start from scratch/).dblclick() - cy.wait(2000) cy.get(".spectrum-Modal").within(() => { cy.get("input").eq(0).type(name).should("have.value", name).blur() cy.get(".spectrum-ButtonGroup").contains("Create app").click() From 14535e53939ea89889e68f3fe66c0eca15d7c713 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 19 Jan 2022 15:17:21 +0000 Subject: [PATCH 24/28] v1.0.44-alpha.6 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 9fc276c8c1..18235a5914 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 991d27fcda..14fcbea357 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 1af906fd0c..83af25fba5 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 7518964fd5..a86c6bb06f 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.5", - "@budibase/client": "^1.0.44-alpha.5", + "@budibase/bbui": "^1.0.44-alpha.6", + "@budibase/client": "^1.0.44-alpha.6", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.44-alpha.5", + "@budibase/string-templates": "^1.0.44-alpha.6", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 157cb2e73e..335ea917c4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index b055cd943b..a5e3264aca 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.5", + "@budibase/bbui": "^1.0.44-alpha.6", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.44-alpha.5", + "@budibase/string-templates": "^1.0.44-alpha.6", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 81b7e2a35e..a2e5aa5bb9 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.44-alpha.5", - "@budibase/client": "^1.0.44-alpha.5", - "@budibase/string-templates": "^1.0.44-alpha.5", + "@budibase/backend-core": "^1.0.44-alpha.6", + "@budibase/client": "^1.0.44-alpha.6", + "@budibase/string-templates": "^1.0.44-alpha.6", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 5fad1790ee..0a745d6129 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 2c5e8c199f..906eb7b204 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.44-alpha.5", + "version": "1.0.44-alpha.6", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.44-alpha.5", - "@budibase/string-templates": "^1.0.44-alpha.5", + "@budibase/backend-core": "^1.0.44-alpha.6", + "@budibase/string-templates": "^1.0.44-alpha.6", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 701298d0de564272379d32ae9cef97f56499d5fe Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 19 Jan 2022 16:19:02 +0100 Subject: [PATCH 25/28] revert new cypress tests --- .gitignore | 2 +- packages/builder/cypress.json | 6 +- .../addMultiOptionDatatype.spec.js | 56 +- .../cypress/integration/autoScreensUI.spec.js | 47 - .../changeAppIconAndColour.spec.js | 39 - .../cypress/integration/createApp.spec.js | 2 +- .../integration/createAutomation.spec.js | 3 +- .../cypress/integration/createTable.spec.js | 37 +- .../cypress/integration/createUser.spec.js | 10 + .../integration/createUserAndRoles.spec.js | 128 -- .../customThemingProperties.spec.js | 1 + .../datasources/datasourceWizard.spec.js | 37 - .../integration/datasources/mySql.spec.js | 187 --- .../integration/datasources/oracle.spec.js | 191 --- .../datasources/postgreSql.spec.js | 237 ---- .../integration/datasources/rest.spec.js | 39 - .../queryLevelTransformers.spec.js | 112 -- .../integration/renameAnApplication.spec.js | 50 +- .../cypress/integration/revertApp.spec.js | 62 - packages/builder/cypress/support/commands.js | 275 +--- .../support/queryLevelTransformerFunction.js | 14 - .../queryLevelTransformerFunctionWithData.js | 31 - packages/builder/package.json | 2 +- packages/builder/yarn.lock | 1223 ++++++----------- 24 files changed, 507 insertions(+), 2284 deletions(-) delete mode 100644 packages/builder/cypress/integration/autoScreensUI.spec.js delete mode 100644 packages/builder/cypress/integration/changeAppIconAndColour.spec.js create mode 100644 packages/builder/cypress/integration/createUser.spec.js delete mode 100644 packages/builder/cypress/integration/createUserAndRoles.spec.js delete mode 100644 packages/builder/cypress/integration/datasources/datasourceWizard.spec.js delete mode 100644 packages/builder/cypress/integration/datasources/mySql.spec.js delete mode 100644 packages/builder/cypress/integration/datasources/oracle.spec.js delete mode 100644 packages/builder/cypress/integration/datasources/postgreSql.spec.js delete mode 100644 packages/builder/cypress/integration/datasources/rest.spec.js delete mode 100644 packages/builder/cypress/integration/queryLevelTransformers.spec.js delete mode 100644 packages/builder/cypress/integration/revertApp.spec.js delete mode 100644 packages/builder/cypress/support/queryLevelTransformerFunction.js delete mode 100644 packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js diff --git a/.gitignore b/.gitignore index 2376553d6d..6ba2f61ed7 100644 --- a/.gitignore +++ b/.gitignore @@ -93,5 +93,5 @@ hosting/.generated-envoy.dev.yaml # Sublime text *.sublime-project *.sublime-workspace -packages/builder/cypress.env.json + bin/ diff --git a/packages/builder/cypress.json b/packages/builder/cypress.json index 246d6d78d6..0908f2c839 100644 --- a/packages/builder/cypress.json +++ b/packages/builder/cypress.json @@ -1,11 +1,9 @@ { - "baseUrl": "http://localhost:10001", + "baseUrl": "http://localhost:10001/builder/", "video": true, "projectId": "bmbemn", "env": { "PORT": "10001", - "JWT_SECRET": "test", - "HOST_IP": "52.49.184.138", - "TEST_ENV" : false + "JWT_SECRET": "test" } } diff --git a/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js b/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js index 1b67c1b3fc..63611d6c02 100644 --- a/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js +++ b/packages/builder/cypress/integration/addMultiOptionDatatype.spec.js @@ -10,33 +10,35 @@ context("Add Multi-Option Datatype", () => { cy.addRowMultiValue(["1", "2", "3", "4", "5"]) }) - it ("should add form with multi select picker, containing 5 options", () => { - cy.navigateToFrontend() - cy.wait(500) - // Add data provider - cy.addComponent("Data", "Data Provider") - cy.get('[data-cy="dataSource-prop-control"]').click() - cy.get(".dropdown").contains("Multi Data").click() - cy.wait(500) - // Add Form with schema to match table - cy.addComponent("Form", "Form") - cy.get('[data-cy="dataSource-prop-control"').click() - cy.get(".dropdown").contains("Multi Data").click() - cy.wait(500) - // Add multi-select picker to form - cy.addComponent("Form", "Multi-select Picker").then((componentId) => { - cy.get('[data-cy="field-prop-control"]').type("Test Data").type('{enter}') - cy.wait(1000) - cy.getComponent(componentId).contains("Choose some options").click() - // Check picker has 5 items - cy.getComponent(componentId).find('li').should('have.length', 5) - // Select all items - for (let i = 1; i < 6; i++) { - cy.getComponent(componentId).find('li').contains(i).click() - } - // Check items have been selected - cy.getComponent(componentId).find('.spectrum-Picker-label').contains("(5)") - }) + it("should add form with multi select picker, containing 5 options", () => { + cy.navigateToFrontend() + cy.wait(500) + // Add data provider + cy.get(`[data-cy="category-Data"]`).click() + cy.get(`[data-cy="component-Data Provider"]`).click() + cy.get('[data-cy="dataSource-prop-control"]').click() + cy.get(".dropdown").contains("Multi Data").click() + cy.wait(500) + // Add Form with schema to match table + cy.addComponent("Form", "Form") + cy.get('[data-cy="dataSource-prop-control"').click() + cy.get(".dropdown").contains("Multi Data").click() + cy.wait(500) + // Add multi-select picker to form + cy.addComponent("Form", "Multi-select Picker").then(componentId => { + cy.get('[data-cy="field-prop-control"]').type("Test Data").type("{enter}") + cy.wait(1000) + cy.getComponent(componentId).contains("Choose some options").click() + // Check picker has 5 items + cy.getComponent(componentId).find("li").should("have.length", 5) + // Select all items + for (let i = 1; i < 6; i++) { + cy.getComponent(componentId).find("li").contains(i).click() + } + // Check items have been selected + cy.getComponent(componentId) + .find(".spectrum-Picker-label") + .contains("(5)") }) }) diff --git a/packages/builder/cypress/integration/autoScreensUI.spec.js b/packages/builder/cypress/integration/autoScreensUI.spec.js deleted file mode 100644 index 780d7da076..0000000000 --- a/packages/builder/cypress/integration/autoScreensUI.spec.js +++ /dev/null @@ -1,47 +0,0 @@ -context("Auto Screens UI", () => { - before(() => { - cy.login() - cy.createTestApp() - }) - - it("should generate internal table screens", () => { - // Create autogenerated screens from the internal table - cy.createAutogeneratedScreens(["Cypress Tests"]) - // Confirm screens have been auto generated - cy.get(".nav-items-container").contains("cypress-tests").click() - cy.get(".nav-items-container").should('contain', 'cypress-tests/:id') - .and('contain', 'cypress-tests/new/row') - }) - - it("should generate multiple internal table screens at once", () => { - // Create a second internal table - const initialTable = "Cypress Tests" - const secondTable = "Table Two" - cy.createTable(secondTable) - // Create autogenerated screens from the internal tables - cy.createAutogeneratedScreens([initialTable, secondTable]) - // Confirm screens have been auto generated - cy.get(".nav-items-container").contains("cypress-tests").click() - // Previously generated tables are suffixed with numbers - as expected - cy.get(".nav-items-container").should('contain', 'cypress-tests-2/:id') - .and('contain', 'cypress-tests-2/new/row') - cy.get(".nav-items-container").contains("table-two").click() - cy.get(".nav-items-container").should('contain', 'table-two/:id') - .and('contain', 'table-two/new/row') - }) - - if (Cypress.env("TEST_ENV")) { - it("should generate data source screens", () => { - // Using MySQL data source for testing this - const datasource = "MySQL" - // Select & configure MySQL data source - cy.selectExternalDatasource(datasource) - cy.addDatasourceConfig(datasource) - // Create autogenerated screens from a MySQL table - MySQL contains books table - cy.createAutogeneratedScreens(["books"]) - cy.get(".nav-items-container").contains("books").click() - cy.get(".nav-items-container").should('contain', 'books/:id') - .and('contain', 'books/new/row') - }) - } -}) diff --git a/packages/builder/cypress/integration/changeAppIconAndColour.spec.js b/packages/builder/cypress/integration/changeAppIconAndColour.spec.js deleted file mode 100644 index 4d4180fc55..0000000000 --- a/packages/builder/cypress/integration/changeAppIconAndColour.spec.js +++ /dev/null @@ -1,39 +0,0 @@ -context("Change Application Icon and Colour", () => { - before(() => { - cy.login() - }) - - it("should change the icon and colour for an application", () => { - // Search for test application - cy.searchForApplication("Cypress Tests") - cy.get(".appTable") - .within(() => { - cy.get(".spectrum-Icon").eq(1).click() - }) - cy.get(".spectrum-Menu").contains("Edit icon").click() - // Select random icon - cy.get(".grid").within(() => { - cy.get(".icon-item").eq(Math.floor(Math.random() * 23) + 1).click() - }) - // Select random colour - cy.get(".fill").click() - cy.get(".colors").within(() => { - cy.get(".color").eq(Math.floor(Math.random() * 33) + 1).click() - }) - cy.intercept('**/applications/**').as('iconChange') - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.wait("@iconChange") - cy.get("@iconChange").its('response.statusCode') - .should('eq', 200) - cy.wait(1000) - // Confirm icon has changed from default - // Confirm colour has been applied - There is no default colour - cy.get(".appTable") - .within(() => { - cy.get('[aria-label]').eq(0).children() - .should('have.attr', 'xlink:href').and('not.contain', '#spectrum-icon-18-Apps') - cy.get(".title").children().children() - .should('have.attr', 'style').and('contains', 'color') - }) - }) -}) diff --git a/packages/builder/cypress/integration/createApp.spec.js b/packages/builder/cypress/integration/createApp.spec.js index d5d56d1ddc..34f152b540 100644 --- a/packages/builder/cypress/integration/createApp.spec.js +++ b/packages/builder/cypress/integration/createApp.spec.js @@ -2,7 +2,7 @@ context("Create an Application", () => { it("should create a new application", () => { cy.login() cy.createTestApp() - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) cy.contains("Cypress Tests").should("exist") }) }) diff --git a/packages/builder/cypress/integration/createAutomation.spec.js b/packages/builder/cypress/integration/createAutomation.spec.js index 2658905de8..efd3c7d023 100644 --- a/packages/builder/cypress/integration/createAutomation.spec.js +++ b/packages/builder/cypress/integration/createAutomation.spec.js @@ -4,6 +4,7 @@ context("Create a automation", () => { cy.createTestApp() }) + // https://on.cypress.io/interacting-with-elements it("should create a automation", () => { cy.createTestTableWithData() cy.wait(2000) @@ -23,7 +24,7 @@ context("Create a automation", () => { cy.contains("dog").click() cy.wait(2000) // Create action - cy.get('[aria-label="AddCircle"]').eq(1).click() + cy.get(".block > .spectrum-Icon").click() cy.get(".modal-inner-wrapper").within(() => { cy.wait(1000) cy.contains("Create Row").trigger('mouseover').click().click() diff --git a/packages/builder/cypress/integration/createTable.spec.js b/packages/builder/cypress/integration/createTable.spec.js index 55dceebab2..20ec919b57 100644 --- a/packages/builder/cypress/integration/createTable.spec.js +++ b/packages/builder/cypress/integration/createTable.spec.js @@ -30,6 +30,7 @@ context("Create a Table", () => { cy.contains("Save Column").click() cy.contains("nameupdated ").should("contain", "nameupdated") }) + it("edits a row", () => { cy.contains("button", "Edit").click({ force: true }) @@ -46,43 +47,13 @@ context("Create a Table", () => { cy.get(".spectrum-Modal").contains("Delete").click() cy.contains("RoverUpdated").should("not.exist") }) - - it("Adds 15 rows and checks pagination", () => { - // 10 rows per page, 15 rows should create 2 pages within table - const totalRows = 16 - for (let i = 1; i < totalRows; i++){ - cy.addRow([i]) - } - cy.wait(1000) - cy.get(".spectrum-Pagination").within(() => { - cy.get(".spectrum-ActionButton").eq(1).click() - }) - cy.get(".spectrum-Pagination").within(() => { - cy.get(".spectrum-Body--secondary").contains("Page 2") - }) - }) - - it("Deletes rows and checks pagination", () => { - // Delete rows, removing second page of rows from table - const deleteRows = 5 - cy.get(".spectrum-Checkbox-input").check({ force: true }) - cy.get(".spectrum-Table-body") - cy.contains("Delete 5 row(s)").click() - cy.get(".spectrum-Modal").contains("Delete").click() - cy.wait(1000) - - // Confirm table only has one page - cy.get(".spectrum-Pagination").within(() => { - cy.get(".spectrum-ActionButton").eq(1).should('not.be.enabled') - }) - }) it("deletes a column", () => { - const columnName = "nameupdated" cy.get(".title").click() cy.get(".spectrum-Table-editIcon > use").click() cy.contains("Delete").click() - cy.get('[data-cy="delete-column-confirm"]').type(columnName) + cy.wait(50) + cy.get(`[data-cy="delete-column-confirm"]`).type("nameupdated") cy.contains("Delete Column").click() cy.contains("nameupdated").should("not.exist") }) @@ -96,7 +67,7 @@ context("Create a Table", () => { cy.get(".actions .spectrum-Icon").click({ force: true }) }) cy.get(".spectrum-Menu > :nth-child(2)").click() - cy.get('[data-cy="delete-table-confirm"]').type("dog") + cy.get(`[data-cy="delete-table-confirm"]`).type("dog") cy.contains("Delete Table").click() cy.contains("dog").should("not.exist") }) diff --git a/packages/builder/cypress/integration/createUser.spec.js b/packages/builder/cypress/integration/createUser.spec.js new file mode 100644 index 0000000000..18ae8a16a0 --- /dev/null +++ b/packages/builder/cypress/integration/createUser.spec.js @@ -0,0 +1,10 @@ +context("Create a User", () => { + before(() => { + cy.login() + }) + + it("should create a user", () => { + cy.createUser("bbuser@test.com") + cy.contains("bbuser").should("be.visible") + }) +}) diff --git a/packages/builder/cypress/integration/createUserAndRoles.spec.js b/packages/builder/cypress/integration/createUserAndRoles.spec.js deleted file mode 100644 index 538b910bb4..0000000000 --- a/packages/builder/cypress/integration/createUserAndRoles.spec.js +++ /dev/null @@ -1,128 +0,0 @@ -context("Create a User and Assign Roles", () => { - before(() => { - cy.login() - }) - - it("should create a user", () => { - cy.createUser("bbuser@test.com") - cy.get(".spectrum-Table-body").should('contain', 'bbuser') - }) - - it("should confirm there is No Access for a New User", () => { - // Click into the user - cy.contains("bbuser").click() - cy.wait(500) - // Get No Access table - Confirm it has apps in it - cy.get(".spectrum-Table").eq(1).should('not.contain', 'No rows found') - // Get Configure Roles table - Confirm it has no apps - cy.get(".spectrum-Table").eq(0).contains('No rows found') - }) - - it("should assign role types", () => { - // 3 apps minimum required - to assign an app to each role type - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) - .its("body") - .then(val => { - if (val.length < 3) { - for (let i = 1; i < 3; i++) { - const uuid = () => Cypress._.random(0, 1e6) - const name = uuid() - cy.createApp(name) - } - } - }) - // Navigate back to the user - cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.wait(1000) - cy.get(".spectrum-SideNav").contains("Users").click() - cy.get(".spectrum-Table").contains("bbuser").click() - cy.wait(500) - for (let i = 0; i < 3; i++) { - cy.get(".spectrum-Table-body").eq(1).find('tr').eq(0).click() - cy.wait(500) - cy.get(".spectrum-Dialog-grid").contains("Choose an option").click().then(() => { - cy.wait(500) - if (i == 0) { - cy.get(".spectrum-Popover").contains("Admin").click() - } - if (i == 1) { - cy.get(".spectrum-Popover").contains("Power").click() - } - if (i == 2) { - cy.get(".spectrum-Popover").contains("Basic").click() - } - cy.wait(500) - cy.get(".spectrum-Button").contains("Update role").click({ force: true }) - }) - } - // Confirm roles exist within Configure roles table - cy.wait(500) - cy.get(".spectrum-Table-body").eq(0).within((assginedRoles) => { - expect(assginedRoles).to.contain("Admin") - expect(assginedRoles).to.contain("Power") - expect(assginedRoles).to.contain("Basic") - }) - }) - - it("should unassign role types", () => { - // Set each app within Configure roles table to 'No Access' - cy.get(".spectrum-Table-body").eq(0).find('tr').its('length').then((len) => { - for (let i = 0; i < len; i ++){ - cy.get(".spectrum-Table-body").eq(0).find('tr').eq(0).click().then(() => { - cy.get(".spectrum-Form-item").contains("Role").parent().within(() => { - cy.get(".spectrum-Picker").click({ force: true }) - cy.wait(500) - cy.get(".spectrum-Popover").contains("No Access").click() - }) - cy.get(".spectrum-Button").contains("Update role").click({ force: true }) - cy.wait(1000) - }) - } - }) - // Confirm Configure roles table no longer has any apps in it - cy.get(".spectrum-Table-body").eq(0).contains('No rows found') - }) - - it("should enable Developer access", () => { - // Enable Developer access - cy.get(".field").eq(4).within(() => { - cy.get(".spectrum-Switch-input").click({ force: true }) - }) - // No Access table should now be empty - cy.get(".container").contains("No Access").parent().within(() => { - cy.get(".spectrum-Table").contains("No rows found") - }) - - // Each app within Configure roles should have Admin access - cy.get(".spectrum-Table-body").eq(0).find('tr').its('length').then((len) => { - for (let i = 0; i < len; i++) { - cy.get(".spectrum-Table-body").eq(0).find('tr').eq(i).contains("Admin") - cy.wait(500) - } - }) - }) - - it("should disable Developer access", () => { - // Disable Developer access - cy.get(".field").eq(4).within(() => { - cy.get(".spectrum-Switch-input").click({ force: true }) - }) - // Configure roles table should now be empty - cy.get(".container").contains("Configure roles").parent().within(() => { - cy.get(".spectrum-Table").contains("No rows found") - }) - }) - - it("should delete a user", () => { - // Click Delete user button - cy.get(".spectrum-Button").contains("Delete user").click({force: true}).then(() => { - // Confirm deletion within modal - cy.wait(500) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Delete user").click({force: true}) - cy.wait(4000) - }) - }) - cy.get(".spectrum-Table-body").should("not.have.text", "bbuser") - }) -}) diff --git a/packages/builder/cypress/integration/customThemingProperties.spec.js b/packages/builder/cypress/integration/customThemingProperties.spec.js index 99e923d2a2..5b7922bde7 100644 --- a/packages/builder/cypress/integration/customThemingProperties.spec.js +++ b/packages/builder/cypress/integration/customThemingProperties.spec.js @@ -80,4 +80,5 @@ xcontext("Custom Theming Properties", () => { .parent().find(".container.svelte-z3cm5a").click() .get('[title="Gray 800"]').children().find('[aria-label="Checkmark"]') } + }) diff --git a/packages/builder/cypress/integration/datasources/datasourceWizard.spec.js b/packages/builder/cypress/integration/datasources/datasourceWizard.spec.js deleted file mode 100644 index 5d8614bf01..0000000000 --- a/packages/builder/cypress/integration/datasources/datasourceWizard.spec.js +++ /dev/null @@ -1,37 +0,0 @@ -context("Datasource Wizard", () => { - before(() => { - cy.login() - cy.createTestApp() - }) - - it("should navigate in and out of a datasource via wizard", () => { - // Select PostgreSQL and add config (without fetch) - const datasource = "Oracle" - cy.selectExternalDatasource(datasource) - cy.addDatasourceConfig(datasource, true) - - // Navigate back within datasource wizard - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Back").click({ force: true }) - cy.wait(1000) - }) - - // Select PostgreSQL datasource again - cy.get(".item-list").contains(datasource).click() - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Continue").click({ force: true }) - }) - - // Fetch tables after selection - // Previously entered config should not have been saved - // Config is back to default values - // Modal will close and provide 500 error - cy.intercept('**/datasources').as('datasourceConnection') - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Save and fetch tables").click({ force: true }) - }) - cy.wait("@datasourceConnection") - cy.get("@datasourceConnection").its('response.body') - .should('have.property', 'status', 500) - }) -}) diff --git a/packages/builder/cypress/integration/datasources/mySql.spec.js b/packages/builder/cypress/integration/datasources/mySql.spec.js deleted file mode 100644 index 5cb579a447..0000000000 --- a/packages/builder/cypress/integration/datasources/mySql.spec.js +++ /dev/null @@ -1,187 +0,0 @@ -context("MySQL Datasource Testing", () => { - if (Cypress.env("TEST_ENV")) { - - before(() => { - cy.login() - cy.createTestApp() - }) - const datasource = "MySQL" - const queryName = "Cypress Test Query" - const queryRename = "CT Query Rename" - - it("Should add MySQL data source without configuration", () => { - // Select MySQL data source - cy.selectExternalDatasource(datasource) - // Attempt to fetch tables without applying configuration - cy.intercept('**/datasources').as('datasource') - cy.get(".spectrum-Button") - .contains("Save and fetch tables") - .click({ force: true }) - // Intercept Request after button click & apply assertions - cy.wait("@datasource") - cy.get("@datasource").its('response.body') - .should('have.property', 'message', 'connect ECONNREFUSED 127.0.0.1:3306') - cy.get("@datasource").its('response.body') - .should('have.property', 'status', 500) - }) - - it("should add MySQL data source and fetch tables", () => { - // Add & configure MySQL data source - cy.selectExternalDatasource(datasource) - cy.intercept('**/datasources').as('datasource') - cy.addDatasourceConfig(datasource) - // Check response from datasource after adding configuration - cy.wait("@datasource") - cy.get("@datasource").its('response.statusCode') - .should('eq', 200) - // Confirm fetch tables was successful - cy.get(".spectrum-Table-body").eq(0) - .find('tr') - .its('length') - .should('be.gt', 0) - }) - - it("should check table fetching error", () => { - // MySQL test data source contains tables without primary keys - cy.get(".spectrum-InLineAlert") - .should('contain', 'Error fetching tables') - .and('contain', 'No primary key constraint found') - }) - - it("should define a One relationship type", () => { - // Select relationship type & configure - cy.get(".spectrum-Button").contains("Define relationship").click({ force: true }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Picker").eq(0).click() - cy.get(".spectrum-Popover").contains("One").click() - cy.get(".spectrum-Picker").eq(1).click() - cy.get(".spectrum-Popover").contains("REGIONS").click() - cy.get(".spectrum-Picker").eq(2).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - cy.get(".spectrum-Picker").eq(3).click() - cy.get(".spectrum-Popover").contains("COUNTRIES").click() - cy.get(".spectrum-Picker").eq(4).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - // Save relationship & reload page - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.reload() - }) - // Confirm table length & column name - cy.get(".spectrum-Table-body").eq(1) - .find('tr') - .its('length') - .should('eq', 1) - cy.get(".spectrum-Table-cell").should('contain', "COUNTRIES to REGIONS") - }) - - it("should define a Many relationship type", () => { - // Select relationship type & configure - cy.get(".spectrum-Button").contains("Define relationship").click({ force: true }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Picker").eq(0).click() - cy.get(".spectrum-Popover").contains("Many").click() - cy.get(".spectrum-Picker").eq(1).click() - cy.get(".spectrum-Popover").contains("LOCATIONS").click() - cy.get(".spectrum-Picker").eq(2).click() - cy.get(".spectrum-Popover").contains("REGIONS").click() - cy.get(".spectrum-Picker").eq(3).click() - cy.get(".spectrum-Popover").contains("COUNTRIES").click() - cy.get(".spectrum-Picker").eq(4).click() - cy.get(".spectrum-Popover").contains("COUNTRY_ID").click() - cy.get(".spectrum-Picker").eq(5).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - // Save relationship & reload page - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.reload() - cy.wait(1000) - }) - // Confirm table length & relationship name - cy.get(".spectrum-Table-body").eq(1) - .find('tr') - .its('length') - .should('eq', 2) - cy.get(".spectrum-Table-cell") - .should('contain', "LOCATIONS through COUNTRIES → REGIONS") - }) - - it("should delete relationships", () => { - // Delete both relationships - cy.get(".spectrum-Table-body") - .eq(1).find('tr').its('length') - .then((len) => { - for (let i = 0; i < len; i++) { - cy.get(".spectrum-Table-body").eq(1).within(() => { - cy.get(".spectrum-Table-row").eq(0).click() - cy.wait(500) - }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Delete").click({ force: true }) - }) - cy.reload() - } - // Confirm relationships no longer exist - cy.get(".spectrum-Body").should('contain', 'No relationships configured') - }) - }) - - it("should add a query", () => { - // Add query - cy.get(".spectrum-Button").contains("Add query").click({ force: true }) - cy.get(".spectrum-Form-item").eq(0).within(() => { - cy.get("input").type(queryName) - }) - // Insert Query within Fields section - cy.get(".CodeMirror textarea").eq(0) - .type("SELECT * FROM books", { force: true }) - // Intercept query execution - cy.intercept('**/queries/preview').as('query') - cy.get(".spectrum-Button").contains("Run Query").click({ force: true }) - cy.wait(500) - cy.wait("@query") - // Assert against Status Code & Body - cy.get("@query").its('response.statusCode') - .should('eq', 200) - cy.get("@query").its('response.body') - .should('not.be.empty') - // Save query - cy.get(".spectrum-Button").contains("Save Query").click({ force: true }) - cy.get(".nav-item").should('contain', queryName) - }) - - it("should duplicate a query", () => { - // Get last nav item - The query - cy.get(".nav-item").last().within(() => { - cy.get(".icon").eq(1).click({ force: true }) - }) - // Select and confirm duplication - cy.get(".spectrum-Menu").contains("Duplicate").click() - cy.get(".nav-item").should('contain', queryName + ' (1)') - }) - - it("should edit a query name", () => { - // Rename query - cy.get(".spectrum-Form-item").eq(0).within(() => { - cy.get("input").clear().type(queryRename) - }) - // Save query - cy.get(".spectrum-Button").contains("Save Query").click({ force: true }) - cy.get(".nav-item").should('contain', queryRename) - }) - - it("should delete a query", () => { - // Get last nav item - The query - for (let i = 0; i < 2; i++) { - cy.get(".nav-item").last().within(() => { - cy.get(".icon").eq(1).click({ force: true }) - }) - // Select Delete - cy.get(".spectrum-Menu").contains("Delete").click() - cy.get(".spectrum-Button").contains("Delete Query").click({ force: true }) - cy.wait(1000) - } - // Confirm deletion - cy.get(".nav-item").should('not.contain', queryName) - cy.get(".nav-item").should('not.contain', queryRename) - }) - } -}) diff --git a/packages/builder/cypress/integration/datasources/oracle.spec.js b/packages/builder/cypress/integration/datasources/oracle.spec.js deleted file mode 100644 index 0a41ead4f3..0000000000 --- a/packages/builder/cypress/integration/datasources/oracle.spec.js +++ /dev/null @@ -1,191 +0,0 @@ -context("Oracle Datasource Testing", () => { - before(() => { - cy.login() - cy.createTestApp() - }) - const datasource = "Oracle" - const queryName = "Cypress Test Query" - const queryRename = "CT Query Rename" - - it("Should add Oracle data source and skip table fetch", () => { - // Select Oracle data source - cy.selectExternalDatasource(datasource) - // Skip table fetch - no config added - cy.get(".spectrum-Button").contains("Skip table fetch").click({ force: true }) - cy.wait(500) - // Confirm config contains localhost - cy.get(".spectrum-Textfield-input").eq(1).should('have.value', 'localhost') - // Add another Oracle data source, configure & skip table fetch - cy.selectExternalDatasource(datasource) - cy.addDatasourceConfig(datasource, true) - // Confirm config and no tables - cy.get(".spectrum-Textfield-input").eq(1).should('have.value', Cypress.env("oracle").HOST) - cy.get(".spectrum-Body").eq(2).should('contain', 'No tables found.') - }) - - it("Should add Oracle data source and fetch tables without configuration", () => { - // Select Oracle data source - cy.selectExternalDatasource(datasource) - // Attempt to fetch tables without applying configuration - cy.intercept('**/datasources').as('datasource') - cy.get(".spectrum-Button") - .contains("Save and fetch tables") - .click({ force: true }) - // Intercept Request after button click & apply assertions - cy.wait("@datasource") - cy.get("@datasource").its('response.body') - .should('have.property', 'message', 'NJS-007: invalid value for "user" in parameter 1') - cy.get("@datasource").its('response.body') - .should('have.property', 'status', 500) - }) - - it("should add Oracle data source and fetch tables", () => { - // Add & configure Oracle data source - cy.selectExternalDatasource(datasource) - cy.intercept('**/datasources').as('datasource') - cy.addDatasourceConfig(datasource) - // Check response from datasource after adding configuration - cy.wait("@datasource") - cy.get("@datasource").its('response.statusCode') - .should('eq', 200) - // Confirm fetch tables was successful - cy.get(".spectrum-Table-body").eq(0) - .find('tr') - .its('length') - .should('be.gt', 0) - }) - - it("should define a One relationship type", () => { - // Select relationship type & configure - cy.get(".spectrum-Button").contains("Define relationship").click({ force: true }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Picker").eq(0).click() - cy.get(".spectrum-Popover").contains("One").click() - cy.get(".spectrum-Picker").eq(1).click() - cy.get(".spectrum-Popover").contains("REGIONS").click() - cy.get(".spectrum-Picker").eq(2).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - cy.get(".spectrum-Picker").eq(3).click() - cy.get(".spectrum-Popover").contains("COUNTRIES").click() - cy.get(".spectrum-Picker").eq(4).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - // Save relationship & reload page - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.reload() - }) - // Confirm table length & column name - cy.get(".spectrum-Table-body").eq(1) - .find('tr') - .its('length') - .should('eq', 1) - cy.get(".spectrum-Table-cell").should('contain', "COUNTRIES to REGIONS") - }) - - it("should define a Many relationship type", () => { - // Select relationship type & configure - cy.get(".spectrum-Button").contains("Define relationship").click({ force: true }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Picker").eq(0).click() - cy.get(".spectrum-Popover").contains("Many").click() - cy.get(".spectrum-Picker").eq(1).click() - cy.get(".spectrum-Popover").contains("LOCATIONS").click() - cy.get(".spectrum-Picker").eq(2).click() - cy.get(".spectrum-Popover").contains("REGIONS").click() - cy.get(".spectrum-Picker").eq(3).click() - cy.get(".spectrum-Popover").contains("COUNTRIES").click() - cy.get(".spectrum-Picker").eq(4).click() - cy.get(".spectrum-Popover").contains("COUNTRY_ID").click() - cy.get(".spectrum-Picker").eq(5).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - // Save relationship & reload page - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.reload() - }) - // Confirm table length & relationship name - cy.get(".spectrum-Table-body").eq(1) - .find('tr') - .its('length') - .should('eq', 2) - cy.get(".spectrum-Table-cell") - .should('contain', "LOCATIONS through COUNTRIES → REGIONS") - }) - - it("should delete relationships", () => { - // Delete both relationships - cy.get(".spectrum-Table-body") - .eq(1).find('tr').its('length') - .then((len) => { - for (let i = 0; i < len; i++) { - cy.get(".spectrum-Table-body").eq(1).within(() => { - cy.get(".spectrum-Table-row").eq(0).click() - cy.wait(500) - }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Delete").click({ force: true }) - }) - cy.reload() - } - // Confirm relationships no longer exist - cy.get(".spectrum-Body").should('contain', 'No relationships configured') - }) - }) - - it("should add a query", () => { - // Add query - cy.get(".spectrum-Button").contains("Add query").click({ force: true }) - cy.get(".spectrum-Form-item").eq(0).within(() => { - cy.get("input").type(queryName) - }) - // Insert Query within Fields section - cy.get(".CodeMirror textarea").eq(0) - .type("SELECT * FROM JOBS", { force: true }) - // Intercept query execution - cy.intercept('**/queries/preview').as('query') - cy.get(".spectrum-Button").contains("Run Query").click({ force: true }) - cy.wait(500) - cy.wait("@query") - // Assert against Status Code & Body - cy.get("@query").its('response.statusCode') - .should('eq', 200) - cy.get("@query").its('response.body') - .should('not.be.empty') - // Save query - cy.get(".spectrum-Button").contains("Save Query").click({ force: true }) - cy.get(".nav-item").should('contain', queryName) - }) - - it("should duplicate a query", () => { - // Get query nav item - cy.get(".nav-item").contains(queryName).parent().within(() => { - cy.get(".spectrum-Icon").eq(1).click({ force: true }) - }) - // Select and confirm duplication - cy.get(".spectrum-Menu").contains("Duplicate").click() - cy.get(".nav-item").should('contain', queryName + ' (1)') - }) - - it("should edit a query name", () => { - // Rename query - cy.get(".spectrum-Form-item").eq(0).within(() => { - cy.get("input").clear().type(queryRename) - }) - // Save query - cy.get(".spectrum-Button").contains("Save Query").click({ force: true }) - cy.get(".nav-item").should('contain', queryRename) - }) - - it("should delete a query", () => { - // Get query nav item - QueryName - cy.get(".nav-item").contains(queryName).parent().within(() => { - cy.get(".spectrum-Icon").eq(1).click({ force: true }) - }) - - // Select Delete - cy.get(".spectrum-Menu").contains("Delete").click() - cy.get(".spectrum-Button").contains("Delete Query").click({ force: true }) - cy.wait(1000) - - // Confirm deletion - cy.get(".nav-item").should('not.contain', queryName) - }) -}) diff --git a/packages/builder/cypress/integration/datasources/postgreSql.spec.js b/packages/builder/cypress/integration/datasources/postgreSql.spec.js deleted file mode 100644 index 4bd2f7c22f..0000000000 --- a/packages/builder/cypress/integration/datasources/postgreSql.spec.js +++ /dev/null @@ -1,237 +0,0 @@ -context("PostgreSQL Datasource Testing", () => { - if (Cypress.env("TEST_ENV")) { - - before(() => { - cy.login() - cy.createTestApp() - }) - const datasource = "PostgreSQL" - const queryName = "Cypress Test Query" - const queryRename = "CT Query Rename" - - it("Should add PostgreSQL data source without configuration", () => { - // Select PostgreSQL data source - cy.selectExternalDatasource(datasource) - // Attempt to fetch tables without applying configuration - cy.intercept('**/datasources').as('datasource') - cy.get(".spectrum-Button") - .contains("Save and fetch tables") - .click({ force: true }) - // Intercept Request after button click & apply assertions - cy.wait("@datasource") - cy.get("@datasource").its('response.body') - .should('have.property', 'message', 'connect ECONNREFUSED 127.0.0.1:5432') - cy.get("@datasource").its('response.body') - .should('have.property', 'status', 500) - }) - - it("should add PostgreSQL data source and fetch tables", () => { - // Add & configure PostgreSQL data source - cy.selectExternalDatasource(datasource) - cy.intercept('**/datasources').as('datasource') - cy.addDatasourceConfig(datasource) - // Check response from datasource after adding configuration - cy.wait("@datasource") - cy.get("@datasource").its('response.statusCode') - .should('eq', 200) - // Confirm fetch tables was successful - cy.get(".spectrum-Table-body").eq(0) - .find('tr') - .its('length') - .should('be.gt', 0) - }) - - it("should define a One relationship type", () => { - // Select relationship type & configure - cy.get(".spectrum-Button").contains("Define relationship").click({ force: true }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Picker").eq(0).click() - cy.get(".spectrum-Popover").contains("One").click() - cy.get(".spectrum-Picker").eq(1).click() - cy.get(".spectrum-Popover").contains("REGIONS").click() - cy.get(".spectrum-Picker").eq(2).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - cy.get(".spectrum-Picker").eq(3).click() - cy.get(".spectrum-Popover").contains("COUNTRIES").click() - cy.get(".spectrum-Picker").eq(4).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - // Save relationship & reload page - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.reload() - }) - // Confirm table length & column name - cy.get(".spectrum-Table-body").eq(1) - .find('tr') - .its('length') - .should('eq', 1) - cy.get(".spectrum-Table-cell").should('contain', "COUNTRIES to REGIONS") - }) - - it("should define a Many relationship type", () => { - // Select relationship type & configure - cy.get(".spectrum-Button").contains("Define relationship").click({ force: true }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Picker").eq(0).click() - cy.get(".spectrum-Popover").contains("Many").click() - cy.get(".spectrum-Picker").eq(1).click() - cy.get(".spectrum-Popover").contains("LOCATIONS").click() - cy.get(".spectrum-Picker").eq(2).click() - cy.get(".spectrum-Popover").contains("REGIONS").click() - cy.get(".spectrum-Picker").eq(3).click() - cy.get(".spectrum-Popover").contains("COUNTRIES").click() - cy.get(".spectrum-Picker").eq(4).click() - cy.get(".spectrum-Popover").contains("COUNTRY_ID").click() - cy.get(".spectrum-Picker").eq(5).click() - cy.get(".spectrum-Popover").contains("REGION_ID").click() - // Save relationship & reload page - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.reload() - }) - // Confirm table length & relationship name - cy.get(".spectrum-Table-body").eq(1) - .find('tr') - .its('length') - .should('eq', 2) - cy.get(".spectrum-Table-cell") - .should('contain', "LOCATIONS through COUNTRIES → REGIONS") - }) - - it("should delete a relationship", () => { - cy.get(".hierarchy-items-container").contains(datasource).click() - cy.reload() - // Delete one relationship - cy.get(".spectrum-Table-body").eq(1).within(() => { - cy.get(".spectrum-Table-row").eq(0).click() - cy.wait(500) - }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Delete").click({ force: true }) - }) - cy.reload() - // Confirm relationship was deleted - cy.get(".spectrum-Table-body") - .eq(1).find('tr').its('length').should('eq', 1) - }) - - it("should add a query", () => { - // Add query - cy.get(".spectrum-Button").contains("Add query").click({ force: true }) - cy.get(".spectrum-Form-item").eq(0).within(() => { - cy.get("input").type(queryName) - }) - // Insert Query within Fields section - cy.get(".CodeMirror textarea").eq(0) - .type("SELECT * FROM books", { force: true }) - // Intercept query execution - cy.intercept('**/queries/preview').as('query') - cy.get(".spectrum-Button").contains("Run Query").click({ force: true }) - cy.wait(500) - cy.wait("@query") - // Assert against Status Code & Body - cy.get("@query").its('response.statusCode') - .should('eq', 200) - cy.get("@query").its('response.body') - .should('not.be.empty') - // Save query - cy.get(".spectrum-Button").contains("Save Query").click({ force: true }) - cy.get(".hierarchy-items-container").should('contain', queryName) - }) - - it("should switch to schema with no tables", () => { - // Switch Schema - To one without any tables - cy.get(".hierarchy-items-container").contains(datasource).click() - switchSchema("randomText") - - // No tables displayed - cy.get(".spectrum-Body").eq(2).should('contain', 'No tables found') - - // Previously created query should be visible - cy.get(".spectrum-Table-body").should('contain', queryName) - }) - - it("should switch schemas", () => { - // Switch schema - To one with tables - switchSchema("1") - - // Confirm tables exist - Check for specific one - cy.get(".spectrum-Table-body").eq(0).should('contain', 'test') - cy.get(".spectrum-Table-body").eq(0).find('tr').its('length').should('eq', 1) - - // Confirm specific table visible within left nav bar - cy.get(".hierarchy-items-container").should('contain', 'test') - - // Switch back to public schema - switchSchema("public") - - // Confirm tables exist - again - cy.get(".spectrum-Table-body").eq(0).should('contain', 'REGIONS') - cy.get(".spectrum-Table-body").eq(0) - .find('tr').its('length').should('be.gt', 1) - - // Confirm specific table visible within left nav bar - cy.get(".hierarchy-items-container").should('contain', 'REGIONS') - - // No relationships and one query - cy.get(".spectrum-Body").eq(3).should('contain', 'No relationships configured.') - cy.get(".spectrum-Table-body").eq(1).should('contain', queryName) - }) - - it("should duplicate a query", () => { - // Get last nav item - The query - cy.get(".nav-item").last().within(() => { - cy.get(".icon").eq(1).click({ force: true }) - }) - // Select and confirm duplication - cy.get(".spectrum-Menu").contains("Duplicate").click() - cy.get(".nav-item").should('contain', queryName + ' (1)') - }) - - it("should edit a query name", () => { - // Access query - cy.get(".hierarchy-items-container").contains(queryName + ' (1)').click() - - // Rename query - cy.get(".spectrum-Form-item").eq(0).within(() => { - cy.get("input").clear().type(queryRename) - }) - - // Run and Save query - cy.get(".spectrum-Button").contains("Run Query").click({ force: true }) - cy.wait(500) - cy.get(".spectrum-Button").contains("Save Query").click({ force: true }) - cy.get(".nav-item").should('contain', queryRename) - }) - - it("should delete a query", () => { - // Get last nav item - The query - for (let i = 0; i < 2; i++) { - cy.get(".nav-item").last().within(() => { - cy.get(".icon").eq(1).click({ force: true }) - }) - // Select Delete - cy.get(".spectrum-Menu").contains("Delete").click() - cy.get(".spectrum-Button").contains("Delete Query").click({ force: true }) - cy.wait(1000) - } - // Confirm deletion - cy.get(".nav-item").should('not.contain', queryName) - cy.get(".nav-item").should('not.contain', queryRename) - }) - - const switchSchema = (schema) => { - // Edit configuration - Change Schema - cy.get(".spectrum-Textfield").eq(6).within(() => { - cy.get('input').clear().type(schema) - }) - // Save configuration & fetch - cy.get(".spectrum-Button").contains("Save").click({ force: true }) - cy.get(".spectrum-Button").contains("Fetch tables").click({ force: true }) - // Click fetch tables again within modal - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Fetch tables").click({ force: true }) - }) - cy.reload() - cy.wait(5000) - } - } -}) diff --git a/packages/builder/cypress/integration/datasources/rest.spec.js b/packages/builder/cypress/integration/datasources/rest.spec.js deleted file mode 100644 index 9999b47660..0000000000 --- a/packages/builder/cypress/integration/datasources/rest.spec.js +++ /dev/null @@ -1,39 +0,0 @@ -context("REST Datasource Testing", () => { - before(() => { - cy.login() - cy.createTestApp() - }) - - const datasource = "REST" - const restUrl = "https://api.openbrewerydb.org/breweries" - - it("Should add REST data source with incorrect API", () => { - // Select REST data source - cy.selectExternalDatasource(datasource) - // Enter incorrect api & attempt to send query - cy.wait(500) - cy.get(".spectrum-Button").contains("Add query").click({ force: true }) - cy.intercept('**/preview').as('queryError') - cy.get("input").clear().type("random text") - cy.get(".spectrum-Button").contains("Send").click({ force: true }) - // Intercept Request after button click & apply assertions - cy.wait("@queryError") - cy.get("@queryError").its('response.body') - .should('have.property', 'message', 'request to http://random/%20text? failed, reason: getaddrinfo ENOTFOUND random') - cy.get("@queryError").its('response.body') - .should('have.property', 'status', 400) - }) - - it("should add and configure a REST datasource", () => { - // Select REST datasource and create query - cy.selectExternalDatasource(datasource) - cy.wait(500) - // createRestQuery confirms query creation - cy.createRestQuery("GET", restUrl) - // Confirm status code response within REST datasource - cy.get(".spectrum-FieldLabel") - .contains("Status") - .children() - .should('contain', 200) - }) -}) diff --git a/packages/builder/cypress/integration/queryLevelTransformers.spec.js b/packages/builder/cypress/integration/queryLevelTransformers.spec.js deleted file mode 100644 index 018627a80c..0000000000 --- a/packages/builder/cypress/integration/queryLevelTransformers.spec.js +++ /dev/null @@ -1,112 +0,0 @@ -context("Query Level Transformers", () => { - before(() => { - cy.login() - cy.deleteApp("Cypress Tests") - cy.createApp("Cypress Tests") - }) - - it("should write a transformer function", () => { - // Add REST datasource - contains API for breweries - const datasource = "REST" - const restUrl = "https://api.openbrewerydb.org/breweries" - cy.selectExternalDatasource(datasource) - cy.createRestQuery("GET", restUrl) - cy.get(".spectrum-Tabs-itemLabel").contains("Transformer").click() - // Get Transformer Function from file - cy.readFile("cypress/support/queryLevelTransformerFunction.js").then((transformerFunction) => { - cy.get(".CodeMirror textarea") - // Highlight current text and overwrite with file contents - .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true }) - .type(transformerFunction, { parseSpecialCharSequences: false }) - }) - // Send Query - cy.intercept('**/queries/preview').as('query') - cy.get(".spectrum-Button").contains("Send").click({ force: true }) - cy.wait("@query") - // Assert against Status Code, body, & body rows - cy.get("@query").its('response.statusCode') - .should('eq', 200) - cy.get("@query").its('response.body').should('not.be.empty') - cy.get("@query").its('response.body.rows').should('not.be.empty') - }) - - it("should add data to the previous query", () => { - // Add REST datasource - contains API for breweries - const datasource = "REST" - const restUrl = "https://api.openbrewerydb.org/breweries" - cy.selectExternalDatasource(datasource) - cy.createRestQuery("GET", restUrl) - cy.get(".spectrum-Tabs-itemLabel").contains("Transformer").click() - // Get Transformer Function with Data from file - cy.readFile("cypress/support/queryLevelTransformerFunctionWithData.js").then((transformerFunction) => { - //console.log(transformerFunction[1]) - cy.get(".CodeMirror textarea") - // Highlight current text and overwrite with file contents - .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true }) - .type(transformerFunction, { parseSpecialCharSequences: false }) - }) - // Send Query - cy.intercept('**/queries/preview').as('query') - cy.get(".spectrum-Button").contains("Send").click({ force: true }) - cy.wait("@query") - // Assert against Status Code, body, & body rows - cy.get("@query").its('response.statusCode') - .should('eq', 200) - cy.get("@query").its('response.body').should('not.be.empty') - cy.get("@query").its('response.body.rows').should('not.be.empty') - }) - - it("should run an invalid query within the transformer section", () => { - // Add REST datasource - contains API for breweries - const datasource = "REST" - const restUrl = "https://api.openbrewerydb.org/breweries" - cy.selectExternalDatasource(datasource) - cy.createRestQuery("GET", restUrl) - cy.get(".spectrum-Tabs-itemLabel").contains("Transformer").click() - // Clear the code box and add "test" - cy.get(".CodeMirror textarea") - .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true }) - .type("test") - // Run Query and intercept - cy.intercept('**/preview').as('queryError') - cy.get(".spectrum-Button").contains("Send").click({ force: true }) - cy.wait("@queryError") - cy.wait(500) - // Assert against message and status for the query error - cy.get("@queryError").its('response.body').should('have.property', 'message', "test is not defined") - cy.get("@queryError").its('response.body').should('have.property', 'status', 400) - }) - - it("should run an invalid query via POST request", () => { - // POST request with transformer as null - cy.request({method: 'POST', - url: `${Cypress.config().baseUrl}/api/queries/`, - body: {fields : {"headers":{},"queryString":null,"path":null}, - parameters : [], - schema : {}, - name : "test", - queryVerb : "read", - transformer : null, - datasourceId: "test"}, - // Expected 400 error - Transformer must be a string - failOnStatusCode: false}).then((response) => { - expect(response.status).to.equal(400) - expect(response.body.message).to.include('Invalid body - "transformer" must be a string') - }) - }) - - it("should run an empty query", () => { - // POST request with Transformer as an empty string - cy.request({method: 'POST', - url: `${Cypress.config().baseUrl}/api/queries/preview`, - body: {fields : {"headers":{},"queryString":null,"path":null}, - queryVerb : "read", - transformer : "", - datasourceId: "test"}, - // Expected 400 error - Transformer is not allowed to be empty - failOnStatusCode: false}).then((response) => { - expect(response.status).to.equal(400) - expect(response.body.message).to.include('Invalid body - "transformer" is not allowed to be empty') - }) - }) -}) diff --git a/packages/builder/cypress/integration/renameAnApplication.spec.js b/packages/builder/cypress/integration/renameAnApplication.spec.js index 49efb341c6..a954faee95 100644 --- a/packages/builder/cypress/integration/renameAnApplication.spec.js +++ b/packages/builder/cypress/integration/renameAnApplication.spec.js @@ -5,24 +5,17 @@ context("Rename an App", () => { }) it("should rename an unpublished application", () => { - const appName = "Cypress Tests" const appRename = "Cypress Renamed" // Rename app, Search for app, Confirm name was changed cy.get(".home-logo").click() - renameApp(appName, appRename) - cy.reload() - cy.wait(1000) + renameApp(appRename) cy.searchForApplication(appRename) cy.get(".appTable").find(".title").should("have.length", 1) - // Set app name back to Cypress Tests - cy.reload() - cy.wait(1000) - renameApp(appRename, appName) + cy.deleteApp(appRename) }) xit("Should rename a published application", () => { // It is not possible to rename a published application - const appName = "Cypress Tests" const appRename = "Cypress Renamed" // Publish the app cy.get(".toprightnav") @@ -34,28 +27,24 @@ xit("Should rename a published application", () => { }) // Rename app, Search for app, Confirm name was changed cy.get(".home-logo").click() - renameApp(appName, appRename, true) + renameApp(appRename, true) cy.searchForApplication(appRename) - cy.get(".appTable").find(".wrapper").should("have.length", 1) + cy.get(".appTable").find(".title").should("have.length", 1) }) it("Should try to rename an application to have no name", () => { - const appName = "Cypress Tests" cy.get(".home-logo").click() - renameApp(appName, " ", false, true) - cy.wait(500) + renameApp(" ", false, true) // Close modal and confirm name has not been changed cy.get(".spectrum-Dialog-grid").contains("Cancel").click() - cy.reload() - cy.wait(1000) - cy.searchForApplication(appName) + cy.searchForApplication("Cypress Tests") cy.get(".appTable").find(".title").should("have.length", 1) }) xit("Should create two applications with the same name", () => { // It is not possible to have applications with the same name const appName = "Cypress Tests" - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) cy.wait(500) cy.get(".spectrum-Button").contains("Create app").click({force: true}) cy.contains(/Start from scratch/).click() @@ -70,35 +59,22 @@ xit("Should create two applications with the same name", () => { it("should validate application names", () => { // App name must be letters, numbers and spaces only // This test checks numbers and special characters specifically - const appName = "Cypress Tests" const numberName = 12345 const specialCharName = "£$%^" cy.get(".home-logo").click() - renameApp(appName, numberName) - cy.reload() - cy.wait(1000) + renameApp(numberName) cy.searchForApplication(numberName) cy.get(".appTable").find(".title").should("have.length", 1) - cy.reload() - cy.wait(1000) - renameApp(numberName, specialCharName) + renameApp(specialCharName) cy.get(".error").should("have.text", "App name must be letters, numbers and spaces only") - // Set app name back to Cypress Tests - cy.reload() - cy.wait(1000) - renameApp(numberName, appName) }) - const renameApp = (originalName, changedName, published, noName) => { - cy.searchForApplication(originalName) - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) + const renameApp = (appName, published, noName) => { + cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`) .its("body") .then(val => { if (val.length > 0) { - cy.get(".appTable") - .within(() => { - cy.get(".spectrum-Icon").eq(1).click() - }) + cy.get(".appTable > :nth-child(5) > :nth-child(2) > .spectrum-Icon").click() // Check for when an app is published if (published == true){ // Should not have Edit as option, will unpublish app @@ -117,7 +93,7 @@ it("should validate application names", () => { return cy } cy.get("input").clear() - cy.get("input").eq(0).type(changedName).should("have.value", changedName).blur() + cy.get("input").eq(0).type(appName).should("have.value", appName).blur() cy.get(".spectrum-ButtonGroup").contains("Save").click({force: true}) cy.wait(500) }) diff --git a/packages/builder/cypress/integration/revertApp.spec.js b/packages/builder/cypress/integration/revertApp.spec.js deleted file mode 100644 index 2f49e64bf3..0000000000 --- a/packages/builder/cypress/integration/revertApp.spec.js +++ /dev/null @@ -1,62 +0,0 @@ -context("Revert apps", () => { - before(() => { - cy.login() - cy.createTestApp() - }) - - it("should try to revert an unpublished app", () => { - // Click revert icon - cy.get(".toprightnav").within(() => { - cy.get(".spectrum-Icon").eq(1).click() - }) - cy.get(".spectrum-Dialog-grid").within(() => { - // Enter app name before revert - cy.get("input").type("Cypress Tests") - cy.intercept('**/revert').as('revertApp') - // Click Revert - cy.get(".spectrum-Button").contains("Revert").click({ force: true }) - // Intercept Request after button click & apply assertions - cy.wait("@revertApp") - cy.get("@revertApp").its('response.body').should('have.property', 'message', "App has not yet been deployed") - cy.get("@revertApp").its('response.body').should('have.property', 'status', 400) - }) - }) - - it("should revert a published app", () => { - // Add initial component - Paragraph - cy.addComponent("Elements", "Paragraph") - // Publish app - cy.get(".spectrum-Button").contains("Publish").click({ force: true }) - cy.get(".spectrum-ButtonGroup").within(() => { - cy.get(".spectrum-Button").contains("Publish").click({ force: true }) - }) - // Add second component - Button - cy.addComponent("Elements", "Button") - // Click Revert - cy.get(".toprightnav").within(() => { - cy.get(".spectrum-Icon").eq(1).click() - }) - cy.get(".spectrum-Dialog-grid").within(() => { - // Click Revert - cy.get(".spectrum-Button").contains("Revert").click({ force: true }) - cy.wait(1000) - }) - // Confirm Paragraph component is still visible - cy.get(".root").contains("New Paragraph") - // Confirm Button component is not visible - cy.get(".root").should("not.have.text", "New Button") - }) - - it("should enter incorrect app name when reverting", () => { - // Click Revert - cy.get(".toprightnav").within(() => { - cy.get(".spectrum-Icon").eq(1).click() - }) - // Enter incorrect app name - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get("input").type("Cypress Tests") - // Revert button within modal should be disabled - cy.get(".spectrum-Button").eq(1).should('be.disabled') - }) - }) -}) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index e69bc8badc..8203ca84f9 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -10,7 +10,7 @@ Cypress.on("uncaught:exception", () => { }) Cypress.Commands.add("login", () => { - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) cy.wait(2000) cy.url().then(url => { if (url.includes("builder/admin")) { @@ -33,77 +33,32 @@ Cypress.Commands.add("login", () => { }) Cypress.Commands.add("createApp", name => { - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) cy.wait(500) - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) - .its("body") - .then(body => { - if (body.length > 0) { - cy.get(".spectrum-Button").contains("Create app").click({ force: true }) - } - }) cy.contains(/Start from scratch/).dblclick() cy.wait(2000) cy.get(".spectrum-Modal").within(() => { cy.get("input").eq(0).type(name).should("have.value", name).blur() cy.get(".spectrum-ButtonGroup").contains("Create app").click() - cy.wait(5000) + cy.wait(7000) }) - cy.createTable("Cypress Tests", true) }) -Cypress.Commands.add("deleteApp", name => { - cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.wait(2000) - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) +Cypress.Commands.add("deleteApp", appName => { + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) + cy.wait(1000) + cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`) .its("body") .then(val => { if (val.length > 0) { - cy.searchForApplication(name) - cy.get(".appTable").within(() => { - cy.get(".spectrum-Icon").eq(1).click() + cy.get( + ".appTable > :nth-child(5) > :nth-child(2) > .spectrum-Icon" + ).click() + cy.contains("Delete").click() + cy.get(".spectrum-Modal").within(() => { + cy.get("input").type(appName) + cy.get(".spectrum-Button--warning").click() }) - cy.get(".spectrum-Menu").then($menu => { - if ($menu.text().includes("Unpublish")) { - cy.get(".spectrum-Menu").contains("Unpublish").click() - cy.get(".spectrum-Dialog-grid").contains("Unpublish app").click() - } else { - cy.get(".spectrum-Menu").contains("Delete").click() - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get("input").type(name) - }) - cy.get(".spectrum-Button--warning").click() - } - }) - } else { - return - } - }) -}) - -Cypress.Commands.add("deleteAllApps", () => { - cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.wait(500) - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) - .its("body") - .then(val => { - for (let i = 0; i < val.length; i++) { - cy.get(".spectrum-Heading") - .eq(1) - .then(app => { - const name = app.text() - cy.get(".title") - .children() - .within(() => { - cy.get(".spectrum-Icon").eq(0).click() - }) - cy.get(".spectrum-Menu").contains("Delete").click() - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get("input").type(name) - cy.get(".spectrum-Button--warning").click() - }) - cy.reload() - }) } }) }) @@ -112,7 +67,6 @@ Cypress.Commands.add("createTestApp", () => { const appName = "Cypress Tests" cy.deleteApp(appName) cy.createApp(appName, "This app is used for Cypress testing.") - cy.createScreen("home", "home") }) Cypress.Commands.add("createTestTableWithData", () => { @@ -121,18 +75,10 @@ Cypress.Commands.add("createTestTableWithData", () => { cy.addColumn("dog", "age", "Number") }) -Cypress.Commands.add("createTable", (tableName, initialTable) => { - if (!initialTable) { - cy.navigateToDataSection() - cy.get(".add-button").click() - } - cy.wait(7000) - cy.get(".spectrum-Modal") - .contains("Budibase DB") - .click() - .then(() => { - cy.get(".spectrum-Button").contains("Continue").click({ force: true }) - }) +Cypress.Commands.add("createTable", tableName => { + cy.contains("Budibase DB").click() + cy.contains("Create new table").click() + cy.get(".spectrum-Modal").within(() => { cy.wait(1000) cy.get("input").first().type(tableName).blur() @@ -239,49 +185,22 @@ Cypress.Commands.add("navigateToFrontend", () => { cy.wait(1000) cy.contains("Design").click() cy.get(".spectrum-Search").type("/") + cy.createScreen("home", "home") + cy.addComponent("Elements", "Headline") cy.get(".nav-item").contains("home").click() }) -Cypress.Commands.add("navigateToDataSection", () => { - // Clicks on the Data tab - cy.wait(500) - cy.contains("Data").click() -}) - Cypress.Commands.add("createScreen", (screenName, route) => { - cy.contains("Design").click() cy.get("[aria-label=AddCircle]").click() cy.get(".spectrum-Modal").within(() => { - cy.get(".item").contains("Blank").click() - cy.get(".spectrum-Button").contains("Add Screens").click({ force: true }) - cy.wait(500) + cy.get(".item").first().click() + cy.get(".spectrum-Button--cta").click() }) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Form-itemField").eq(0).type(screenName) - cy.get(".spectrum-Form-itemField").eq(1).type(route) - cy.get(".spectrum-Button").contains("Continue").click({ force: true }) - cy.wait(1000) - }) -}) - -Cypress.Commands.add("createAutogeneratedScreens", screenNames => { - // Screen name must already exist within data source - cy.contains("Design").click() - cy.get("[aria-label=AddCircle]").click() - for (let i = 0; i < screenNames.length; i++) { - cy.get(".item").contains(screenNames[i]).click() - } - cy.get(".spectrum-Button").contains("Add Screens").click({ force: true }) - cy.wait(2000) -}) - -Cypress.Commands.add("addRow", values => { - cy.contains("Create row").click() cy.get(".spectrum-Modal").within(() => { - for (let i = 0; i < values.length; i++) { - cy.get("input").eq(i).type(values[i]).blur() - } - cy.get(".spectrum-ButtonGroup").contains("Create").click() + cy.get("input").first().clear().type(screenName) + cy.get("input").eq(1).clear().type(route) + cy.get(".spectrum-Button--cta").click() + cy.wait(2000) }) }) @@ -319,145 +238,7 @@ Cypress.Commands.add("addCustomSourceOptions", totalOptions => { }) Cypress.Commands.add("searchForApplication", appName => { - cy.wait(1000) - // Searches for the app - cy.get(".filter").then(() => { - cy.get(".spectrum-Textfield").within(() => { - cy.get("input").eq(0).type(appName) - }) - }) - // Confirms app exists after search - cy.get(".appTable").contains(appName) -}) - -Cypress.Commands.add("selectExternalDatasource", datasourceName => { - // Navigates to Data Section - cy.navigateToDataSection() - // Open Data Source modal - cy.get(".nav").within(() => { - cy.get(".add-button").click() - }) - // Clicks specified datasource & continue - cy.get(".item-list").contains(datasourceName).click() - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button").contains("Continue").click({ force: true }) + cy.get(".spectrum-Textfield").within(() => { + cy.get("input").eq(0).type(appName) }) }) - -Cypress.Commands.add("addDatasourceConfig", (datasource, skipFetch) => { - // selectExternalDatasource should be called prior to this - // Adds the config for specified datasource & fetches tables - // Currently supports MySQL, PostgreSQL, Oracle - // Host IP Address - cy.wait(500) - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".form-row") - .eq(0) - .within(() => { - cy.get(".spectrum-Textfield").within(() => { - cy.log(datasource) - if (datasource == "Oracle") { - cy.get("input").clear().type(Cypress.env("oracle").HOST) - } else { - cy.get("input").clear().type(Cypress.env("HOST_IP")) - } - }) - }) - }) - // Database Name - cy.get(".spectrum-Dialog-grid").within(() => { - if (datasource == "MySQL") { - cy.get(".form-row") - .eq(4) - .within(() => { - cy.get("input").clear().type(Cypress.env("mysql").DATABASE) - }) - } else { - cy.get(".form-row") - .eq(2) - .within(() => { - if (datasource == "PostgreSQL") { - cy.get("input").clear().type(Cypress.env("postgresql").DATABASE) - } - if (datasource == "Oracle") { - cy.get("input").clear().type(Cypress.env("oracle").DATABASE) - } - }) - } - }) - // User - cy.get(".spectrum-Dialog-grid").within(() => { - if (datasource == "MySQL") { - cy.get(".form-row") - .eq(2) - .within(() => { - cy.get("input").clear().type(Cypress.env("mysql").USER) - }) - } else { - cy.get(".form-row") - .eq(3) - .within(() => { - if (datasource == "PostgreSQL") { - cy.get("input").clear().type(Cypress.env("postgresql").USER) - } - if (datasource == "Oracle") { - cy.get("input").clear().type(Cypress.env("oracle").USER) - } - }) - } - }) - // Password - cy.get(".spectrum-Dialog-grid").within(() => { - if (datasource == "MySQL") { - cy.get(".form-row") - .eq(3) - .within(() => { - cy.get("input").clear().type(Cypress.env("mysql").PASSWORD) - }) - } else { - cy.get(".form-row") - .eq(4) - .within(() => { - if (datasource == "PostgreSQL") { - cy.get("input").clear().type(Cypress.env("postgresql").PASSWORD) - } - if (datasource == "Oracle") { - cy.get("input").clear().type(Cypress.env("oracle").PASSWORD) - } - }) - } - }) - // Click to fetch tables - if (skipFetch) { - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button") - .contains("Skip table fetch") - .click({ force: true }) - }) - } else { - cy.get(".spectrum-Dialog-grid").within(() => { - cy.get(".spectrum-Button") - .contains("Save and fetch tables") - .click({ force: true }) - cy.wait(1000) - }) - } -}) - -Cypress.Commands.add("createRestQuery", (method, restUrl) => { - // addExternalDatasource should be called prior to this - // Configures REST datasource & sends query - cy.wait(500) - cy.get(".spectrum-Button").contains("Add query").click({ force: true }) - // Select Method & add Rest URL - cy.get(".spectrum-Picker-label").eq(1).click() - cy.get(".spectrum-Menu").contains(method).click() - cy.get("input").clear().type(restUrl) - // Send query - cy.get(".spectrum-Button").contains("Send").click({ force: true }) - cy.wait(500) - cy.get(".spectrum-Button").contains("Save query").click({ force: true }) - cy.get(".hierarchy-items-container") - .should("contain", method) - .and("contain", restUrl) -}) diff --git a/packages/builder/cypress/support/queryLevelTransformerFunction.js b/packages/builder/cypress/support/queryLevelTransformerFunction.js deleted file mode 100644 index 213d2abc20..0000000000 --- a/packages/builder/cypress/support/queryLevelTransformerFunction.js +++ /dev/null @@ -1,14 +0,0 @@ -// eslint-disable-next-line -const breweries = data -const totals = {} - -for (let brewery of breweries) { - const state = brewery.state - if (totals[state] == null) { - totals[state] = 1 - } else { - totals[state]++ - } -} -const entries = Object.entries(totals) -return entries.map(([state, count]) => ({ state, count })) diff --git a/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js b/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js deleted file mode 100644 index 3d4f6024d2..0000000000 --- a/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js +++ /dev/null @@ -1,31 +0,0 @@ -// eslint-disable-next-line -const breweries = data -const totals = {} -for (let brewery of breweries) { - const state = brewery.state - if (totals[state] == null) { - totals[state] = 1 - } else { - totals[state]++ - } -} -const stateCodes = { - texas: "tx", - colorado: "co", - florida: "fl", - iwoa: "ia", - louisiana: "la", - california: "ca", - pennsylvania: "pa", - georgia: "ga", - "new hampshire": "nh", - virginia: "va", - michigan: "mi", - maryland: "md", - ohio: "oh", -} -const entries = Object.entries(totals) -return entries.map(([state, count]) => { - stateCodes[state.toLowerCase()] - return { state, count, flag: "http://flags.ox3.in/svg/us/${stateCode}.svg" } -}) diff --git a/packages/builder/package.json b/packages/builder/package.json index 90b95c9b32..cb46a2a961 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -95,7 +95,7 @@ "@testing-library/jest-dom": "^5.11.10", "@testing-library/svelte": "^3.0.0", "babel-jest": "^26.6.3", - "cypress": "9.2.1", + "cypress": "^5.1.0", "cypress-terminal-report": "^1.4.1", "identity-obj-proxy": "^3.0.0", "jest": "^26.6.3", diff --git a/packages/builder/yarn.lock b/packages/builder/yarn.lock index a3018323b2..9fff990b23 100644 --- a/packages/builder/yarn.lock +++ b/packages/builder/yarn.lock @@ -915,179 +915,11 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/bbui@^0.9.139": - version "0.9.187" - resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.187.tgz#84f0a37301cfa41f50eaa335243ac08923d9e34f" - integrity sha512-Qy24x99NloRAoG78NMdzoJuX3Gbf+eZdHeYTAeUchljB4o2W2L/Ous8qYBzqigYtVcChjzteSTAZ2jCLq458Vg== - dependencies: - "@adobe/spectrum-css-workflow-icons" "^1.2.1" - "@spectrum-css/actionbutton" "^1.0.1" - "@spectrum-css/actiongroup" "^1.0.1" - "@spectrum-css/avatar" "^3.0.2" - "@spectrum-css/button" "^3.0.1" - "@spectrum-css/buttongroup" "^3.0.2" - "@spectrum-css/checkbox" "^3.0.2" - "@spectrum-css/dialog" "^3.0.1" - "@spectrum-css/divider" "^1.0.3" - "@spectrum-css/dropzone" "^3.0.2" - "@spectrum-css/fieldgroup" "^3.0.2" - "@spectrum-css/fieldlabel" "^3.0.1" - "@spectrum-css/icon" "^3.0.1" - "@spectrum-css/illustratedmessage" "^3.0.2" - "@spectrum-css/inputgroup" "^3.0.2" - "@spectrum-css/label" "^2.0.10" - "@spectrum-css/link" "^3.1.1" - "@spectrum-css/menu" "^3.0.1" - "@spectrum-css/modal" "^3.0.1" - "@spectrum-css/pagination" "^3.0.3" - "@spectrum-css/picker" "^1.0.1" - "@spectrum-css/popover" "^3.0.1" - "@spectrum-css/progressbar" "^1.0.2" - "@spectrum-css/progresscircle" "^1.0.2" - "@spectrum-css/radio" "^3.0.2" - "@spectrum-css/search" "^3.0.2" - "@spectrum-css/sidenav" "^3.0.2" - "@spectrum-css/statuslight" "^3.0.2" - "@spectrum-css/stepper" "^3.0.3" - "@spectrum-css/switch" "^1.0.2" - "@spectrum-css/table" "^3.0.1" - "@spectrum-css/tabs" "^3.0.1" - "@spectrum-css/tags" "^3.0.2" - "@spectrum-css/textfield" "^3.0.1" - "@spectrum-css/toast" "^3.0.1" - "@spectrum-css/tooltip" "^3.0.3" - "@spectrum-css/treeview" "^3.0.2" - "@spectrum-css/typography" "^3.0.1" - "@spectrum-css/underlay" "^2.0.9" - "@spectrum-css/vars" "^3.0.1" - dayjs "^1.10.4" - svelte-flatpickr "^3.2.3" - svelte-portal "^1.0.0" - -"@budibase/bbui@^0.9.185-alpha.10", "@budibase/bbui@^0.9.190": - version "0.9.190" - resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.190.tgz#e1ec400ac90f556bfbc80fc23a04506f1585ea81" - integrity sha512-eQg5JzN6BT4zmn1erO+iJlfYltCFODmxk11FAApKj4Pe0qZrkSDs9yZRDhwt6PPIZt+Vver8K8J/L29AmX7AIw== - dependencies: - "@adobe/spectrum-css-workflow-icons" "^1.2.1" - "@spectrum-css/actionbutton" "^1.0.1" - "@spectrum-css/actiongroup" "^1.0.1" - "@spectrum-css/avatar" "^3.0.2" - "@spectrum-css/button" "^3.0.1" - "@spectrum-css/buttongroup" "^3.0.2" - "@spectrum-css/checkbox" "^3.0.2" - "@spectrum-css/dialog" "^3.0.1" - "@spectrum-css/divider" "^1.0.3" - "@spectrum-css/dropzone" "^3.0.2" - "@spectrum-css/fieldgroup" "^3.0.2" - "@spectrum-css/fieldlabel" "^3.0.1" - "@spectrum-css/icon" "^3.0.1" - "@spectrum-css/illustratedmessage" "^3.0.2" - "@spectrum-css/inlinealert" "^2.0.1" - "@spectrum-css/inputgroup" "^3.0.2" - "@spectrum-css/label" "^2.0.10" - "@spectrum-css/link" "^3.1.1" - "@spectrum-css/menu" "^3.0.1" - "@spectrum-css/modal" "^3.0.1" - "@spectrum-css/pagination" "^3.0.3" - "@spectrum-css/picker" "^1.0.1" - "@spectrum-css/popover" "^3.0.1" - "@spectrum-css/progressbar" "^1.0.2" - "@spectrum-css/progresscircle" "^1.0.2" - "@spectrum-css/radio" "^3.0.2" - "@spectrum-css/search" "^3.0.2" - "@spectrum-css/sidenav" "^3.0.2" - "@spectrum-css/statuslight" "^3.0.2" - "@spectrum-css/stepper" "^3.0.3" - "@spectrum-css/switch" "^1.0.2" - "@spectrum-css/table" "^3.0.1" - "@spectrum-css/tabs" "^3.0.1" - "@spectrum-css/tags" "^3.0.2" - "@spectrum-css/textfield" "^3.0.1" - "@spectrum-css/toast" "^3.0.1" - "@spectrum-css/tooltip" "^3.0.3" - "@spectrum-css/treeview" "^3.0.2" - "@spectrum-css/typography" "^3.0.1" - "@spectrum-css/underlay" "^2.0.9" - "@spectrum-css/vars" "^3.0.1" - dayjs "^1.10.4" - svelte-flatpickr "^3.2.3" - svelte-portal "^1.0.0" - -"@budibase/client@^0.9.185-alpha.10": - version "0.9.190" - resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.190.tgz#3a2ad06f5a0fcfe815ad59a2a03215960d67d875" - integrity sha512-DKl8aZAoXueyUyzmWPDKJeKAFtS5vMbv7pko8SdA3jDu53mJUhEUxPjhqkyvD+qYoHbxj9kBWLVq1lSppMiWtw== - dependencies: - "@budibase/bbui" "^0.9.190" - "@budibase/standard-components" "^0.9.139" - "@budibase/string-templates" "^0.9.190" - regexparam "^1.3.0" - shortid "^2.2.15" - svelte-spa-router "^3.0.5" - "@budibase/colorpicker@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@budibase/colorpicker/-/colorpicker-1.1.2.tgz#f7436924ee746d7be9b2009c2fa193e710c30f89" integrity sha512-2PlZBVkATDqDC4b4Ri8Xi8X3OxhuHOGfmZwtXbZL38lNIeofaQT3Qyc1ECzEY5N+HrdGrWhY9EnliF6QM+LIuA== -"@budibase/handlebars-helpers@^0.11.7": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46" - integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw== - dependencies: - array-sort "^1.0.0" - define-property "^2.0.2" - extend-shallow "^3.0.2" - for-in "^1.0.2" - get-object "^0.2.0" - get-value "^3.0.1" - handlebars "^4.7.7" - handlebars-utils "^1.0.6" - has-value "^2.0.2" - helper-date "^1.0.1" - helper-markdown "^1.0.0" - helper-md "^0.2.2" - html-tag "^2.0.0" - is-even "^1.0.0" - is-glob "^4.0.1" - kind-of "^6.0.3" - micromatch "^3.1.5" - relative "^3.0.2" - striptags "^3.1.1" - to-gfm-code-block "^0.1.1" - year "^0.2.1" - -"@budibase/standard-components@^0.9.139": - version "0.9.139" - resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3" - integrity sha512-Av0u9Eq2jerjhG6Atta+c0mOQGgE5K0QI3cm+8s/3Vki6/PXkO1YL5Alo3BOn9ayQAVZ/xp4rtZPuN/rzRibHw== - dependencies: - "@budibase/bbui" "^0.9.139" - "@spectrum-css/button" "^3.0.3" - "@spectrum-css/card" "^3.0.3" - "@spectrum-css/divider" "^1.0.3" - "@spectrum-css/link" "^3.1.3" - "@spectrum-css/page" "^3.0.1" - "@spectrum-css/typography" "^3.0.2" - "@spectrum-css/vars" "^3.0.1" - apexcharts "^3.22.1" - dayjs "^1.10.5" - svelte-apexcharts "^1.0.2" - svelte-flatpickr "^3.1.0" - -"@budibase/string-templates@^0.9.185-alpha.10", "@budibase/string-templates@^0.9.190": - version "0.9.190" - resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.190.tgz#47973461cf2b465db59568242b6524cebba0d535" - integrity sha512-OwwIwR2Z3N23Z1rQmT0+Wh+jbljJNYSu5jqQabEYCrzWvknqPUUqmMFS8PMRbUSPFI32aO2DXER/Q4OMH07nrQ== - dependencies: - "@budibase/handlebars-helpers" "^0.11.7" - dayjs "^1.10.4" - handlebars "^4.7.6" - handlebars-utils "^1.0.6" - lodash "^4.17.20" - vm2 "^3.9.4" - "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -1096,10 +928,20 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@cypress/request@^2.88.10": - version "2.88.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" - integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== +"@cypress/listr-verbose-renderer@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" + integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +"@cypress/request@^2.88.5": + version "2.88.7" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.7.tgz#386d960ab845a96953723348088525d5a75aaac4" + integrity sha512-FTULIP2rnDJvZDT9t6B4nSfYR40ue19tVmv3wUcY05R9/FPCoMl1nAPJkzWzBCo7ltVn5ThQTbxiMoGBN7k0ig== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1108,7 +950,8 @@ extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - http-signature "~1.3.6" + har-validator "~5.1.3" + http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" @@ -1411,6 +1254,13 @@ node-fetch "^2.6.0" utf-8-validate "^5.0.2" +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + "@sentry/browser@5.19.1": version "5.19.1" resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.19.1.tgz#b22f36fc71f36719ad352a54e6b31722622128c0" @@ -1494,108 +1344,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@spectrum-css/actionbutton@^1.0.1": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/actionbutton/-/actionbutton-1.0.9.tgz#b4fe75f9f4327264b5903ed4a0c4d50da4f6da3f" - integrity sha512-wDRJWbWrPTOJZTXCqwpUUfFYXfQwGjkd0bQdvZMUdtBbMnck7yBuWFAL0T5JPQUN9LjFcUyAxGRiwkjoDtwtqQ== - -"@spectrum-css/actiongroup@^1.0.1": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/actiongroup/-/actiongroup-1.0.9.tgz#f0c3b2f1ecca11517a47c860904db97f35f1afd4" - integrity sha512-HGsVvWuDV2et0Z9VZhgeOYD3DH5U80kx9L/rrIGGi25mderyfDHGJZfAQfJg8fptTsXhq3Nv6u4DUaUJlproCw== - -"@spectrum-css/avatar@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@spectrum-css/avatar/-/avatar-3.0.2.tgz#4f1826223eae330e64b6d3cc899e9bc2e98dac95" - integrity sha512-wEczvSqxttTWSiL3cOvXV/RmGRwSkw2w6+slcHhnf0kb7ovymMM+9oz8vvEpEsSeo5u598bc+7ktrKFpAd6soQ== - -"@spectrum-css/button@^3.0.1", "@spectrum-css/button@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/button/-/button-3.0.3.tgz#2df1efaab6c7e0b3b06cb4b59e1eae59c7f1fc84" - integrity sha512-6CnLPqqtaU/PcSSIGeGRi0iFIIxIUByYLKFO6zn5NEUc12KQ28dJ4PLwB6WBa0L8vRoAGlnWWH2ZZweTijbXgg== - -"@spectrum-css/buttongroup@^3.0.2": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/buttongroup/-/buttongroup-3.0.9.tgz#62d6f04994846f9dd341f811e101d372fc200ae0" - integrity sha512-OsvTl5x6vfRSy8kYGZMzdp1ksUyKeySBa5QWSUl/g1j6XztDeB8Lxapc+VUV6TmrB9qhWglZNVodlIL2jsiWKw== - -"@spectrum-css/card@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/card/-/card-3.0.3.tgz#56b2e2da6b80c1583228baa279de7407383bfb6b" - integrity sha512-+oKLUI2a0QmQP9EzySeq/G4FpUkkdaDNbuEbqCj2IkPMc/2v/nwzsPhh1fj2UIghGAiiUwXfPpzax1e8fyhQUg== - -"@spectrum-css/checkbox@^3.0.2": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/checkbox/-/checkbox-3.0.9.tgz#7fef1887912289f7c86e181dca24108e6be7d90e" - integrity sha512-lSlkvNHwgSX+JNzzJ5OgZ/a7KtikcthJi2YWcZb567RH8g0+SQ6ooYBRVDFvB6aH6eypiX/7n6Nh03yYT3w+Ug== - -"@spectrum-css/dialog@^3.0.1": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@spectrum-css/dialog/-/dialog-3.0.10.tgz#f70ed878385bce6bf39c106b31abed20a13e8ccf" - integrity sha512-8Rq4tTz+CUdVGm2B4ifsw87EOraFvuaZiJwuMyPe0XW2VZ0LiAaiIBJq8s+NCMMwlGxkvEC0HFjWphC3nSj64A== - -"@spectrum-css/divider@^1.0.3": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/divider/-/divider-1.0.9.tgz#00246bd453981c4696149d26f5bcfeefd29b4b53" - integrity sha512-kmSMSXbm56FR0/OAGwT6tlsHuy1OpOve2DBggjND+AVWk6i3TpoTjvbVppy/f8fuLfbMDS5D3MPD27wTEj8wDA== - dependencies: - "@spectrum-css/vars" "^4.3.0" - -"@spectrum-css/dropzone@^3.0.2": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/dropzone/-/dropzone-3.0.9.tgz#7dc39302fbebeb16b28c0b5070de86f33757f752" - integrity sha512-VQBCHvrt3vShgch1DTgc9ls3hx5Tre30dLxdeDFWtflyBkDrEhzwNblpL1+fB70suqDK6eanOrcnuC1VVp7gkA== - -"@spectrum-css/fieldgroup@^3.0.2": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/fieldgroup/-/fieldgroup-3.0.9.tgz#067310ab302b5777ceb7712511405043edf2a6ec" - integrity sha512-y8CRNyUfi0mKDrPTbAjkea4hQp9WxZkkECUO3Ca8BrA5TN/nuQ91FyZzZ0fn68XACvi41nDLMhYp/e8dE5Ahtw== - -"@spectrum-css/fieldlabel@^3.0.1": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/fieldlabel/-/fieldlabel-3.0.3.tgz#f73c04d20734d4718ffb620dc46458904685b449" - integrity sha512-nEvIkEXCD5n4fW67Unq6Iu7VXoauEd/JGpfTY02VsC5p4FJLnwKfPDbJUuUsqClAxqw7nAsmXVKtn4zQFf5yPQ== - -"@spectrum-css/icon@^3.0.1": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/icon/-/icon-3.0.9.tgz#6608239fb32a5c622c6c04d61fc185797e8e0410" - integrity sha512-aX7B5+XOl4ObkJVcyyUCIbeFSdSXVAuyRQbLMzHetv85yihJX3D91jt1thkQVG2wS47jSl76QMq3WQ8DZxbQ+A== - -"@spectrum-css/illustratedmessage@^3.0.2": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/illustratedmessage/-/illustratedmessage-3.0.8.tgz#69ef0c935bcc5027f233a78de5aeb0064bf033cb" - integrity sha512-HvC4dywDi11GdrXQDCvKQ0vFlrXLTyJuc9UKf7meQLCGoJbGYDBwe+tHXNK1c6gPMD9BoL6pPMP1K/vRzR4EBQ== - -"@spectrum-css/inlinealert@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@spectrum-css/inlinealert/-/inlinealert-2.0.6.tgz#4c5e923a1f56a96cc1adb30ef1f06ae04f2c6376" - integrity sha512-OpvvoWP02wWyCnF4IgG8SOPkXymovkC9cGtgMS1FdDubnG3tJZB/JeKTsRR9C9Vt3WBaOmISRdSKlZ4lC9CFzA== - -"@spectrum-css/inputgroup@^3.0.2": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/inputgroup/-/inputgroup-3.0.8.tgz#fc23afc8a73c24d17249c9d2337e8b42085b298b" - integrity sha512-cmQWzFp0GU+4IMc8SSeVFdmQDlRUdPelXaQdKUR9mZuO2iYettg37s0lfBCeJyYkUNTagz0zP8O7A0iXfmeE6g== - -"@spectrum-css/label@^2.0.10": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@spectrum-css/label/-/label-2.0.10.tgz#2368651d7636a19385b5d300cdf6272db1916001" - integrity sha512-xCbtEiQkZIlLdWFikuw7ifDCC21DOC/KMgVrrVJHXFc4KRQe9LTZSqmGF3tovm+CSq1adE59mYoTbojVQ9YuEQ== - -"@spectrum-css/link@^3.1.1", "@spectrum-css/link@^3.1.3": - version "3.1.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/link/-/link-3.1.9.tgz#fe40db561c98bf2987489541ef39dcc71416908f" - integrity sha512-/DpmLIbQGDBNZl+Fnf5VDQ34uC6E6Bz393CAYkzYFyadtvzVEy+PGCgUkT3Tgrwu833IW9fZOh7rkKjw1o/Zng== - -"@spectrum-css/menu@^3.0.1": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@spectrum-css/menu/-/menu-3.0.9.tgz#f1f5e7b715fa979701f535545628d44faca815e0" - integrity sha512-vEXdpfzmoYYyA/ShReqc2+aG5BGCFwOybpJSzDIPfWTNIk/1IyjCycJo4+sRIE1CXS1Z7mP+PnJa+8EjXqnYGw== - -"@spectrum-css/modal@^3.0.1": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/modal/-/modal-3.0.8.tgz#b1bb62bd10e1b2c37bef447e72e9ada34b974321" - integrity sha512-wJsTKp3ApCVOUdASbjxuxt3ngqFo31S0sDeOYTE752eckB+fYnUOzDfm5bGvBjhsgAMqmXwlnj/4kRjfVSRN8A== - "@spectrum-css/page@^3.0.1": version "3.0.8" resolved "https://registry.yarnpkg.com/@spectrum-css/page/-/page-3.0.8.tgz#001efa9e4c10095df9b2b37cf7d7d6eb60140190" @@ -1603,106 +1351,6 @@ dependencies: "@spectrum-css/vars" "^4.3.0" -"@spectrum-css/pagination@^3.0.3": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/pagination/-/pagination-3.0.8.tgz#4ffcc93c55221196ac9283759df0a1233c2f9cde" - integrity sha512-eRNaLjSmQ7xE7WKd2jGQPu4LewvvKIddTL33KXAOMlzoq49PAMwoil7GT4oozwlAguyZGQUbbao0oQCQsXH1Uw== - -"@spectrum-css/picker@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@spectrum-css/picker/-/picker-1.1.2.tgz#717c5175ffbf021243170b3832c396c652571d50" - integrity sha512-5iKZaHvfhwMTAQndWgE6QIOuIqpldQuOUm1F0MJtatiOfFbGcCaNxkgSRls880UwZDb5A528qh7LllCUQ5ejsQ== - -"@spectrum-css/popover@^3.0.1": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/popover/-/popover-3.0.8.tgz#c43969a3b6277c60f6e0edda99f88ef7fa3343ad" - integrity sha512-6iKtubtANDg99vSuHPpgRA9UBqS9FrU6C0WQMw9p7QIJl+9Z/tah7jExMzi1R4OBsHvlSQy+rf7RAq+qtnjhng== - -"@spectrum-css/progressbar@^1.0.2": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/progressbar/-/progressbar-1.0.8.tgz#33a7a646caa874a67ea88fea61a7277d50490911" - integrity sha512-maFAEPsSaCJ++TEZSmnZMZORvRN+exdQhUDbFHXQ6cM4PILHQ3ig1MtPtBKvSk1klyFcLZuvQY+/l9sfRAg4jA== - -"@spectrum-css/progresscircle@^1.0.2": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@spectrum-css/progresscircle/-/progresscircle-1.0.7.tgz#b45ba1ebd151730faad3ea658c2c70554ddfcf1f" - integrity sha512-99ZpedzVxQBYTuxOvwq5AGcSnGwrDyq5GCnybrK60PlovyFzTtP3GNEvZEaQftQ5Wl/96HrjoQin/eosyDy3hQ== - -"@spectrum-css/radio@^3.0.2": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/radio/-/radio-3.0.8.tgz#be1cf33ab5e4c619ac649b7db223db131272f128" - integrity sha512-+QCfSo0NS20tqIM34aY80fkwpvbtzDZ9lRCBwFq3tY4D8FzzAwt5h0MSh7BFscZGQG8FT5ZFkx4bdjnQGKByDg== - -"@spectrum-css/search@^3.0.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@spectrum-css/search/-/search-3.1.2.tgz#8d43f35f884f7c190e7694c8d26a3f2cfed01ef0" - integrity sha512-8cMK1QB07dbReZ/ECyTyoT2dELZ7hK1b3jEDiWSeLBbXcKirR1OI24sZEnewQY/XWFd/62Z1YdNaaA8S6UuXWQ== - -"@spectrum-css/sidenav@^3.0.2": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/sidenav/-/sidenav-3.0.8.tgz#d32d081461860f7aeb988d02bebbdd475637b2b1" - integrity sha512-tG7DIvBiYG0kFyIMZtNp/qbSWJD4HSjzYQDVMZs5d87XnrfwncNSTW12+/rHskanlCS6WiOzSOxzHd8KlzaRtw== - -"@spectrum-css/statuslight@^3.0.2": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@spectrum-css/statuslight/-/statuslight-3.0.7.tgz#2bcc63885f13009a3a7e8466ba6d9398f3db697f" - integrity sha512-nR5laz06SkvUxl3YU6k96OpXYXbekhgAKZTdyWQyAFVivYvOx3B1mgSMQGkYXyXzTrWouOmSaIWtErfJQkT0xg== - -"@spectrum-css/stepper@^3.0.3": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@spectrum-css/stepper/-/stepper-3.0.8.tgz#551b6b4ed99bbb414a3ce9e3ae7a9565acebfc45" - integrity sha512-5lMEQzqYPAOqkxIFNGmHOKIIXBL2NoebZFYFSdyC0Rv6dRJz+hO2BuaVRSuDLiq0EkNJv/JAI78wX99/qbzrZw== - -"@spectrum-css/switch@^1.0.2": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@spectrum-css/switch/-/switch-1.0.7.tgz#4996990ed1c265565b8660d20b50fe16e431fff1" - integrity sha512-ig88HDNFrz97afSdbH4v0u/6nM45KD0npeTMrqk5MdiL2diMAugy+SeEG7T6s5k1wCDkQQhl60RFIn4+n7qNmw== - -"@spectrum-css/table@^3.0.1": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/table/-/table-3.0.3.tgz#7f7f19905ef3275cbf907ce3a5818e63c30b2caf" - integrity sha512-nxwzVjLPsXoY/v4sdxOVYLcC+cEbGgJyLcLclT5LT9MGSbngFeUMJzzVR4EvehzuN4dH7hrATG7Mbuq29Mf0Hg== - -"@spectrum-css/tabs@^3.0.1": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@spectrum-css/tabs/-/tabs-3.1.4.tgz#3facac0ec62c9864caddf4b8bbd343023d03e1ec" - integrity sha512-8S9nJgf6TFGIa6nfn+TC6cbI+d6cxr4kc+6ICt9YPmuUditlcuwRc6bdscm+q7KzS9USoq9zFq9ya5xG2wQkGg== - -"@spectrum-css/tags@^3.0.2": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/tags/-/tags-3.0.3.tgz#fc76d2735cdc442de91b7eb3bee49a928c0767ac" - integrity sha512-SL8vPxVDfWcY5VdIuyl0TImEXcOU1I7yCyXkk7MudMwfnYs81FaIyY32hFV9OHj0Tz/36UzRzc7AVMSuRQ53pw== - -"@spectrum-css/textfield@^3.0.1": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@spectrum-css/textfield/-/textfield-3.0.7.tgz#8009621d7e3b95fa3af985f6f2952c1cc3f54703" - integrity sha512-SZiaGmouT0X/CdipngAfewSoKk4w3JNEVsVIiDzZM2xc46UQgV1xe/IGr2ox183omFghatxDUMTX7z//gt8gRg== - -"@spectrum-css/toast@^3.0.1": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/toast/-/toast-3.0.3.tgz#97c1527384707600832ecda35643ed304615250f" - integrity sha512-CjLeaMs+cjUXojCCRtbj0YkD2BoZW16kjj2o5omkEpUTjA34IJ8xJ1a+CCtDILWekhXvN0MBN4sbumcnwcnx8w== - -"@spectrum-css/tooltip@^3.0.3": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@spectrum-css/tooltip/-/tooltip-3.1.2.tgz#2b32c7c639a9a6a5bb420d4bf32a8f0fbf242273" - integrity sha512-m1oW1ER7wfXpou82F+4X93Ls6OT/pNb3e0uJZYYwYQZUV6+0QipEf2Xixi7kFgCyLbGHVIWQAoFDugg4U27Lew== - -"@spectrum-css/treeview@^3.0.2": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@spectrum-css/treeview/-/treeview-3.0.3.tgz#aeda5175158b9f8d7529cb2b394428eb2a428046" - integrity sha512-D5gGzZC/KtRArdx86Mesc9+99W9nTbUOeyYGqoJoAfJSOttoT6Tk5CrDvlCmAqjKf5rajemAkGri1ChqvUIwkw== - -"@spectrum-css/typography@^3.0.1", "@spectrum-css/typography@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@spectrum-css/typography/-/typography-3.0.2.tgz#ea3ca0a60e18064527819d48c8c4364cab4fcd38" - integrity sha512-5ZOLmQe0edzsDMyhghUd4hBb5uxGsFrxzf+WasfcUw9klSfTsRZ09n1BsaaWbgrLjlMQ+EEHS46v5VNo0Ms2CA== - -"@spectrum-css/underlay@^2.0.9": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@spectrum-css/underlay/-/underlay-2.0.16.tgz#df96227e6a94442ae8e23707de45096fa5c63c20" - integrity sha512-uEByMR/LytJLC3gckgJ+usp0krI8UwenD904azzZ0cLydoaJeN9ZtNJlphiXlKvz+QRjth2Vb6VJr2zwR7wxCQ== - "@spectrum-css/vars@^3.0.1": version "3.0.2" resolved "https://registry.yarnpkg.com/@spectrum-css/vars/-/vars-3.0.2.tgz#ea9062c3c98dfc6ba59e5df14a03025ad8969999" @@ -1873,11 +1521,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.37.tgz#abb38afa9d6e8a2f627a8cb52290b3c80fbe61ed" integrity sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA== -"@types/node@^14.14.31": - version "14.17.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz#011ee28e38dc7aee1be032ceadf6332a0ab15b12" - integrity sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -1888,7 +1531,7 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== -"@types/sinonjs__fake-timers@^6.0.2": +"@types/sinonjs__fake-timers@^6.0.1": version "6.0.4" resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz#0ecc1b9259b76598ef01942f547904ce61a6a77d" integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A== @@ -1929,13 +1572,6 @@ dependencies: "@types/yargs-parser" "*" -"@types/yauzl@^2.9.1": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" - integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== - dependencies: - "@types/node" "*" - abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" @@ -1971,31 +1607,48 @@ agent-base@6: dependencies: debug "4" -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -2015,6 +1668,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -2031,19 +1689,7 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" -apexcharts@^3.19.2, apexcharts@^3.22.1: - version "3.30.0" - resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.30.0.tgz#09b008d0a58bb303904bed33b09b260e8fa5e283" - integrity sha512-NHhFjkd4sqoQqHi+ECN/duVCRvqVZMdXX/UBzCs1xriq8NbNLvs+nIM8OXH1Siv+W50FrK1uTDZrW2cLsKWhBQ== - dependencies: - svg.draggable.js "^2.2.2" - svg.easing.js "^2.0.0" - svg.filter.js "^2.0.2" - svg.pathmorphing.js "^0.1.3" - svg.resize.js "^1.4.3" - svg.select.js "^3.0.1" - -arch@^2.2.0: +arch@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== @@ -2105,11 +1751,6 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - async@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" @@ -2264,12 +1905,12 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -blob-util@^2.0.2: +blob-util@2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== -bluebird@3.7.2: +bluebird@3.7.2, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -2405,7 +2046,18 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^2.0.0, chalk@^2.4.2: +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2450,11 +2102,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== - cjs-module-lexer@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" @@ -2470,34 +2117,37 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= dependencies: - restore-cursor "^3.1.0" + restore-cursor "^1.0.1" -cli-table3@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: + restore-cursor "^2.0.0" + +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" string-width "^4.2.0" optionalDependencies: - colors "1.4.0" + colors "^1.1.2" -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + slice-ansi "0.0.4" + string-width "^1.0.1" cliui@^6.0.0: version "6.0.0" @@ -2508,16 +2158,16 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + codemirror@^5.59.0: version "5.63.3" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.63.3.tgz#97042a242027fe0c87c09b36bc01931d37b76527" @@ -2565,12 +2215,7 @@ colorette@^1.1.0: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - -colors@1.4.0: +colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2607,13 +2252,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-with-sourcemaps@*: - version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" @@ -2725,48 +2363,45 @@ cypress-terminal-report@^1.4.1: chalk "^3.0.0" methods "^1.1.2" -cypress@9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.2.1.tgz#47f2457e5ca7ede48be9a4176f20f30ccf3b3902" - integrity sha512-LVEe4yWCo4xO0Vd8iYjFHRyd5ulRvM56XqMgAdn05Qb9kJ6iJdO/MmjKD8gNd768698cp1FDuSmFQZHVZGk+Og== +cypress@^5.1.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.6.0.tgz#6781755c3ddfd644ce3179fcd7389176c0c82280" + integrity sha512-cs5vG3E2JLldAc16+5yQxaVRLLqMVya5RlrfPWkC72S5xrlHFdw7ovxPb61s4wYweROKTyH01WQc2PFzwwVvyQ== dependencies: - "@cypress/request" "^2.88.10" + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "^6.0.2" + "@types/sinonjs__fake-timers" "^6.0.1" "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "3.7.2" + arch "^2.1.2" + blob-util "2.0.2" + bluebird "^3.7.2" cachedir "^2.3.0" chalk "^4.1.0" check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" + cli-table3 "~0.6.0" commander "^5.1.0" common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.2" - enquirer "^2.3.6" - eventemitter2 "^6.4.3" - execa "4.1.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^4.0.2" executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" + extract-zip "^1.7.0" + fs-extra "^9.0.1" getos "^3.2.1" - is-ci "^3.0.0" - is-installed-globally "~0.4.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" + listr "^0.14.3" + lodash "^4.17.19" log-symbols "^4.0.0" minimist "^1.2.5" + moment "^2.27.0" ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" + pretty-bytes "^5.4.1" + ramda "~0.26.1" request-progress "^3.0.0" - supports-color "^8.1.1" + supports-color "^7.2.0" tmp "~0.2.1" untildify "^4.0.0" url "^0.11.0" @@ -2788,24 +2423,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date.js@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda" - integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw== - dependencies: - debug "~3.1.0" - -dayjs@^1.10.4, dayjs@^1.10.5: - version "1.10.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" - integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== - date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - debug@4, debug@4.3.2, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" @@ -2813,7 +2435,7 @@ debug@4, debug@4.3.2, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: dependencies: ms "2.1.2" -debug@^2.2.0, debug@^2.3.3: +debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2948,6 +2570,11 @@ electron-to-chromium@^1.3.896: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5" integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ== +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + emittery@^0.7.1: version "0.7.2" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" @@ -2965,18 +2592,6 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -3097,7 +2712,7 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -3167,7 +2782,7 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -eventemitter2@^6.4.3: +eventemitter2@^6.4.2: version "6.4.5" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== @@ -3177,21 +2792,6 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== -execa@4.1.0, execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -3220,6 +2820,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^4.0.0, execa@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + executable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -3227,6 +2842,11 @@ executable@^4.1.1: dependencies: pify "^2.2.0" +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -3291,16 +2911,15 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== +extract-zip@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: - debug "^4.1.1" - get-stream "^5.1.0" + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" extsprintf@1.3.0: version "1.3.0" @@ -3312,6 +2931,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-glob@^3.0.3: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -3354,10 +2978,18 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" @@ -3445,7 +3077,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -3501,7 +3133,7 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -3551,12 +3183,12 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== dependencies: - ini "2.0.0" + ini "1.3.7" globals@^11.1.0: version "11.12.0" @@ -3587,35 +3219,6 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= -gulp-header@^1.7.1: - version "1.8.12" - resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" - integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== - dependencies: - concat-with-sourcemaps "*" - lodash.template "^4.4.0" - through2 "^2.0.0" - -handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9" - integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw== - dependencies: - kind-of "^6.0.0" - typeof-article "^0.1.1" - -handlebars@^4.7.6, handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -3629,12 +3232,18 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" - harmony-reflect@^1.4.6: version "1.6.2" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3714,14 +3323,14 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.14.1" + jsprim "^1.2.2" + sshpk "^1.7.0" https-proxy-agent@^5.0.0: version "5.0.0" @@ -3773,6 +3382,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -3786,15 +3400,15 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -3827,13 +3441,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-ci@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - is-core-module@^2.2.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" @@ -3895,6 +3502,18 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -3912,13 +3531,13 @@ is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" -is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== +is-installed-globally@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" + global-dirs "^2.0.1" + is-path-inside "^3.0.1" is-number@^3.0.0: version "3.0.0" @@ -3932,21 +3551,14 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-odd@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7" - integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc= - dependencies: - is-number "^3.0.0" - is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: symbol-observable "^1.1.0" - -is-path-inside@^3.0.2: + +is-path-inside@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -3968,19 +3580,11 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-self-closing@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4" - integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg== - dependencies: - self-closing-tags "^1.0.1" - is-promise@^2.1.0: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -4557,10 +4161,15 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stringify-safe@~5.0.1: version "5.0.1" @@ -4590,14 +4199,14 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.4.0" + json-schema "0.2.3" verror "1.10.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: @@ -4657,19 +4266,49 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -listr2@^3.8.3: - version "3.13.3" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.3.tgz#d8f6095c9371b382c9b1c2bc33c5941d8e177f11" - integrity sha512-VqAgN+XVfyaEjSaFewGPcDs5/3hBbWVaX1VgWv2f52MF7US45JuARlArULctiB44IIcEk3JF7GtoFCLqEdeuPA== +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== dependencies: - cli-truncate "^2.1.0" - clone "^2.1.2" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^7.4.0" - through "^2.3.8" - wrap-ansi "^7.0.0" + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" locate-path@^5.0.0: version "5.0.0" @@ -4693,26 +4332,18 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash.template@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" @@ -4728,15 +4359,14 @@ log-symbols@^4.0.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" lru-cache@^6.0.0: version "6.0.0" @@ -4842,6 +4472,11 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.51.0" +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -5016,11 +4651,21 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -5066,6 +4711,18 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -5114,12 +4771,10 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-try@^2.0.0: version "2.2.0" @@ -5246,7 +4901,7 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -pretty-bytes@^5.6.0: +pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== @@ -5289,11 +4944,6 @@ property-expr@^2.0.2: resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= - ps-tree@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" @@ -5319,7 +4969,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^2.1.1: +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== @@ -5339,6 +4989,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +ramda@~0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" @@ -5363,7 +5018,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@~2.3.6: +readable-stream@^2.2.2: 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== @@ -5507,12 +5162,20 @@ resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= dependencies: - onetime "^5.1.0" + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" signal-exit "^3.0.2" ret@~0.1.10: @@ -5569,7 +5232,14 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.1.0, rxjs@^7.4.0: +rxjs@^6.3.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.1.0: version "7.4.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== @@ -5708,23 +5378,10 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= snapdragon-node@^2.0.1: version "2.1.1" @@ -5858,7 +5515,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.14.1: +sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== @@ -5916,6 +5573,23 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5932,6 +5606,20 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5961,10 +5649,10 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -striptags@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052" - integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw== +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: version "5.5.0" @@ -5973,20 +5661,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" @@ -6025,61 +5706,6 @@ svelte@^3.38.2: resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63" integrity sha512-4DrCEJoBvdR689efHNSxIQn2pnFwB7E7j2yLEJtHE/P8hxwZWIphCtJ8are7bjl/iVMlcEf5uh5pJ68IwR09vQ== -svg.draggable.js@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba" - integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw== - dependencies: - svg.js "^2.0.1" - -svg.easing.js@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12" - integrity sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI= - dependencies: - svg.js ">=2.3.x" - -svg.filter.js@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203" - integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM= - dependencies: - svg.js "^2.2.5" - -svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d" - integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA== - -svg.pathmorphing.js@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65" - integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww== - dependencies: - svg.js "^2.4.0" - -svg.resize.js@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332" - integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw== - dependencies: - svg.js "^2.6.5" - svg.select.js "^2.1.2" - -svg.select.js@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73" - integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ== - dependencies: - svg.js "^2.2.5" - -svg.select.js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917" - integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw== - dependencies: - svg.js "^2.6.5" - symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -6122,14 +5748,6 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through@2, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -6218,7 +5836,7 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -tslib@^1.9.3: +tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -6274,18 +5892,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typeof-article@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af" - integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8= - dependencies: - kind-of "^3.1.0" - -uglify-js@^3.1.4: - version "3.14.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" - integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -6347,6 +5953,13 @@ untildify@^4.0.0: resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" @@ -6525,10 +6138,13 @@ word-wrap@~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== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" wrap-ansi@^6.2.0: version "6.2.0" @@ -6539,15 +6155,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" From 133f3db658aedb6db72aba10ab9680a1790c8570 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 19 Jan 2022 15:25:19 +0000 Subject: [PATCH 26/28] v1.0.44-alpha.7 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 18235a5914..63ba4de90a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 14fcbea357..581a264919 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 83af25fba5..31dc88c7a5 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index fcd4dd17e1..59e21a15cc 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.6", - "@budibase/client": "^1.0.44-alpha.6", + "@budibase/bbui": "^1.0.44-alpha.7", + "@budibase/client": "^1.0.44-alpha.7", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.44-alpha.6", + "@budibase/string-templates": "^1.0.44-alpha.7", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 335ea917c4..79e2b4e433 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index a5e3264aca..326b537c2a 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.0.44-alpha.6", + "@budibase/bbui": "^1.0.44-alpha.7", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.44-alpha.6", + "@budibase/string-templates": "^1.0.44-alpha.7", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index a2e5aa5bb9..afe19c5763 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.44-alpha.6", - "@budibase/client": "^1.0.44-alpha.6", - "@budibase/string-templates": "^1.0.44-alpha.6", + "@budibase/backend-core": "^1.0.44-alpha.7", + "@budibase/client": "^1.0.44-alpha.7", + "@budibase/string-templates": "^1.0.44-alpha.7", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 0a745d6129..b56da074e3 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 906eb7b204..0631938233 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.44-alpha.6", + "version": "1.0.44-alpha.7", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.44-alpha.6", - "@budibase/string-templates": "^1.0.44-alpha.6", + "@budibase/backend-core": "^1.0.44-alpha.7", + "@budibase/string-templates": "^1.0.44-alpha.7", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From dcf99150d1d0274b061e857d9045ced6ffd09976 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 20 Jan 2022 12:26:59 +0000 Subject: [PATCH 27/28] Fixing cypress tests, removing change which was added to try and fix reverted test cases. --- packages/worker/src/api/controllers/system/environment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/worker/src/api/controllers/system/environment.js b/packages/worker/src/api/controllers/system/environment.js index 4edf1ff8d3..609c3e83c5 100644 --- a/packages/worker/src/api/controllers/system/environment.js +++ b/packages/worker/src/api/controllers/system/environment.js @@ -7,6 +7,6 @@ exports.fetch = async ctx => { accountPortalUrl: env.ACCOUNT_PORTAL_URL, disableAccountPortal: env.DISABLE_ACCOUNT_PORTAL, // in test need to pretend its in production for the UI (Cypress) - isDev: env.isDev() && !env.isTest(), + isDev: env.isDev(), } } From 692a92e05218f66963092e05eb6972eb0e090068 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 20 Jan 2022 12:29:28 +0000 Subject: [PATCH 28/28] Adding fix to show the initial create table modal when a new app is created, the same as prod, when testing in cypress. --- packages/worker/src/api/controllers/system/environment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/worker/src/api/controllers/system/environment.js b/packages/worker/src/api/controllers/system/environment.js index 609c3e83c5..4edf1ff8d3 100644 --- a/packages/worker/src/api/controllers/system/environment.js +++ b/packages/worker/src/api/controllers/system/environment.js @@ -7,6 +7,6 @@ exports.fetch = async ctx => { accountPortalUrl: env.ACCOUNT_PORTAL_URL, disableAccountPortal: env.DISABLE_ACCOUNT_PORTAL, // in test need to pretend its in production for the UI (Cypress) - isDev: env.isDev(), + isDev: env.isDev() && !env.isTest(), } }