From 4d4d6aa27bc881bf26cfeba302737920428fb4e7 Mon Sep 17 00:00:00 2001 From: Maurits Lourens Date: Mon, 6 Sep 2021 12:33:03 +0200 Subject: [PATCH 01/22] fix fetching tables from database with uppercase name --- packages/server/src/integrations/mysql.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/integrations/mysql.ts b/packages/server/src/integrations/mysql.ts index d71e85b0d2..80bb8de51e 100644 --- a/packages/server/src/integrations/mysql.ts +++ b/packages/server/src/integrations/mysql.ts @@ -152,7 +152,7 @@ module MySQLModule { false ) const tableNames = tablesResp.map( - (obj: any) => obj[`Tables_in_${database}`] + (obj: any) => obj[`Tables_in_${database.toLowerCase()}`] ) for (let tableName of tableNames) { const primaryKeys = [] From 62e93d23026e98959bdde15d476306a2fe6fcf3e Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 12:21:16 +0100 Subject: [PATCH 02/22] Add self host enable/disable scripts --- package.json | 2 ++ packages/server/package.json | 4 +++- packages/server/scripts/selfhost.js | 8 ++++++++ packages/worker/package.json | 4 +++- packages/worker/scripts/selfhost.js | 8 ++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 packages/server/scripts/selfhost.js create mode 100644 packages/worker/scripts/selfhost.js diff --git a/package.json b/package.json index f8d9d1789e..f87c3715aa 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,8 @@ "release:helm": "./scripts/release_helm_chart.sh", "multi:enable": "lerna run multi:enable", "multi:disable": "lerna run multi:disable", + "selfhost:enable": "lerna run selfhost:enable", + "selfhost:disable": "lerna run selfhost:disable", "postinstall": "husky install" } } diff --git a/packages/server/package.json b/packages/server/package.json index e9f9422e56..d411bda27f 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -24,7 +24,9 @@ "lint": "eslint --fix src/", "lint:fix": "yarn run format && yarn run lint", "multi:enable": "node scripts/multiTenancy.js enable", - "multi:disable": "node scripts/multiTenancy.js disable" + "multi:disable": "node scripts/multiTenancy.js disable", + "self:enable": "node scripts/selfhost.js enable", + "self:disable": "node scripts/selfhost.js disable" }, "jest": { "preset": "ts-jest", diff --git a/packages/server/scripts/selfhost.js b/packages/server/scripts/selfhost.js new file mode 100644 index 0000000000..b9054a1786 --- /dev/null +++ b/packages/server/scripts/selfhost.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node +const updateDotEnv = require("update-dotenv") + +const arg = process.argv.slice(2)[0] + +updateDotEnv({ + SELF_HOSTED: arg === "enable" ? "1" : "0", +}).then(() => console.log("Updated server!")) diff --git a/packages/worker/package.json b/packages/worker/package.json index 36089d6300..37cc346c5c 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -18,7 +18,9 @@ "dev:builder": "npm run dev:stack:init && nodemon src/index.js", "test": "jest --runInBand", "multi:enable": "node scripts/multiTenancy.js enable", - "multi:disable": "node scripts/multiTenancy.js disable" + "multi:disable": "node scripts/multiTenancy.js disable", + "selfhost:enable": "node scripts/selfhost.js enable", + "selfhost:disable": "node scripts/selfhost.js disable" }, "author": "Budibase", "license": "AGPL-3.0-or-later", diff --git a/packages/worker/scripts/selfhost.js b/packages/worker/scripts/selfhost.js new file mode 100644 index 0000000000..4ca634de40 --- /dev/null +++ b/packages/worker/scripts/selfhost.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node +const updateDotEnv = require("update-dotenv") + +const arg = process.argv.slice(2)[0] + +updateDotEnv({ + SELF_HOSTED: arg === "enable" ? "1" : "0", +}).then(() => console.log("Updated worker!")) From 6e4c3f776de3d85b53a4c9b200c83f7a72173182 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 12:24:40 +0100 Subject: [PATCH 03/22] Typo --- packages/server/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index d411bda27f..1c01eaacd4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -25,8 +25,8 @@ "lint:fix": "yarn run format && yarn run lint", "multi:enable": "node scripts/multiTenancy.js enable", "multi:disable": "node scripts/multiTenancy.js disable", - "self:enable": "node scripts/selfhost.js enable", - "self:disable": "node scripts/selfhost.js disable" + "selfhost:enable": "node scripts/selfhost.js enable", + "selfhost:disable": "node scripts/selfhost.js disable" }, "jest": { "preset": "ts-jest", From 73981680ba6df0764bce4181bda48790412dbb3c Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 13:03:38 +0100 Subject: [PATCH 04/22] Replace 'sandbox' with 'cloud' in builder, reuse 'SELF_HOSTED' flag --- .../builder/app/[application]/_layout.svelte | 2 +- packages/builder/src/stores/portal/admin.js | 8 +- packages/builder/vite.config.js | 1 + packages/server/yarn.lock | 755 +----------------- .../src/api/controllers/system/flags.js | 2 +- packages/worker/src/environment.js | 1 - 6 files changed, 33 insertions(+), 736 deletions(-) diff --git a/packages/builder/src/pages/builder/app/[application]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/_layout.svelte index a7626370e0..ae21a9dbb9 100644 --- a/packages/builder/src/pages/builder/app/[application]/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/_layout.svelte @@ -92,7 +92,7 @@
- {#if $admin.sandbox} + {#if $admin.cloud} {/if} diff --git a/packages/builder/src/stores/portal/admin.js b/packages/builder/src/stores/portal/admin.js index 152a7c6e3b..439437076e 100644 --- a/packages/builder/src/stores/portal/admin.js +++ b/packages/builder/src/stores/portal/admin.js @@ -6,7 +6,7 @@ export function createAdminStore() { const DEFAULT_CONFIG = { loaded: false, multiTenancy: false, - sandbox: false, + cloud: false, onboardingProgress: 0, checklist: { apps: { checked: false }, @@ -45,18 +45,18 @@ export function createAdminStore() { async function getFlags() { let multiTenancyEnabled = false - let sandbox = false + let cloud = false try { const response = await api.get(`/api/system/flags`) const json = await response.json() multiTenancyEnabled = json.multiTenancy - sandbox = json.sandbox + cloud = json.cloud } catch (err) { // just let it stay disabled } admin.update(store => { store.multiTenancy = multiTenancyEnabled - store.sandbox = sandbox + store.cloud = cloud return store }) } diff --git a/packages/builder/vite.config.js b/packages/builder/vite.config.js index d8b8dbba1d..760bca7668 100644 --- a/packages/builder/vite.config.js +++ b/packages/builder/vite.config.js @@ -24,6 +24,7 @@ export default ({ mode }) => { "process.env.POSTHOG_TOKEN": JSON.stringify(process.env.POSTHOG_TOKEN), "process.env.POSTHOG_URL": JSON.stringify(process.env.POSTHOG_URL), "process.env.SENTRY_DSN": JSON.stringify(process.env.SENTRY_DSN), + "process.env.ACCOUNT_PORTAL_URL": JSON.stringify(process.env.ACCOUNT_PORTAL_URL), }), ], optimizeDeps: { diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index a467846bbb..3944d0a9e9 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -943,33 +943,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/auth@^0.9.123-alpha.1": - version "0.9.123-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-0.9.123-alpha.1.tgz#48e011b2afbf0133ebcd564416d0f2399a107b82" - integrity sha512-mI0rN0uwCCVjQiwfELjgIm2WpUHfDdzD84lSumRQ8HWAXywD94MdR/qe+B1r7YqjboXxC5SWydoiOivU7jhaTA== - dependencies: - "@techpass/passport-openidconnect" "^0.3.0" - aws-sdk "^2.901.0" - bcryptjs "^2.4.3" - cls-hooked "^4.2.2" - ioredis "^4.27.1" - jsonwebtoken "^8.5.1" - koa-passport "^4.1.4" - lodash "^4.17.21" - node-fetch "^2.6.1" - passport-google-auth "^1.0.2" - passport-google-oauth "^2.0.0" - passport-jwt "^4.0.0" - passport-local "^1.0.0" - sanitize-s3-objectkey "^0.0.1" - tar-fs "^2.1.1" - uuid "^8.3.2" - zlib "^1.0.5" - -"@budibase/bbui@^0.9.123-alpha.1": - version "0.9.123-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.123-alpha.1.tgz#704b693938efdb23eed9d1f089ad86a7f06f35d0" - integrity sha512-QGeR3f/xsalkRC3/HRUdG7VaNakYK9MCL3819M5bQxMjyhVoFdZw18mnc7zNfcCL3kTyw0C6capJULho4ic+AA== +"@budibase/bbui@^0.9.127": + version "0.9.127" + resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.127.tgz#e038338d69476d45afe1d4c4ef36971d8d0c59bd" + integrity sha512-fcUVzC7lOGUxLFEptaLTNSproMQa4cf5tSCo5atU9gDoPHVdIncocPWJuuLM1hM2JIlk8IiJ+up9CdiDur8FsA== dependencies: "@adobe/spectrum-css-workflow-icons" "^1.2.1" "@spectrum-css/actionbutton" "^1.0.1" @@ -1015,52 +992,12 @@ svelte-flatpickr "^3.1.0" svelte-portal "^1.0.0" -"@budibase/client@^0.9.123-alpha.1": - version "0.9.123-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.123-alpha.1.tgz#a70199937c546544a2750e4273c8347e2fddab53" - integrity sha512-s/diiHoN/1kd2JavHy+otYDryfH3ijdjna/jqsZYPK/6Y9ZGcHwtVL43+VVtz9YlBw5aD4Av+YW2t1sqNHCsJw== +"@budibase/standard-components@^0.9.124": + version "0.9.127" + resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.127.tgz#91366b8376eb388f8bcab16e96a2913e4b4af649" + integrity sha512-NlJB+y28/gKRu1FtTZQzEifJNA7N8suaZ8FlZpqh4Aq/LzRh0Q301BXx1emVnPqMW/fEHBum47iRYboO5XSmMA== dependencies: - "@budibase/bbui" "^0.9.123-alpha.1" - "@budibase/standard-components" "^0.9.123-alpha.1" - "@budibase/string-templates" "^0.9.123-alpha.1" - regexparam "^1.3.0" - shortid "^2.2.15" - svelte-spa-router "^3.0.5" - -"@budibase/handlebars-helpers@^0.11.4": - version "0.11.5" - resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.5.tgz#e9cc90a44e94ad536992cf10906829b633e94bc5" - integrity sha512-ZxpyNtTHxS8Y+yTicbgWvYDAydooUSjOf3Y+wmTE2d4NpDgO0g0IjepLfZV+KASv9XBr//ylJdjE4hClX9NTFw== - dependencies: - array-sort "^1.0.0" - define-property "^2.0.2" - extend-shallow "^3.0.2" - "falsey" "^1.0.0" - 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.123-alpha.1": - version "0.9.123-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.123-alpha.1.tgz#944e4906e88ce9f8be6a26dc46d50afa17ef3a58" - integrity sha512-tCaiOhmmLAOBh+A8rFXnPHKZaSYRK7xlrI23r1IRgvDTkmuflr0o/VrRBVQuaxwWClKQPGkQ3wgnOJgXvk6CgQ== - dependencies: - "@budibase/bbui" "^0.9.123-alpha.1" + "@budibase/bbui" "^0.9.127" "@spectrum-css/button" "^3.0.3" "@spectrum-css/card" "^3.0.3" "@spectrum-css/divider" "^1.0.3" @@ -1073,17 +1010,6 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/string-templates@^0.9.123-alpha.1": - version "0.9.123-alpha.1" - resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.123-alpha.1.tgz#6b2e718478d98aa8ba046ad23e7190894360906a" - integrity sha512-Id5AUdzTiYKGo/TTU3cuy1m4hS1Wy66hMIxVCM6GKoEnDinEB/rEA6IwP3IDFyTs2Uld8uWLBnEru93sP982AQ== - dependencies: - "@budibase/handlebars-helpers" "^0.11.4" - dayjs "^1.10.4" - handlebars "^4.7.6" - handlebars-utils "^1.0.6" - lodash "^4.17.20" - "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -2097,17 +2023,6 @@ dependencies: defer-to-connect "^1.0.1" -"@techpass/passport-openidconnect@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@techpass/passport-openidconnect/-/passport-openidconnect-0.3.0.tgz#a60b2bbf3f262649a5a02d5d186219944acc3010" - integrity sha512-bVsPwl66s7J7GHxTPlW/RJYhZol9SshNznQsx83OOh9G+JWFGoeWxh+xbX+FTdJNoUvGIGbJnpWPY2wC6NOHPw== - dependencies: - base64url "^3.0.1" - oauth "^0.9.15" - passport-strategy "^1.0.0" - request "^2.88.0" - webfinger "^0.4.2" - "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -2754,7 +2669,7 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.10, argparse@^1.0.7: +argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -2801,15 +2716,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-sort@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" - integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== - dependencies: - default-compare "^1.0.0" - get-value "^2.0.6" - kind-of "^5.0.2" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -2852,13 +2758,6 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-hook-jl@^1.7.6: - version "1.7.6" - resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68" - integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg== - dependencies: - stack-chain "^1.3.7" - async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -2876,13 +2775,6 @@ async@^2.6.3: dependencies: lodash "^4.17.14" -async@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" - integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw= - dependencies: - lodash "^4.14.0" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2898,13 +2790,6 @@ atomic-sleep@^1.0.0: resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -autolinker@~0.28.0: - version "0.28.1" - resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" - integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= - dependencies: - gulp-header "^1.7.1" - aws-sdk@^2.767.0: version "2.981.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.981.0.tgz#b2e6205db23d755e1c8fcbd0618e8309e69d3767" @@ -2920,21 +2805,6 @@ aws-sdk@^2.767.0: uuid "3.3.2" xml2js "0.4.19" -aws-sdk@^2.901.0: - version "2.979.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.979.0.tgz#d0104fec763cc3eafb123e709f94866790109da4" - integrity sha512-pKKhpYZwmihCvuH3757WHY8JQI9g2wvtF3s0aiyH2xCUmX/6uekhExz/utD4uqZP3m3PwKZPGQkQkH30DtHrPw== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.15.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - uuid "3.3.2" - xml2js "0.4.19" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -3102,11 +2972,6 @@ base64-js@^1.0.2, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64url@3.x.x, base64url@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" - integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3127,7 +2992,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bcryptjs@2.4.3, bcryptjs@^2.4.3: +bcryptjs@2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= @@ -3172,15 +3037,6 @@ bl@^3.0.0: dependencies: readable-stream "^3.0.1" -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - bluebird@^3.5.1: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3545,11 +3401,6 @@ chokidar@^3.2.2: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -3622,15 +3473,6 @@ clone-response@1.0.2, clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -cls-hooked@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908" - integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw== - dependencies: - async-hook-jl "^1.7.6" - emitter-listener "^1.0.1" - semver "^5.4.1" - cluster-key-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" @@ -3747,13 +3589,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" - configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -3965,13 +3800,6 @@ date-utils@*: resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64" integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q= -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" - dateformat@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -4115,13 +3943,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" - integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== - dependencies: - kind-of "^5.0.2" - default-shell@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc" @@ -4361,13 +4182,6 @@ electron-to-chromium@^1.3.811: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.827.tgz#c725e8db8c5be18b472a919e5f57904512df0fc1" integrity sha512-ye+4uQOY/jbjRutMcE/EmOcNwUeo1qo9aKL2tPyb09cU3lmxNeyDF4RWiemmkknW+p29h7dyDqy02higTxc9/A== -emitter-listener@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" - integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ== - dependencies: - shimmer "^1.2.0" - emittery@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" @@ -4398,7 +4212,7 @@ encoding-down@^6.3.0: level-codec "^9.0.0" level-errors "^2.0.0" -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -4412,11 +4226,6 @@ end-stream@~0.1.0: dependencies: write-stream "~0.4.3" -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - errno@~0.1.1, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -4913,11 +4722,6 @@ falafel@^1.0.1: isarray "0.0.1" object-keys "^1.0.6" -"falsey@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/falsey/-/falsey-1.0.0.tgz#71bdd775c24edad9f2f5c015ce8be24400bb5d7d" - integrity sha512-zMDNZ/Ipd8MY0+346CPvhzP1AsiVyNfTOayJza4reAIWf72xbkuFUDcJNxSAsQE1b9Bu0wijKb8Ngnh/a7fI5w== - 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" @@ -5242,11 +5046,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-exists-sync@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" - integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= - fs-extra@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -5303,14 +5102,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-object@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c" - integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw= - dependencies: - is-number "^2.0.2" - isobject "^0.2.0" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -5358,13 +5149,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -get-value@^3.0.0, get-value@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8" - integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA== - dependencies: - isobject "^3.0.1" - getopts@2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" @@ -5454,32 +5238,6 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -google-auth-library@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e" - integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24= - dependencies: - gtoken "^1.2.1" - jws "^3.1.4" - lodash.noop "^3.0.1" - request "^2.74.0" - -google-p12-pem@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177" - integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc= - dependencies: - node-forge "^0.7.1" - -googleapis@^16.0.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576" - integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY= - dependencies: - async "~2.1.4" - google-auth-library "~0.10.0" - string-template "~1.0.0" - got@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" @@ -5525,45 +5283,6 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1. resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -gtoken@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" - integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w== - dependencies: - google-p12-pem "^0.1.0" - jws "^3.0.0" - mime "^1.4.1" - request "^2.72.0" - -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" @@ -5634,14 +5353,6 @@ has-value@^1.0.0: has-values "^1.0.0" isobject "^3.0.0" -has-value@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658" - integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA== - dependencies: - get-value "^3.0.0" - has-values "^2.0.1" - has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" @@ -5655,13 +5366,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has-values@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d" - integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w== - dependencies: - kind-of "^6.0.2" - has-yarn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" @@ -5674,39 +5378,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -helper-date@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb" - integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w== - dependencies: - date.js "^0.3.1" - handlebars-utils "^1.0.4" - moment "^2.18.1" - -helper-markdown@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10" - integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA== - dependencies: - handlebars-utils "^1.0.2" - highlight.js "^9.12.0" - remarkable "^1.7.1" - -helper-md@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f" - integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8= - dependencies: - ent "^2.2.0" - extend-shallow "^2.0.1" - fs-exists-sync "^0.1.0" - remarkable "^1.6.2" - -highlight.js@^9.12.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -5736,14 +5407,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-tag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed" - integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g== - dependencies: - is-self-closing "^1.0.1" - kind-of "^6.0.0" - http-assert@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f" @@ -6010,7 +5673,7 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== -ioredis@^4.27.0, ioredis@^4.27.1: +ioredis@^4.27.0: version "4.27.9" resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.9.tgz#c27bbade9724f0b8f84c279fb1d567be785ba33d" integrity sha512-hAwrx9F+OQ0uIvaJefuS3UTqW+ByOLyLIV+j0EH8ClNVxvFyH9Vmb08hCL4yje6mDYT5zMquShhypkd50RRzkg== @@ -6158,13 +5821,6 @@ is-docker@^2.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-even@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06" - integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY= - dependencies: - is-odd "^0.1.2" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -6254,13 +5910,6 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -6283,13 +5932,6 @@ is-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -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-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" @@ -6325,13 +5967,6 @@ is-retry-allowed@^1.1.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== -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-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -6407,11 +6042,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e" - integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4= - isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -7407,22 +7037,6 @@ jsonschema@1.4.0: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== -jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -7462,7 +7076,7 @@ jwa@^1.4.1: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jws@3.x.x, jws@^3.0.0, jws@^3.1.4, jws@^3.2.2: +jws@3.x.x: version "3.2.2" resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== @@ -7489,7 +7103,7 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= @@ -7503,12 +7117,12 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0, kind-of@^5.0.2: +kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -7587,13 +7201,6 @@ koa-is-json@^1.0.0: resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ= -koa-passport@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa" - integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg== - dependencies: - passport "^0.4.0" - koa-pino-logger@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba" @@ -7875,11 +7482,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -7895,46 +7497,16 @@ lodash.flatten@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= -lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= - lodash.isarguments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= -lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= -lodash.isinteger@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= - -lodash.isnumber@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - lodash.keys@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" @@ -7945,21 +7517,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.noop@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" - integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw= - lodash.omit@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= -lodash.once@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - lodash.pick@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" @@ -7970,21 +7532,6 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -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.without@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" @@ -7995,7 +7542,7 @@ lodash.xor@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6" integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY= -lodash@4.17.21, lodash@4.x, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0: +lodash@4.17.21, lodash@4.x, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8151,7 +7698,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -8240,11 +7787,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -8264,7 +7806,7 @@ moment-timezone@^0.5.31: dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@^2.18.1: +"moment@>= 2.9.0": version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== @@ -8358,11 +7900,6 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanoid@^2.1.0: - version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -8410,11 +7947,6 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -8435,11 +7967,6 @@ node-fetch@^2.6.0, node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-forge@^0.7.1: - version "0.7.6" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" - integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== - node-gyp-build@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" @@ -8551,11 +8078,6 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -oauth@0.9.x, oauth@^0.9.15: - version "0.9.15" - resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" - integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= - object-assign@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" @@ -8853,84 +8375,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -passport-google-auth@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/passport-google-auth/-/passport-google-auth-1.0.2.tgz#8b300b5aa442ef433de1d832ed3112877d0b2938" - integrity sha1-izALWqRC70M94dgy7TESh30LKTg= - dependencies: - googleapis "^16.0.0" - passport-strategy "1.x" - -passport-google-oauth1@1.x.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz#af74a803df51ec646f66a44d82282be6f108e0cc" - integrity sha1-r3SoA99R7GRvZqRNgigr5vEI4Mw= - dependencies: - passport-oauth1 "1.x.x" - -passport-google-oauth20@2.x.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef" - integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ== - dependencies: - passport-oauth2 "1.x.x" - -passport-google-oauth@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/passport-google-oauth/-/passport-google-oauth-2.0.0.tgz#f6eb4bc96dd6c16ec0ecfdf4e05ec48ca54d4dae" - integrity sha512-JKxZpBx6wBQXX1/a1s7VmdBgwOugohH+IxCy84aPTZNq/iIPX6u7Mqov1zY7MKRz3niFPol0KJz8zPLBoHKtYA== - dependencies: - passport-google-oauth1 "1.x.x" - passport-google-oauth20 "2.x.x" - -passport-jwt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065" - integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg== - dependencies: - jsonwebtoken "^8.2.0" - passport-strategy "^1.0.0" - -passport-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" - integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4= - dependencies: - passport-strategy "1.x.x" - -passport-oauth1@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9" - integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg== - dependencies: - oauth "0.9.x" - passport-strategy "1.x.x" - utils-merge "1.x.x" - -passport-oauth2@1.x.x: - version "1.6.0" - resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.0.tgz#5f599735e0ea40ea3027643785f81a3a9b4feb50" - integrity sha512-emXPLqLcVEcLFR/QvQXZcwLmfK8e9CqvMgmOFJxcNT3okSFMtUbRRKpY20x5euD+01uHsjjCa07DYboEeLXYiw== - dependencies: - base64url "3.x.x" - oauth "0.9.x" - passport-strategy "1.x.x" - uid2 "0.0.x" - utils-merge "1.x.x" - -passport-strategy@1.x, passport-strategy@1.x.x, passport-strategy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" - integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= - -passport@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" - integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== - dependencies: - passport-strategy "1.x.x" - pause "0.0.1" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -8985,11 +8429,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pause@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" - integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -9688,7 +9127,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1: isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9822,16 +9261,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexparam@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c" - integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow== - -regexparam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f" - integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g== - regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -9875,21 +9304,6 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" -relative@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f" - integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8= - dependencies: - isobject "^2.0.0" - -remarkable@^1.6.2, remarkable@^1.7.1: - version "1.7.4" - resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" - integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== - dependencies: - argparse "^1.0.10" - autolinker "~0.28.0" - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -9921,7 +9335,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: +request@^2.87.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -10113,11 +9527,6 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sanitize-s3-objectkey@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e" - integrity sha512-ZTk7aqLxy4sD40GWcYWoLfbe05XLmkKvh6vGKe13ADlei24xlezcvjgKy1qRArlaIbIMYaqK7PCalvZtulZlaQ== - saslprep@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" @@ -10130,7 +9539,7 @@ sax@1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= -sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4: +sax@>=0.6.0, sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -10154,11 +9563,6 @@ seek-bzip@^1.0.5: dependencies: commander "^2.8.1" -self-closing-tags@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d" - integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA== - semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" @@ -10166,7 +9570,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -10292,18 +9696,6 @@ shell-path@^2.1.0: dependencies: shell-env "^0.3.0" -shimmer@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" - integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== - -shortid@^2.2.15: - version "2.2.16" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" - integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== - dependencies: - nanoid "^2.1.0" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -10548,11 +9940,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -stack-chain@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285" - integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU= - stack-utils@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" @@ -10595,11 +9982,6 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= -step@0.0.x: - version "0.0.6" - resolved "https://registry.yarnpkg.com/step/-/step-0.0.6.tgz#143e7849a5d7d3f4a088fe29af94915216eeede2" - integrity sha1-FD54SaXX0/SgiP4pr5SRUhbu7eI= - strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -10613,11 +9995,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-template@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" - integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y= - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -10743,11 +10120,6 @@ strip-outer@^1.0.0: dependencies: escape-string-regexp "^1.0.2" -striptags@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052" - integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw== - sublevel-pouchdb@7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz#49e46cd37883bf7ff5006d7c5b9bcc7bcc1f422f" @@ -10837,13 +10209,6 @@ svelte-portal@^1.0.0: resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3" integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q== -svelte-spa-router@^3.0.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee" - integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ== - dependencies: - regexparam "2.0.0" - svelte@^3.38.2: version "3.42.4" resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.42.4.tgz#838ed98fa7b26fc5fffe4df0d7ba345f1c54cf4f" @@ -10919,16 +10284,6 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - tar-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" @@ -10942,17 +10297,6 @@ tar-stream@^1.5.2: to-buffer "^1.1.1" xtend "^4.0.0" -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tarn@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d" @@ -11124,11 +10468,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-gfm-code-block@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82" - integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI= - to-json-schema@0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f" @@ -11340,28 +10679,11 @@ 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" - typescript@^4.3.5: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== -uglify-js@^3.1.4: - version "3.14.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.2.tgz#d7dd6a46ca57214f54a2d0a43cad0f35db82ac99" - integrity sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A== - -uid2@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" - integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -11553,7 +10875,7 @@ util.promisify@^1.0.0, util.promisify@^1.0.1: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" -utils-merge@1.0.1, utils-merge@1.x.x: +utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= @@ -11650,14 +10972,6 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -webfinger@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/webfinger/-/webfinger-0.4.2.tgz#3477a6d97799461896039fcffc650b73468ee76d" - integrity sha1-NHem2XeZRhiWA5/P/GULc0aO520= - dependencies: - step "0.0.x" - xml2js "0.1.x" - webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -11754,11 +11068,6 @@ 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= - worker-farm@1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -11864,13 +11173,6 @@ xml-parse-from-string@^1.0.0: resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= -xml2js@0.1.x: - version "0.1.14" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c" - integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw= - dependencies: - sax ">=0.1.1" - xml2js@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" @@ -12009,11 +11311,6 @@ yauzl@^2.4.2: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -year@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0" - integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A= - ylru@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" @@ -12024,7 +11321,7 @@ yn@3.1.1: resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -zlib@1.0.5, zlib@^1.0.5: +zlib@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0" integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA= diff --git a/packages/worker/src/api/controllers/system/flags.js b/packages/worker/src/api/controllers/system/flags.js index b439c9ee3a..81f6b56105 100644 --- a/packages/worker/src/api/controllers/system/flags.js +++ b/packages/worker/src/api/controllers/system/flags.js @@ -3,6 +3,6 @@ const env = require("../../../environment") exports.fetch = async ctx => { ctx.body = { multiTenancy: !!env.MULTI_TENANCY, - sandbox: !!env.SANDBOX, + cloud: !!env.SELF_HOSTED, } } diff --git a/packages/worker/src/environment.js b/packages/worker/src/environment.js index 07549331ea..c42bc087e8 100644 --- a/packages/worker/src/environment.js +++ b/packages/worker/src/environment.js @@ -32,7 +32,6 @@ module.exports = { REDIS_PASSWORD: process.env.REDIS_PASSWORD, INTERNAL_API_KEY: process.env.INTERNAL_API_KEY, MULTI_TENANCY: process.env.MULTI_TENANCY, - SANDBOX: process.env.SANDBOX, _set(key, value) { process.env[key] = value module.exports[key] = value From b10f48304a12c7b38d84e70cdf47adab73442d8c Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 13:04:55 +0100 Subject: [PATCH 05/22] Revert vite changes --- packages/builder/vite.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/builder/vite.config.js b/packages/builder/vite.config.js index 760bca7668..d8b8dbba1d 100644 --- a/packages/builder/vite.config.js +++ b/packages/builder/vite.config.js @@ -24,7 +24,6 @@ export default ({ mode }) => { "process.env.POSTHOG_TOKEN": JSON.stringify(process.env.POSTHOG_TOKEN), "process.env.POSTHOG_URL": JSON.stringify(process.env.POSTHOG_URL), "process.env.SENTRY_DSN": JSON.stringify(process.env.SENTRY_DSN), - "process.env.ACCOUNT_PORTAL_URL": JSON.stringify(process.env.ACCOUNT_PORTAL_URL), }), ], optimizeDeps: { From 689065d2b87e43563c31fe7f5cd4811c3ff0e29e Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 14:18:13 +0100 Subject: [PATCH 06/22] Redirect to account portal login page in the cloud --- hosting/docker-compose.yaml | 1 + .../budibase/templates/worker-service-deployment.yaml | 2 ++ hosting/kubernetes/budibase/values.yaml | 1 + packages/builder/src/pages/builder/auth/login.svelte | 6 ++++++ packages/builder/src/stores/portal/admin.js | 10 +++++++--- packages/worker/scripts/dev/manage.js | 1 + .../controllers/system/{flags.js => environment.js} | 3 ++- packages/worker/src/api/index.js | 2 +- packages/worker/src/api/routes/index.js | 4 ++-- packages/worker/src/api/routes/system/environment.js | 8 ++++++++ packages/worker/src/api/routes/system/flags.js | 8 -------- packages/worker/src/environment.js | 1 + 12 files changed, 32 insertions(+), 15 deletions(-) rename packages/worker/src/api/controllers/system/{flags.js => environment.js} (61%) create mode 100644 packages/worker/src/api/routes/system/environment.js delete mode 100644 packages/worker/src/api/routes/system/flags.js diff --git a/hosting/docker-compose.yaml b/hosting/docker-compose.yaml index 560b273668..229396dacb 100644 --- a/hosting/docker-compose.yaml +++ b/hosting/docker-compose.yaml @@ -51,6 +51,7 @@ services: INTERNAL_API_KEY: ${INTERNAL_API_KEY} REDIS_URL: redis-service:6379 REDIS_PASSWORD: ${REDIS_PASSWORD} + ACCOUNT_PORTAL_URL: https://portal.budi.live volumes: - ./logs:/logs depends_on: diff --git a/hosting/kubernetes/budibase/templates/worker-service-deployment.yaml b/hosting/kubernetes/budibase/templates/worker-service-deployment.yaml index 703d59c075..6c165872c8 100644 --- a/hosting/kubernetes/budibase/templates/worker-service-deployment.yaml +++ b/hosting/kubernetes/budibase/templates/worker-service-deployment.yaml @@ -87,6 +87,8 @@ spec: {{ end }} - name: SELF_HOSTED value: {{ .Values.globals.selfHosted | quote }} + - name: ACCOUNT_PORTAL_URL + value: {{ .Values.globals.accountPortalUrl | quote }} image: budibase/worker imagePullPolicy: Always name: bbworker diff --git a/hosting/kubernetes/budibase/values.yaml b/hosting/kubernetes/budibase/values.yaml index 30594f95e3..6a9d84c0b0 100644 --- a/hosting/kubernetes/budibase/values.yaml +++ b/hosting/kubernetes/budibase/values.yaml @@ -89,6 +89,7 @@ globals: sentryDSN: "" logLevel: info selfHosted: 1 + accountPortalUrL: "" createSecrets: true # creates an internal API key, JWT secrets and redis password for you # if createSecrets is set to false, you can hard-code your secrets here diff --git a/packages/builder/src/pages/builder/auth/login.svelte b/packages/builder/src/pages/builder/auth/login.svelte index 783e5a4903..c46550b69f 100644 --- a/packages/builder/src/pages/builder/auth/login.svelte +++ b/packages/builder/src/pages/builder/auth/login.svelte @@ -51,6 +51,12 @@ onMount(async () => { await organisation.init() + + // redirect to account portal for login in the cloud + if ($admin.cloud && $admin.accountPortalUrl) { + window.location.href = $admin.accountPortalUrl + } + loaded = true }) diff --git a/packages/builder/src/stores/portal/admin.js b/packages/builder/src/stores/portal/admin.js index 439437076e..44ff63a082 100644 --- a/packages/builder/src/stores/portal/admin.js +++ b/packages/builder/src/stores/portal/admin.js @@ -7,6 +7,7 @@ export function createAdminStore() { loaded: false, multiTenancy: false, cloud: false, + accountPortalUrl: "", onboardingProgress: 0, checklist: { apps: { checked: false }, @@ -28,7 +29,7 @@ export function createAdminStore() { const totalSteps = Object.keys(json).length const completedSteps = Object.values(json).filter(x => x?.checked).length - await getFlags() + await getEnvironment() admin.update(store => { store.loaded = true store.checklist = json @@ -43,20 +44,23 @@ export function createAdminStore() { } } - async function getFlags() { + async function getEnvironment() { let multiTenancyEnabled = false let cloud = false + let accountPortalUrl = "" try { - const response = await api.get(`/api/system/flags`) + const response = await api.get(`/api/system/environment`) const json = await response.json() multiTenancyEnabled = json.multiTenancy cloud = json.cloud + accountPortalUrl = json.accountPortalUrl } catch (err) { // just let it stay disabled } admin.update(store => { store.multiTenancy = multiTenancyEnabled store.cloud = cloud + store.accountPortalUrl = accountPortalUrl return store }) } diff --git a/packages/worker/scripts/dev/manage.js b/packages/worker/scripts/dev/manage.js index 3879bbeaae..f9a931110e 100644 --- a/packages/worker/scripts/dev/manage.js +++ b/packages/worker/scripts/dev/manage.js @@ -21,6 +21,7 @@ async function init() { COUCH_DB_PASSWORD: "budibase", // empty string is false MULTI_TENANCY: "", + ACCOUNT_PORTAL_URL: "http://localhost:3001", } let envFile = "" Object.keys(envFileJson).forEach(key => { diff --git a/packages/worker/src/api/controllers/system/flags.js b/packages/worker/src/api/controllers/system/environment.js similarity index 61% rename from packages/worker/src/api/controllers/system/flags.js rename to packages/worker/src/api/controllers/system/environment.js index 81f6b56105..305ccd7937 100644 --- a/packages/worker/src/api/controllers/system/flags.js +++ b/packages/worker/src/api/controllers/system/environment.js @@ -3,6 +3,7 @@ const env = require("../../../environment") exports.fetch = async ctx => { ctx.body = { multiTenancy: !!env.MULTI_TENANCY, - cloud: !!env.SELF_HOSTED, + cloud: !(env.SELF_HOSTED === "1"), + accountPortalUrl: env.ACCOUNT_PORTAL_URL, } } diff --git a/packages/worker/src/api/index.js b/packages/worker/src/api/index.js index 8abead022e..03e782688e 100644 --- a/packages/worker/src/api/index.js +++ b/packages/worker/src/api/index.js @@ -44,7 +44,7 @@ const PUBLIC_ENDPOINTS = [ method: "POST", }, { - route: "api/system/flags", + route: "api/system/environment", method: "GET", }, { diff --git a/packages/worker/src/api/routes/index.js b/packages/worker/src/api/routes/index.js index a4ed4d7da4..3d2d770408 100644 --- a/packages/worker/src/api/routes/index.js +++ b/packages/worker/src/api/routes/index.js @@ -6,7 +6,7 @@ const emailRoutes = require("./global/email") const authRoutes = require("./global/auth") const roleRoutes = require("./global/roles") const sessionRoutes = require("./global/sessions") -const flagRoutes = require("./system/flags") +const environmentRoutes = require("./system/environment") const tenantsRoutes = require("./system/tenants") const appRoutes = require("./app") @@ -21,5 +21,5 @@ exports.routes = [ emailRoutes, sessionRoutes, roleRoutes, - flagRoutes, + environmentRoutes, ] diff --git a/packages/worker/src/api/routes/system/environment.js b/packages/worker/src/api/routes/system/environment.js new file mode 100644 index 0000000000..9b1b85638f --- /dev/null +++ b/packages/worker/src/api/routes/system/environment.js @@ -0,0 +1,8 @@ +const Router = require("@koa/router") +const controller = require("../../controllers/system/environment") + +const router = Router() + +router.get("/api/system/environment", controller.fetch) + +module.exports = router diff --git a/packages/worker/src/api/routes/system/flags.js b/packages/worker/src/api/routes/system/flags.js deleted file mode 100644 index f2f5c5712f..0000000000 --- a/packages/worker/src/api/routes/system/flags.js +++ /dev/null @@ -1,8 +0,0 @@ -const Router = require("@koa/router") -const controller = require("../../controllers/system/flags") - -const router = Router() - -router.get("/api/system/flags", controller.fetch) - -module.exports = router diff --git a/packages/worker/src/environment.js b/packages/worker/src/environment.js index c42bc087e8..12113c087c 100644 --- a/packages/worker/src/environment.js +++ b/packages/worker/src/environment.js @@ -32,6 +32,7 @@ module.exports = { REDIS_PASSWORD: process.env.REDIS_PASSWORD, INTERNAL_API_KEY: process.env.INTERNAL_API_KEY, MULTI_TENANCY: process.env.MULTI_TENANCY, + ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL, _set(key, value) { process.env[key] = value module.exports[key] = value From 011193a3dcdd4f2fc3c094201a0521510c4e3d9c Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 15:49:59 +0100 Subject: [PATCH 07/22] Navigate between budibase and account portal --- .../builder/src/pages/builder/portal/_layout.svelte | 11 +++++++++++ packages/worker/src/api/controllers/global/users.js | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/packages/builder/src/pages/builder/portal/_layout.svelte b/packages/builder/src/pages/builder/portal/_layout.svelte index 20bdc9cb54..3b1ea47e8b 100644 --- a/packages/builder/src/pages/builder/portal/_layout.svelte +++ b/packages/builder/src/pages/builder/portal/_layout.svelte @@ -12,6 +12,7 @@ } from "@budibase/bbui" import ConfigChecklist from "components/common/ConfigChecklist.svelte" import { organisation, auth } from "stores/portal" + import { admin as adminStore } from "stores/portal" import { onMount } from "svelte" import UpdateUserInfoModal from "components/settings/UpdateUserInfoModal.svelte" import ChangePasswordModal from "components/settings/ChangePasswordModal.svelte" @@ -57,6 +58,16 @@ }, ]) } + + // add link to account portal if the user has access + if ($auth.user.account) { + menu = menu.concat([ + { + title: "Account", + href: $adminStore.accountPortalUrl, + }, + ]) + } return menu } diff --git a/packages/worker/src/api/controllers/global/users.js b/packages/worker/src/api/controllers/global/users.js index 7fd367964c..13959273cd 100644 --- a/packages/worker/src/api/controllers/global/users.js +++ b/packages/worker/src/api/controllers/global/users.js @@ -196,6 +196,11 @@ exports.getSelf = async ctx => { } // this will set the body await exports.find(ctx) + + // append the account portal session information if present + if (ctx.user.account) { + ctx.body.account = ctx.user.account + } } exports.updateSelf = async ctx => { From 33090a2521157dc4f58a4d985b9cd604c4fa3506 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Tue, 14 Sep 2021 15:57:34 +0100 Subject: [PATCH 08/22] Move account portal redirect to top of auth level --- packages/builder/src/pages/builder/auth/_layout.svelte | 7 ++++++- packages/builder/src/pages/builder/auth/login.svelte | 6 ------ packages/builder/src/pages/builder/portal/_layout.svelte | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/builder/src/pages/builder/auth/_layout.svelte b/packages/builder/src/pages/builder/auth/_layout.svelte index eb9e229a9d..3254f4ccc2 100644 --- a/packages/builder/src/pages/builder/auth/_layout.svelte +++ b/packages/builder/src/pages/builder/auth/_layout.svelte @@ -1,5 +1,5 @@ diff --git a/packages/builder/src/pages/builder/auth/login.svelte b/packages/builder/src/pages/builder/auth/login.svelte index c46550b69f..783e5a4903 100644 --- a/packages/builder/src/pages/builder/auth/login.svelte +++ b/packages/builder/src/pages/builder/auth/login.svelte @@ -51,12 +51,6 @@ onMount(async () => { await organisation.init() - - // redirect to account portal for login in the cloud - if ($admin.cloud && $admin.accountPortalUrl) { - window.location.href = $admin.accountPortalUrl - } - loaded = true }) diff --git a/packages/builder/src/pages/builder/portal/_layout.svelte b/packages/builder/src/pages/builder/portal/_layout.svelte index 3b1ea47e8b..fa25fccde3 100644 --- a/packages/builder/src/pages/builder/portal/_layout.svelte +++ b/packages/builder/src/pages/builder/portal/_layout.svelte @@ -60,7 +60,7 @@ } // add link to account portal if the user has access - if ($auth.user.account) { + if ($auth?.user?.account) { menu = menu.concat([ { title: "Account", From 4869ecbf3a6608401b719448ea5eefbbc4dc3988 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Wed, 1 Sep 2021 15:23:40 +0100 Subject: [PATCH 09/22] add splash screen to automation --- .../FlowChart/FlowChart.svelte | 6 --- .../AutomationPanel/AutomationPanel.svelte | 3 +- .../app/[application]/automate/_layout.svelte | 50 ++++++++++++++++++- .../app/[application]/automate/index.svelte | 10 ---- 4 files changed, 50 insertions(+), 19 deletions(-) diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte index e960271b87..16ef04a7ca 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte @@ -19,7 +19,6 @@ } -{#if !blocks.length}Add a trigger to your automation to get started{/if}
{#each blocks as block, idx (block.id)}
diff --git a/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte b/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte index dbcbc33db0..b2773ae455 100644 --- a/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte @@ -2,7 +2,8 @@ import AutomationList from "./AutomationList.svelte" import CreateAutomationModal from "./CreateAutomationModal.svelte" import { Icon, Modal, Tabs, Tab } from "@budibase/bbui" - let modal + + export let modal
diff --git a/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte index d1aaeb0240..bc04548d8f 100644 --- a/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte @@ -1,22 +1,51 @@
- + {#if automation} + + {:else} +
+
+ + + + + You have no automations + Let's fix that. Call the bots! + + +
+
+ {/if}
{#if $automationStore.selectedAutomation}
{/if} + + +
diff --git a/packages/builder/src/pages/builder/app/[application]/automate/index.svelte b/packages/builder/src/pages/builder/app/[application]/automate/index.svelte index d48bd36e59..e5dea10e0b 100644 --- a/packages/builder/src/pages/builder/app/[application]/automate/index.svelte +++ b/packages/builder/src/pages/builder/app/[application]/automate/index.svelte @@ -15,13 +15,3 @@ } }) - -Create your first automation to get started - - From fd4c1c992972284a5bcce09a4453cfa21704b386 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Thu, 2 Sep 2021 14:25:01 +0100 Subject: [PATCH 10/22] Add triggers to setup modal --- .../AutomationPanel/AutomationPanel.svelte | 3 +- .../CreateAutomationModal.svelte | 91 ++++++++++++++----- .../app/[application]/automate/_layout.svelte | 9 +- 3 files changed, 77 insertions(+), 26 deletions(-) diff --git a/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte b/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte index b2773ae455..0c975eab18 100644 --- a/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/AutomationPanel.svelte @@ -4,6 +4,7 @@ import { Icon, Modal, Tabs, Tab } from "@budibase/bbui" export let modal + export let webhookModal
@@ -12,7 +13,7 @@
- +
diff --git a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte index dfcfc2ab95..43bb2ff777 100644 --- a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte @@ -3,12 +3,14 @@ import { database } from "stores/backend" import { automationStore } from "builderStore" import { notifications } from "@budibase/bbui" - import { Icon, Input, ModalContent } from "@budibase/bbui" + import { Input, ModalContent, Layout, Body } from "@budibase/bbui" import analytics from "analytics" let name + let selectedTrigger + let triggerVal + export let webhookModal - $: valid = !!name $: instanceId = $database._id async function createAutomation() { @@ -16,41 +18,84 @@ name, instanceId, }) + const newBlock = await $automationStore.selectedAutomation.constructBlock( + "TRIGGER", + triggerVal.stepId, + triggerVal + ) + automationStore.actions.addBlockToAutomation(newBlock) + if (triggerVal.stepId === "WEBHOOK") { + webhookModal.show() + } + notifications.success(`Automation ${name} created.`) $goto(`./${$automationStore.selectedAutomation.automation._id}`) analytics.captureEvent("Automation Created", { name }) } + $: triggers = Object.entries($automationStore.blockDefinitions.TRIGGER) + + const selectTrigger = trigger => { + triggerVal = trigger + selectedTrigger = trigger.name + } + Please name your automation, then select a trigger. Every automation must + start with a trigger. + - - - Learn about automations - + + + Triggers + +
+ {#each triggers as [idx, trigger]} +
selectTrigger(trigger)} + > +
+ + + {trigger.name} +
+
+ {/each} +
+
diff --git a/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte index bc04548d8f..0d0582a34e 100644 --- a/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte @@ -4,14 +4,16 @@ import AutomationPanel from "components/automation/AutomationPanel/AutomationPanel.svelte" import SetupPanel from "components/automation/SetupPanel/SetupPanel.svelte" import CreateAutomationModal from "components/automation/AutomationPanel/CreateAutomationModal.svelte" + import CreateWebhookModal from "components/automation/shared/CreateWebhookModal.svelte" $: automation = $automationStore.selectedAutomation?.automation let modal + let webhookModal
{#if automation} @@ -44,7 +46,10 @@
{/if} - + + + +
From 7fd79d3d4edee2b6ccde29e795bf75c9c7b02813 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Mon, 6 Sep 2021 14:31:55 +0100 Subject: [PATCH 11/22] Update flow chart styling and event handling --- .../bbui/src/ActionButton/ActionButton.svelte | 5 + .../AutomationBuilder.svelte | 1 - .../AutomationBuilder/FlowChart/Arrow.svelte | 1 + .../FlowChart/FlowChart.svelte | 80 +++++-- .../FlowChart/FlowItem.svelte | 224 ++++++++++++++---- .../FlowChart/TestDataModal.svelte | 12 + .../CreateAutomationModal.svelte | 31 ++- .../SetupPanel/AutomationBlockSetup.svelte | 8 +- .../automate/[automation]/_layout.svelte | 15 -- 9 files changed, 273 insertions(+), 104 deletions(-) create mode 100644 packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte delete mode 100644 packages/builder/src/pages/builder/app/[application]/automate/[automation]/_layout.svelte diff --git a/packages/bbui/src/ActionButton/ActionButton.svelte b/packages/bbui/src/ActionButton/ActionButton.svelte index 83f71d385b..b518ac3d92 100644 --- a/packages/bbui/src/ActionButton/ActionButton.svelte +++ b/packages/bbui/src/ActionButton/ActionButton.svelte @@ -12,6 +12,7 @@ export let dataCy = null export let size = "M" export let active = false + export let fullWidth = false function longPress(element) { if (!longPressable) return @@ -40,6 +41,7 @@ class:spectrum-ActionButton--quiet={quiet} class:spectrum-ActionButton--emphasized={emphasized} class:is-selected={selected} + class:fullWidth class="spectrum-ActionButton spectrum-ActionButton--size{size}" class:active {disabled} @@ -71,6 +73,9 @@ diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte index 439db62639..d36204897e 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte @@ -1,21 +1,83 @@
onSelect(block)} > -
- {#if block.type === "TRIGGER"} - - When this happens... - {:else if block.type === "ACTION"} - - Do this... - {:else if block.type === "LOGIC"} - - Only continue if... - {/if} -
- {#if block.type === "TRIGGER"}Trigger{:else}Step {blockIdx + 1}{/if} +
+
+ + + +
+ When this happens: + + {block.name.toUpperCase()} +
- {#if block.type !== "TRIGGER" || allowDeleteTrigger} -
- {/if} -
-
-

- -

+
+ +
+ +
+
{ + if (!setupComplete) { + setupToggled = !setupToggled + } + }} + class="toggle" + > + {#if setupToggled} + + {:else} + + {/if} + Setup +
+
deleteStep()}> + +
+
+ + {#if setupToggled} + + {#if block.inputs[schemaKey]} + + {/if} + {/if} +
+
+ + +
+ +
{ + if (setupComplete) { + testToggled = !testToggled + } + }} + class="toggle" + > + {#if testToggled} + + {:else} + + {/if} + Test +
+ {#if testToggled} + Add test data + + {/if} +
+
+ + + + + + + + + + + +
diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte new file mode 100644 index 0000000000..31139fdc9e --- /dev/null +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte @@ -0,0 +1,12 @@ + + + + test + diff --git a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte index 43bb2ff777..799cd930dd 100644 --- a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte @@ -3,7 +3,7 @@ import { database } from "stores/backend" import { automationStore } from "builderStore" import { notifications } from "@budibase/bbui" - import { Input, ModalContent, Layout, Body } from "@budibase/bbui" + import { Input, ModalContent, Layout, Body, Icon } from "@budibase/bbui" import analytics from "analytics" let name @@ -18,17 +18,18 @@ name, instanceId, }) - const newBlock = await $automationStore.selectedAutomation.constructBlock( + const newBlock = $automationStore.selectedAutomation.constructBlock( "TRIGGER", triggerVal.stepId, triggerVal ) + automationStore.actions.addBlockToAutomation(newBlock) if (triggerVal.stepId === "WEBHOOK") { webhookModal.show() } - notifications.success(`Automation ${name} created.`) + $goto(`./${$automationStore.selectedAutomation.automation._id}`) analytics.captureEvent("Automation Created", { name }) } @@ -56,16 +57,16 @@ Triggers -
+
{#each triggers as [idx, trigger]}
selectTrigger(trigger)} > -
- - +
+ + {trigger.name}
@@ -76,13 +77,21 @@ diff --git a/packages/builder/src/pages/builder/app/[application]/automate/[automation]/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/automate/[automation]/_layout.svelte deleted file mode 100644 index 3be71a1bbe..0000000000 --- a/packages/builder/src/pages/builder/app/[application]/automate/[automation]/_layout.svelte +++ /dev/null @@ -1,15 +0,0 @@ - - - From 09cab87a86cc71cb897ffad5f25fec86fd8b7ed4 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Tue, 7 Sep 2021 14:32:43 +0100 Subject: [PATCH 12/22] Add new actions modal and integration with flowchart --- packages/builder/assets/discord.svg | 10 ++ packages/builder/assets/integromat.png | Bin 0 -> 26614 bytes packages/builder/assets/slack.svg | 33 ++++ packages/builder/assets/zapier.png | Bin 0 -> 12359 bytes .../FlowChart/ActionModal.svelte | 140 +++++++++++++++++ .../FlowChart/FlowItem.svelte | 147 ++++++++++-------- .../app/[application]/automate/_layout.svelte | 19 --- packages/server/src/automations/steps/bash.js | 2 +- .../server/src/automations/steps/createRow.js | 2 +- .../server/src/automations/steps/delay.js | 2 +- .../server/src/automations/steps/deleteRow.js | 2 +- .../src/automations/steps/executeQuery.js | 2 +- .../src/automations/steps/executeScript.js | 2 +- .../server/src/automations/steps/filter.js | 2 +- .../src/automations/steps/outgoingWebhook.js | 2 +- .../src/automations/steps/sendSmtpEmail.js | 2 +- .../server/src/automations/steps/serverLog.js | 2 +- .../server/src/automations/steps/updateRow.js | 2 +- 18 files changed, 275 insertions(+), 96 deletions(-) create mode 100644 packages/builder/assets/discord.svg create mode 100644 packages/builder/assets/integromat.png create mode 100644 packages/builder/assets/slack.svg create mode 100644 packages/builder/assets/zapier.png create mode 100644 packages/builder/src/components/automation/AutomationBuilder/FlowChart/ActionModal.svelte diff --git a/packages/builder/assets/discord.svg b/packages/builder/assets/discord.svg new file mode 100644 index 0000000000..3efe1ec110 --- /dev/null +++ b/packages/builder/assets/discord.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/builder/assets/integromat.png b/packages/builder/assets/integromat.png new file mode 100644 index 0000000000000000000000000000000000000000..1fbbe63e7444ce8a7959293880d85b72d1ae7724 GIT binary patch literal 26614 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

*@J)kRGmkxaj;U0uin&yZC+8s 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 literal 0 HcmV?d00001 diff --git a/packages/builder/assets/slack.svg b/packages/builder/assets/slack.svg new file mode 100644 index 0000000000..c37dc5eb49 --- /dev/null +++ b/packages/builder/assets/slack.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/builder/assets/zapier.png b/packages/builder/assets/zapier.png new file mode 100644 index 0000000000000000000000000000000000000000..38053314401f390e840df558ba8cda5a3826714d GIT binary patch literal 12359 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 + import { ModalContent, Layout, Detail, Body, Icon } from "@budibase/bbui" + import { automationStore } from "builderStore" + import DiscordLogo from "assets/discord.svg" + import ZapierLogo from "assets/zapier.png" + import IntegromatLogo from "assets/integromat.png" + import SlackLogo from "assets/integromat.png" + + let selectedAction + let actionVal + export let blockComplete + + let externalActionsPredicate = [ + { name: "zapier", logo: ZapierLogo }, + { name: "discord", logo: DiscordLogo }, + { name: "slack", logo: SlackLogo }, + { name: "integromat", logo: IntegromatLogo }, + ] + let actions = Object.entries($automationStore.blockDefinitions.ACTION) + + const externalActions = actions.reduce((acc, elm) => { + const [k, v] = elm + if (externalActionsPredicate.some(pred => pred.name === k)) { + acc[k] = v + } + return acc + }, {}) + + const internalActions = actions.reduce((acc, elm) => { + const [k, v] = elm + if (!externalActionsPredicate.some(pred => pred.name === k)) { + acc[k] = v + } + return acc + }, {}) + + const selectAction = action => { + actionVal = action + selectedAction = action.name + } + + function addBlockToAutomation() { + const newBlock = $automationStore.selectedAutomation.constructBlock( + "ACTION", + actionVal.stepId, + actionVal + ) + automationStore.actions.addBlockToAutomation(newBlock) + } + + + { + blockComplete = true + addBlockToAutomation() + }} +> + Select an app or event. + + Apps + +

+ {#each Object.entries(externalActions) as [idx, action]} +
selectAction(action)} + > +
+ val.name === idx).logo} + alt="zapier" + /> + + {idx.charAt(0).toUpperCase() + idx.slice(1)} +
+
+ {/each} +
+ + Actions + +
+ {#each Object.entries(internalActions) as [idx, action]} +
selectAction(action)} + > +
+ + + {action.name} +
+
+ {/each} +
+ + + + diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte index d36204897e..cca59345ee 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte @@ -10,6 +10,7 @@ Button, ActionButton, notifications, + StatusLight, } from "@budibase/bbui" import AutomationBlockSetup from "../../SetupPanel/AutomationBlockSetup.svelte" import CreateWebhookModal from "components/automation/shared/CreateWebhookModal.svelte" @@ -25,6 +26,7 @@ let testDataModal let actionModal let setupComplete + let blockComplete let testToggled $: setupToggled = !setupComplete || false @@ -83,92 +85,105 @@
onSelect(block)} + on:click={() => { + blockComplete = false + onSelect(block) + }} >
-
- - - -
- When this happens: +
+
+ + + +
+ When this happens: - {block.name.toUpperCase()} + {block?.name?.toUpperCase() || ""} +
+ {#if blockComplete} + + {/if}
- -
- -
+ {#if !blockComplete} + +
+ +
+
{ + if (!setupComplete) { + setupToggled = !setupToggled + } + }} + class="toggle" + > + {#if setupToggled} + + {:else} + + {/if} + Setup +
+
deleteStep()}> + +
+
+ + {#if setupToggled} + + {#if block.inputs[schemaKey]} + + {/if} + {/if} +
+
+ + +
+
{ - if (!setupComplete) { - setupToggled = !setupToggled + if (setupComplete) { + testToggled = !testToggled } }} class="toggle" > - {#if setupToggled} + {#if testToggled} {:else} {/if} - Setup + Test
-
deleteStep()}> - -
-
- - {#if setupToggled} - - {#if block.inputs[schemaKey]} - Add test data + {/if} - {/if} - -
- - -
- -
{ - if (setupComplete) { - testToggled = !testToggled - } - }} - class="toggle" - > - {#if testToggled} - - {:else} - - {/if} - Test -
- {#if testToggled} - Add test data - - {/if} -
-
+
+
+ {/if} - + @@ -185,7 +200,7 @@ display: flex; align-items: center; } - .setup { + .splitHeader { display: flex; justify-content: space-between; } diff --git a/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte index 0d0582a34e..5123e50bc6 100644 --- a/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/automate/_layout.svelte @@ -2,7 +2,6 @@ import { Heading, Body, Layout, Button, Modal } from "@budibase/bbui" import { automationStore } from "builderStore" import AutomationPanel from "components/automation/AutomationPanel/AutomationPanel.svelte" - import SetupPanel from "components/automation/SetupPanel/SetupPanel.svelte" import CreateAutomationModal from "components/automation/AutomationPanel/CreateAutomationModal.svelte" import CreateWebhookModal from "components/automation/shared/CreateWebhookModal.svelte" $: automation = $automationStore.selectedAutomation?.automation @@ -40,11 +39,6 @@
{/if}
- {#if $automationStore.selectedAutomation} -
- -
- {/if} @@ -82,19 +76,6 @@ gap: var(--spacing-l); overflow: hidden; } - - .setup { - padding: var(--spectrum-global-dimension-size-200); - border-left: var(--border-light); - display: flex; - flex-direction: column; - justify-content: flex-start; - align-items: stretch; - gap: var(--spacing-l); - background-color: var(--background); - overflow-y: auto; - } - .centered { top: 0; bottom: 0; diff --git a/packages/server/src/automations/steps/bash.js b/packages/server/src/automations/steps/bash.js index 6c44c1bbbb..2be6ad7db3 100644 --- a/packages/server/src/automations/steps/bash.js +++ b/packages/server/src/automations/steps/bash.js @@ -4,7 +4,7 @@ const { processStringSync } = require("@budibase/string-templates") exports.definition = { name: "Bash Scripting", tagline: "Execute a bash command", - icon: "ri-terminal-box-line", + icon: "JourneyEvent", description: "Run a bash script", type: "ACTION", internal: true, diff --git a/packages/server/src/automations/steps/createRow.js b/packages/server/src/automations/steps/createRow.js index e3c90fb15b..6bb5e3c42e 100644 --- a/packages/server/src/automations/steps/createRow.js +++ b/packages/server/src/automations/steps/createRow.js @@ -6,7 +6,7 @@ const usage = require("../../utilities/usageQuota") exports.definition = { name: "Create Row", tagline: "Create a {{inputs.enriched.table.name}} row", - icon: "ri-save-3-line", + icon: "SaveFloppy", description: "Add a row to your database", type: "ACTION", internal: true, diff --git a/packages/server/src/automations/steps/delay.js b/packages/server/src/automations/steps/delay.js index 899d8f8401..ad59df54c5 100644 --- a/packages/server/src/automations/steps/delay.js +++ b/packages/server/src/automations/steps/delay.js @@ -2,7 +2,7 @@ let { wait } = require("../../utilities") exports.definition = { name: "Delay", - icon: "ri-time-line", + icon: "Clock", tagline: "Delay for {{inputs.time}} milliseconds", description: "Delay the automation until an amount of time has passed", stepId: "DELAY", diff --git a/packages/server/src/automations/steps/deleteRow.js b/packages/server/src/automations/steps/deleteRow.js index 10f39d2d0c..4e014ccc20 100644 --- a/packages/server/src/automations/steps/deleteRow.js +++ b/packages/server/src/automations/steps/deleteRow.js @@ -4,7 +4,7 @@ const usage = require("../../utilities/usageQuota") exports.definition = { description: "Delete a row from your database", - icon: "ri-delete-bin-line", + icon: "DeleteOutline", name: "Delete Row", tagline: "Delete a {{inputs.enriched.table.name}} row", type: "ACTION", diff --git a/packages/server/src/automations/steps/executeQuery.js b/packages/server/src/automations/steps/executeQuery.js index d5799a8f7d..2ca0b21449 100644 --- a/packages/server/src/automations/steps/executeQuery.js +++ b/packages/server/src/automations/steps/executeQuery.js @@ -4,7 +4,7 @@ const { buildCtx } = require("./utils") exports.definition = { name: "External Data Connector", tagline: "Execute Data Connector", - icon: "ri-database-2-line", + icon: "Data", description: "Execute a query in an external data connector", type: "ACTION", stepId: "EXECUTE_QUERY", diff --git a/packages/server/src/automations/steps/executeScript.js b/packages/server/src/automations/steps/executeScript.js index 70298b9f8f..c56dfbd4e9 100644 --- a/packages/server/src/automations/steps/executeScript.js +++ b/packages/server/src/automations/steps/executeScript.js @@ -4,7 +4,7 @@ const { buildCtx } = require("./utils") exports.definition = { name: "JS Scripting", tagline: "Execute JavaScript Code", - icon: "ri-terminal-box-line", + icon: "Code", description: "Run a piece of JavaScript code in your automation", type: "ACTION", internal: true, diff --git a/packages/server/src/automations/steps/filter.js b/packages/server/src/automations/steps/filter.js index 84bdc10c1d..80d3198cba 100644 --- a/packages/server/src/automations/steps/filter.js +++ b/packages/server/src/automations/steps/filter.js @@ -18,7 +18,7 @@ exports.PrettyFilterConditions = PrettyFilterConditions exports.definition = { name: "Filter", tagline: "{{inputs.field}} {{inputs.condition}} {{inputs.value}}", - icon: "ri-git-branch-line", + icon: "Branch2", description: "Filter any automations which do not meet certain conditions", type: "LOGIC", internal: true, diff --git a/packages/server/src/automations/steps/outgoingWebhook.js b/packages/server/src/automations/steps/outgoingWebhook.js index ea0f0ce6be..6194e1052b 100644 --- a/packages/server/src/automations/steps/outgoingWebhook.js +++ b/packages/server/src/automations/steps/outgoingWebhook.js @@ -20,7 +20,7 @@ const BODY_REQUESTS = [RequestType.POST, RequestType.PUT, RequestType.PATCH] exports.definition = { name: "Outgoing webhook", tagline: "Send a {{inputs.requestMethod}} request", - icon: "ri-send-plane-line", + icon: "Send", description: "Send a request of specified method to a URL", type: "ACTION", internal: true, diff --git a/packages/server/src/automations/steps/sendSmtpEmail.js b/packages/server/src/automations/steps/sendSmtpEmail.js index 552c9b4d36..9e4b5a6a3c 100644 --- a/packages/server/src/automations/steps/sendSmtpEmail.js +++ b/packages/server/src/automations/steps/sendSmtpEmail.js @@ -3,7 +3,7 @@ const { sendSmtpEmail } = require("../../utilities/workerRequests") exports.definition = { description: "Send an email using SMTP", tagline: "Send SMTP email to {{inputs.to}}", - icon: "ri-mail-open-line", + icon: "Email", name: "Send Email (SMTP)", type: "ACTION", internal: true, diff --git a/packages/server/src/automations/steps/serverLog.js b/packages/server/src/automations/steps/serverLog.js index 82e7d073e3..b88a731d56 100644 --- a/packages/server/src/automations/steps/serverLog.js +++ b/packages/server/src/automations/steps/serverLog.js @@ -7,7 +7,7 @@ exports.definition = { name: "Backend log", tagline: "Console log a value in the backend", - icon: "ri-server-line", + icon: "Monitoring", description: "Logs the given text to the server (using console.log)", type: "ACTION", internal: true, diff --git a/packages/server/src/automations/steps/updateRow.js b/packages/server/src/automations/steps/updateRow.js index 961f75dee7..ac5eb16fcd 100644 --- a/packages/server/src/automations/steps/updateRow.js +++ b/packages/server/src/automations/steps/updateRow.js @@ -4,7 +4,7 @@ const automationUtils = require("../automationUtils") exports.definition = { name: "Update Row", tagline: "Update a {{inputs.enriched.table.name}} row", - icon: "ri-refresh-line", + icon: "Refresh", description: "Update a row in your database", type: "ACTION", internal: true, From 0fadf104e257823d232dfc9d9da1c9409b535f67 Mon Sep 17 00:00:00 2001 From: Peter Clement Date: Thu, 9 Sep 2021 12:00:37 +0100 Subject: [PATCH 13/22] save automation on change / delete / create --- .../FlowChart/FlowChart.svelte | 51 +++++-- .../FlowChart/FlowItem.svelte | 124 ++++++------------ .../FlowChart/ResultsModal.svelte | 58 ++++++++ .../FlowChart/TestDataModal.svelte | 18 ++- .../CreateAutomationModal.svelte | 8 +- .../SetupPanel/AutomationBlockSetup.svelte | 57 ++++++-- .../automation/SetupPanel/CronBuilder.svelte | 11 +- .../automation/SetupPanel/RowSelector.svelte | 20 ++- .../automation/SetupPanel/SchemaSetup.svelte | 6 + .../SetupPanel/TableSelector.svelte | 9 ++ .../automate/[automation]/_layout.svelte | 15 +++ .../app/[application]/automate/_layout.svelte | 2 +- 12 files changed, 262 insertions(+), 117 deletions(-) create mode 100644 packages/builder/src/components/automation/AutomationBuilder/FlowChart/ResultsModal.svelte create mode 100644 packages/builder/src/pages/builder/app/[application]/automate/[automation]/_layout.svelte diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte index de89ebbb12..2398d2754a 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowChart.svelte @@ -1,16 +1,18 @@
@@ -32,26 +57,23 @@ style="display:flex; color: var(--spectrum-global-color-gray-400);" > - + deleteAutomation()} class="iconPadding"> - + testAutomation()} + icon="MultipleCheck" + size="S">Run test
-
- {#if published} - Automation is published{:else} - Automation is not published{/if} -
{#each blocks as block, idx (block.id)}
{#if idx !== blocks.length - 1} @@ -97,6 +119,7 @@ } .iconPadding { + cursor: pointer; display: flex; padding-right: var(--spacing-m); } diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte index cca59345ee..bc2ded8870 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/FlowItem.svelte @@ -8,77 +8,52 @@ Detail, Modal, Button, - ActionButton, - notifications, StatusLight, } from "@budibase/bbui" import AutomationBlockSetup from "../../SetupPanel/AutomationBlockSetup.svelte" import CreateWebhookModal from "components/automation/shared/CreateWebhookModal.svelte" import TestDataModal from "./TestDataModal.svelte" + import ResultsModal from "./ResultsModal.svelte" + import ActionModal from "./ActionModal.svelte" import { database } from "stores/backend" export let onSelect export let block - let selected let webhookModal let testDataModal let actionModal - let setupComplete + let resultsModal + let setupToggled let blockComplete - let testToggled - - $: setupToggled = !setupComplete || false - $: instanceId = $database._id - $: schemaKey = Object.keys(block.schema?.inputs?.properties || {}) + + $: isTrigger = block.type === "TRIGGER" $: selected = $automationStore.selectedBlock?.id === block.id $: steps = $automationStore.selectedAutomation?.automation?.definition?.steps ?? [] $: blockIdx = steps.findIndex(step => step.id === block.id) - $: allowDeleteTrigger = !steps.length + $: lastStep = !isTrigger && blockIdx + 1 === steps.length - function deleteStep() { + // Logic for hiding / showing the add button.first we check if it has a child + // then we check to see whether its inputs have been commpleted + $: disableAddButton = isTrigger + ? $automationStore.selectedAutomation?.automation?.definition?.steps + .length > 0 + : !isTrigger && steps.length - blockIdx > 1 + $: hasCompletedInputs = Object.keys( + block.schema?.inputs?.properties || {} + ).every(x => block?.inputs[x]) + + async function deleteStep() { automationStore.actions.deleteAutomationBlock(block) - } - - async function testAutomation() { - const result = await automationStore.actions.trigger({ - automation: $automationStore.selectedAutomation.automation, - }) - if (result.status === 200) { - notifications.success( - `Automation ${$automationStore.selectedAutomation.automation.name} triggered successfully.` - ) - } else { - notifications.error( - `Failed to trigger automation ${$automationStore.selectedAutomation.automation.name}.` - ) - } - return result - } - - async function saveAutomation() { await automationStore.actions.save({ instanceId, - automation: $automationStore.selectedAutomation.automation, + automation: $automationStore.selectedAutomation?.automation, }) - notifications.success( - `Automation ${$automationStore.selectedAutomation.automation.name} saved.` - ) - } - - function onContinue() { - const testResult = testAutomation() - const saveResult = saveAutomation() - - if (testResult && saveResult) { - setupComplete = true - testToggled = true - } } @@ -108,8 +83,12 @@ {block?.name?.toUpperCase() || ""}
- {#if blockComplete} - + {#if !blockComplete} + resultsModal.show()}> + View response + {/if}
@@ -120,9 +99,7 @@
{ - if (!setupComplete) { - setupToggled = !setupToggled - } + setupToggled = !setupToggled }} class="toggle" > @@ -133,55 +110,38 @@ {/if} Setup
-
deleteStep()}> - -
+ {#if !isTrigger} +
deleteStep()}> + +
+ {/if}
{#if setupToggled} - {#if block.inputs[schemaKey]} - testDataModal.show()} cta + >Test Automation {/if} - {/if} - -
- - -
- -
{ - if (setupComplete) { - testToggled = !testToggled - } - }} - class="toggle" - > - {#if testToggled} - - {:else} - - {/if} - Test -
- {#if testToggled} - Add test data Add Action {/if}
{/if} + + + + diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ResultsModal.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ResultsModal.svelte new file mode 100644 index 0000000000..cbfd5ad432 --- /dev/null +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/ResultsModal.svelte @@ -0,0 +1,58 @@ + + + +
+
{ + inputToggled = !inputToggled + }} + class="toggle" + > + {#if inputToggled} + + {:else} + + {/if} + Input +
+
+ +
+
{ + outputToggled = !outputToggled + }} + class="toggle" + > + {#if outputToggled} + + {:else} + + {/if} + Output +
+
+
+ + diff --git a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte index 31139fdc9e..9de0265dc9 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/FlowChart/TestDataModal.svelte @@ -1,5 +1,10 @@ - test +
+ > + +