From fb3032f9d11d827d1ee6891c21a6c5e772d56f91 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 1 Feb 2023 19:09:36 +0000 Subject: [PATCH 01/23] Re-working the error handling for the SQL relationship modal, as well as adding some better defaults for the majority of the options to make the UI a bit easier to use. --- .../Datasources/CreateEditRelationship.svelte | 263 ++++++++---------- .../backend/Datasources/relationshipErrors.js | 86 ++++++ 2 files changed, 208 insertions(+), 141 deletions(-) create mode 100644 packages/builder/src/components/backend/Datasources/relationshipErrors.js diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index e43437d756..68b51ef3a1 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -10,17 +10,17 @@ } from "@budibase/bbui" import { tables } from "stores/backend" import { Helpers } from "@budibase/bbui" + import { RelationshipErrorChecker } from "./relationshipErrors" + import { onMount } from "svelte" export let save export let datasource export let plusTables = [] export let fromRelationship = {} export let toRelationship = {} + export let selectedFromTable export let close - const colNotSet = "Please specify a column name" - const relationshipAlreadyExists = - "A relationship between these tables already exists." const relationshipTypes = [ { label: "One to Many", @@ -42,8 +42,11 @@ ) let tableOptions + let errorChecker = new RelationshipErrorChecker( + invalidThroughTable, + relationshipExists + ) let errors = {} - let hasClickedSave = !!fromRelationship.relationshipType let fromPrimary, fromForeign, fromTable, @@ -51,12 +54,19 @@ throughTable, fromColumn, toColumn - let fromId, toId, throughId, throughToKey, throughFromKey + let fromId = selectedFromTable?._id, + toId, + throughId, + throughToKey, + throughFromKey let isManyToMany, isManyToOne, relationshipType + let hasValidated = false $: { if (!fromPrimary) { fromPrimary = fromRelationship.foreignKey + } + if (!fromForeign) { fromForeign = toRelationship.foreignKey } if (!fromColumn && !errors.fromColumn) { @@ -77,7 +87,8 @@ throughToKey = fromRelationship.throughTo } if (!relationshipType) { - relationshipType = fromRelationship.relationshipType + relationshipType = + fromRelationship.relationshipType || RelationshipTypes.MANY_TO_ONE } } @@ -85,7 +96,7 @@ label: table.name, value: table._id, })) - $: valid = getErrorCount(errors) === 0 || !hasClickedSave + $: valid = getErrorCount(errors) === 0 && allRequiredAttributesSet() $: isManyToMany = relationshipType === RelationshipTypes.MANY_TO_MANY $: isManyToOne = relationshipType === RelationshipTypes.MANY_TO_ONE @@ -95,10 +106,20 @@ $: toRelationship.relationshipType = fromRelationship?.relationshipType - const getErrorCount = errors => - Object.entries(errors) + function getErrorCount(errors) { + return Object.entries(errors) .filter(entry => !!entry[1]) .map(entry => entry[0]).length + } + + function allRequiredAttributesSet() { + const base = fromTable && toTable && fromColumn && toColumn + if (isManyToOne) { + return base && fromPrimary && fromForeign + } else { + return base && throughTable && throughFromKey && throughToKey + } + } function invalidThroughTable() { // need to know the foreign key columns to check error @@ -118,93 +139,48 @@ } function validate() { - const isMany = relationshipType === RelationshipTypes.MANY_TO_MANY - const tableNotSet = "Please specify a table" - const foreignKeyNotSet = "Please pick a foreign key" + if (!allRequiredAttributesSet() && !hasValidated) { + return + } + hasValidated = true + errorChecker.setType(relationshipType) const errObj = {} - if (!relationshipType) { - errObj.relationshipType = "Please specify a relationship type" - } - if (!fromTable) { - errObj.fromTable = tableNotSet - } - if (!toTable) { - errObj.toTable = tableNotSet - } - if (isMany && !throughTable) { - errObj.throughTable = tableNotSet - } - if (isMany && !throughFromKey) { - errObj.throughFromKey = foreignKeyNotSet - } - if (isMany && !throughToKey) { - errObj.throughToKey = foreignKeyNotSet - } - if (invalidThroughTable()) { - errObj.throughTable = - "Ensure non-key columns are nullable or auto-generated" - } - if (!isMany && !fromForeign) { - errObj.fromForeign = foreignKeyNotSet - } - if (!fromColumn) { - errObj.fromColumn = colNotSet - } - if (!toColumn) { - errObj.toColumn = colNotSet - } - if (!isMany && !fromPrimary) { - errObj.fromPrimary = "Please pick the primary key" - } - if (isMany && relationshipExists()) { - errObj.fromTable = relationshipAlreadyExists - errObj.toTable = relationshipAlreadyExists - } - + errObj.relationshipType = errorChecker.relationshipTypeSet(relationshipType) + errObj.fromTable = errorChecker.tableSet(fromTable) + errObj.toTable = errorChecker.tableSet(toTable) + errObj.throughTable = errorChecker.throughTableSet(throughTable) + errObj.throughFromKey = errorChecker.manyForeignKeySet(throughFromKey) + errObj.throughToKey = errorChecker.manyForeignKeySet(throughToKey) + errObj.throughTable = errorChecker.throughIsNullable() + errObj.fromForeign = errorChecker.foreignKeySet(fromForeign) + errObj.fromPrimary = errorChecker.foreignKeySet(fromPrimary) + errObj.fromTable = errorChecker.doesRelationshipExists() + errObj.toTable = errorChecker.doesRelationshipExists() // currently don't support relationships back onto the table itself, needs to relate out - const tableError = "From/to/through tables must be different" - if (fromTable && (fromTable === toTable || fromTable === throughTable)) { - errObj.fromTable = tableError - } - if (toTable && (toTable === fromTable || toTable === throughTable)) { - errObj.toTable = tableError - } - if ( - throughTable && - (throughTable === fromTable || throughTable === toTable) - ) { - errObj.throughTable = tableError - } - const colError = "Column name cannot be an existing column" - if (isColumnNameBeingUsed(toTable, fromColumn, originalFromColumnName)) { - errObj.fromColumn = colError - } - if (isColumnNameBeingUsed(fromTable, toColumn, originalToColumnName)) { - errObj.toColumn = colError - } - - let fromType, toType - if (fromPrimary && fromForeign) { - fromType = fromTable?.schema[fromPrimary]?.type - toType = toTable?.schema[fromForeign]?.type - } - if (fromType && toType && fromType !== toType) { - errObj.fromForeign = - "Column type of the foreign key must match the primary key" - } - + errObj.fromTable = errorChecker.differentTables(fromId, toId, throughId) + errObj.toTable = errorChecker.differentTables(toId, fromId, throughId) + errObj.throughTable = errorChecker.differentTables(throughId, fromId, toId) + errObj.fromColumn = errorChecker.columnBeingUsed( + toTable, + fromColumn, + originalFromColumnName + ) + errObj.toColumn = errorChecker.columnBeingUsed( + fromTable, + toColumn, + originalToColumnName + ) + errObj.fromForeign = errorChecker.typeMismatch( + fromTable, + toTable, + fromPrimary, + fromForeign + ) + console.log(errObj) errors = errObj return getErrorCount(errors) === 0 } - function isColumnNameBeingUsed(table, columnName, originalName) { - if (!table || !columnName || columnName === originalName) { - return false - } - const keys = Object.keys(table.schema).map(key => key.toLowerCase()) - return keys.indexOf(columnName.toLowerCase()) !== -1 - } - function buildRelationships() { const id = Helpers.uuid() //Map temporary variables @@ -320,7 +296,6 @@ } async function saveRelationship() { - hasClickedSave = true if (!validate()) { return false } @@ -342,6 +317,20 @@ await tables.fetch() close() } + + function changed(fn) { + if (fn && typeof fn === "function") { + fn() + } + validate() + } + + onMount(() => { + if (selectedFromTable) { + fromColumn = selectedFromTable.name + fromPrimary = selectedFromTable?.primary[0] || null + } + }) (errors.relationshipType = null)} + on:change={changed} />
Tables
- + changed(() => { + const table = plusTables.find(tbl => tbl._id === e.detail) + fromColumn = table?.name || "" + fromPrimary = table?.primary?.[0] + })} + /> + {/if} {#if isManyToOne && fromTable} { - toColumn = tableOptions.find(opt => opt.value === e.detail)?.label || "" - if (errors.toTable === relationshipAlreadyExists) { - errors.fromColumn = null - } - errors.toTable = null - errors.toColumn = null - errors.fromTable = null - errors.throughTable = null - }} + on:change={e => + changed(() => { + const table = plusTables.find(tbl => tbl._id === e.detail) + toColumn = table.name || "" + fromForeign = null + })} /> {#if isManyToMany} { - if (throughFromKey === e.detail) { - throughFromKey = null - } - errors.throughToKey = null - }} + on:change={e => + changed(() => { + if (throughFromKey === e.detail) { + throughFromKey = null + } + })} /> (errors.toColumn = e.detail?.length > 0 ? null : colNotSet)} + on:change={changed} />
{#if originalFromColumnName != null} diff --git a/packages/builder/src/components/backend/Datasources/relationshipErrors.js b/packages/builder/src/components/backend/Datasources/relationshipErrors.js new file mode 100644 index 0000000000..71fb634ada --- /dev/null +++ b/packages/builder/src/components/backend/Datasources/relationshipErrors.js @@ -0,0 +1,86 @@ +import { RelationshipTypes } from "constants/backend" + +export const typeMismatch = + "Column type of the foreign key must match the primary key" +export const columnCantExist = "Column name cannot be an existing column" +export const mustBeDifferentTables = "From/to/through tables must be different" +export const primaryKeyNotSet = "Please pick the primary key" +export const throughNotNullable = + "Ensure non-key columns are nullable or auto-generated" +export const noRelationshipType = "Please specify a relationship type" +export const tableNotSet = "Please specify a table" +export const foreignKeyNotSet = "Please pick a foreign key" +export const relationshipAlreadyExists = + "A relationship between these tables already exists" + +function isColumnNameBeingUsed(table, columnName, originalName) { + if (!table || !columnName || columnName === originalName) { + return false + } + const keys = Object.keys(table.schema).map(key => key.toLowerCase()) + return keys.indexOf(columnName.toLowerCase()) !== -1 +} + +export class RelationshipErrorChecker { + constructor(invalidThroughTableFn, relationshipExistsFn) { + this.invalidThroughTable = invalidThroughTableFn + this.relationshipExists = relationshipExistsFn + } + + setType(type) { + this.type = type + } + + isMany() { + return this.type === RelationshipTypes.MANY_TO_MANY + } + + relationshipTypeSet(type) { + return !type ? noRelationshipType : null + } + + tableSet(table) { + return !table ? tableNotSet : null + } + + throughTableSet(table) { + return this.isMany() && !table ? tableNotSet : null + } + + manyForeignKeySet(key) { + return this.isMany() && !key ? foreignKeyNotSet : null + } + + foreignKeySet(key) { + return !this.isMany() && !key ? foreignKeyNotSet : null + } + + throughIsNullable() { + return this.invalidThroughTable() ? throughNotNullable : null + } + + doesRelationshipExists() { + return this.isMany() && this.relationshipExists() + ? relationshipAlreadyExists + : null + } + + differentTables(table1, table2, table3) { + // currently don't support relationships back onto the table itself, needs to relate out + const error = table1 && (table1 === table2 || (table3 && table1 === table3)) + return error ? mustBeDifferentTables : null + } + + columnBeingUsed(table, column, ogName) { + return isColumnNameBeingUsed(table, column, ogName) ? columnCantExist : null + } + + typeMismatch(fromTable, toTable, primary, foreign) { + let fromType, toType + if (primary && foreign) { + fromType = fromTable?.schema[primary]?.type + toType = toTable?.schema[foreign]?.type + } + return fromType && toType && fromType !== toType ? typeMismatch : null + } +} From 70279e959c04595f775ecf948a32dda7d84f2152 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 1 Feb 2023 19:10:41 +0000 Subject: [PATCH 02/23] Removing console log. --- .../components/backend/Datasources/CreateEditRelationship.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index 68b51ef3a1..1901053564 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -176,7 +176,6 @@ fromPrimary, fromForeign ) - console.log(errObj) errors = errObj return getErrorCount(errors) === 0 } From fc3e9be7531f612e5dca2709204e4194a87f7f1b Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 1 Feb 2023 19:26:26 +0000 Subject: [PATCH 03/23] Some final updates, clean up some code that could be causing reactive issues. --- .../Datasources/CreateEditRelationship.svelte | 136 ++++++++---------- .../backend/Datasources/relationshipErrors.js | 23 +-- 2 files changed, 72 insertions(+), 87 deletions(-) diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index 1901053564..57ac41a093 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -62,65 +62,18 @@ let isManyToMany, isManyToOne, relationshipType let hasValidated = false - $: { - if (!fromPrimary) { - fromPrimary = fromRelationship.foreignKey - } - if (!fromForeign) { - fromForeign = toRelationship.foreignKey - } - if (!fromColumn && !errors.fromColumn) { - fromColumn = toRelationship.name - } - if (!toColumn && !errors.toColumn) { - toColumn = fromRelationship.name - } - if (!fromId) { - fromId = toRelationship.tableId - } - if (!toId) { - toId = fromRelationship.tableId - } - if (!throughId) { - throughId = fromRelationship.through - throughFromKey = fromRelationship.throughFrom - throughToKey = fromRelationship.throughTo - } - if (!relationshipType) { - relationshipType = - fromRelationship.relationshipType || RelationshipTypes.MANY_TO_ONE - } - } - $: tableOptions = plusTables.map(table => ({ label: table.name, value: table._id, })) $: valid = getErrorCount(errors) === 0 && allRequiredAttributesSet() - $: isManyToMany = relationshipType === RelationshipTypes.MANY_TO_MANY $: isManyToOne = relationshipType === RelationshipTypes.MANY_TO_ONE $: fromTable = plusTables.find(table => table._id === fromId) $: toTable = plusTables.find(table => table._id === toId) $: throughTable = plusTables.find(table => table._id === throughId) - $: toRelationship.relationshipType = fromRelationship?.relationshipType - function getErrorCount(errors) { - return Object.entries(errors) - .filter(entry => !!entry[1]) - .map(entry => entry[0]).length - } - - function allRequiredAttributesSet() { - const base = fromTable && toTable && fromColumn && toColumn - if (isManyToOne) { - return base && fromPrimary && fromForeign - } else { - return base && throughTable && throughFromKey && throughToKey - } - } - function invalidThroughTable() { // need to know the foreign key columns to check error if (!throughId || !throughToKey || !throughFromKey) { @@ -137,6 +90,49 @@ } return false } + function relationshipExists() { + if ( + originalFromTable && + originalToTable && + originalFromTable === fromTable && + originalToTable === toTable + ) { + return false + } + let fromThroughLinks = Object.values( + datasource.entities[fromTable.name].schema + ).filter(value => value.through) + let toThroughLinks = Object.values( + datasource.entities[toTable.name].schema + ).filter(value => value.through) + + const matchAgainstUserInput = (fromTableId, toTableId) => + (fromTableId === fromId && toTableId === toId) || + (fromTableId === toId && toTableId === fromId) + + return !!fromThroughLinks.find(from => + toThroughLinks.find( + to => + from.through === to.through && + matchAgainstUserInput(from.tableId, to.tableId) + ) + ) + } + + function getErrorCount(errors) { + return Object.entries(errors) + .filter(entry => !!entry[1]) + .map(entry => entry[0]).length + } + + function allRequiredAttributesSet() { + const base = fromTable && toTable && fromColumn && toColumn + if (isManyToOne) { + return base && fromPrimary && fromForeign + } else { + return base && throughTable && throughFromKey && throughToKey + } + } function validate() { if (!allRequiredAttributesSet() && !hasValidated) { @@ -153,7 +149,7 @@ errObj.throughToKey = errorChecker.manyForeignKeySet(throughToKey) errObj.throughTable = errorChecker.throughIsNullable() errObj.fromForeign = errorChecker.foreignKeySet(fromForeign) - errObj.fromPrimary = errorChecker.foreignKeySet(fromPrimary) + errObj.fromPrimary = errorChecker.primaryKeySet(fromPrimary) errObj.fromTable = errorChecker.doesRelationshipExists() errObj.toTable = errorChecker.doesRelationshipExists() // currently don't support relationships back onto the table itself, needs to relate out @@ -252,35 +248,6 @@ toRelationship = relateTo } - function relationshipExists() { - if ( - originalFromTable && - originalToTable && - originalFromTable === fromTable && - originalToTable === toTable - ) { - return false - } - let fromThroughLinks = Object.values( - datasource.entities[fromTable.name].schema - ).filter(value => value.through) - let toThroughLinks = Object.values( - datasource.entities[toTable.name].schema - ).filter(value => value.through) - - const matchAgainstUserInput = (fromTableId, toTableId) => - (fromTableId === fromId && toTableId === toId) || - (fromTableId === toId && toTableId === fromId) - - return !!fromThroughLinks.find(from => - toThroughLinks.find( - to => - from.through === to.through && - matchAgainstUserInput(from.tableId, to.tableId) - ) - ) - } - function removeExistingRelationship() { if (originalFromTable && originalFromColumnName) { delete datasource.entities[originalFromTable.name].schema[ @@ -325,6 +292,21 @@ } onMount(() => { + if (fromRelationship) { + fromPrimary = fromRelationship.foreignKey + toId = fromRelationship.tableId + throughId = fromRelationship.through + throughFromKey = fromRelationship.throughFrom + throughToKey = fromRelationship.throughTo + toColumn = fromRelationship.name + } + if (toRelationship) { + fromForeign = toRelationship.foreignKey + fromId = toRelationship.tableId + fromColumn = toRelationship.name + } + relationshipType = + fromRelationship.relationshipType || RelationshipTypes.MANY_TO_ONE if (selectedFromTable) { fromColumn = selectedFromTable.name fromPrimary = selectedFromTable?.primary[0] || null diff --git a/packages/builder/src/components/backend/Datasources/relationshipErrors.js b/packages/builder/src/components/backend/Datasources/relationshipErrors.js index 71fb634ada..cdb7805506 100644 --- a/packages/builder/src/components/backend/Datasources/relationshipErrors.js +++ b/packages/builder/src/components/backend/Datasources/relationshipErrors.js @@ -1,16 +1,15 @@ import { RelationshipTypes } from "constants/backend" -export const typeMismatch = - "Column type of the foreign key must match the primary key" -export const columnCantExist = "Column name cannot be an existing column" -export const mustBeDifferentTables = "From/to/through tables must be different" -export const primaryKeyNotSet = "Please pick the primary key" -export const throughNotNullable = +const typeMismatch = "Column type of the foreign key must match the primary key" +const columnCantExist = "Column name cannot be an existing column" +const mustBeDifferentTables = "From/to/through tables must be different" +const primaryKeyNotSet = "Please pick the primary key" +const throughNotNullable = "Ensure non-key columns are nullable or auto-generated" -export const noRelationshipType = "Please specify a relationship type" -export const tableNotSet = "Please specify a table" -export const foreignKeyNotSet = "Please pick a foreign key" -export const relationshipAlreadyExists = +const noRelationshipType = "Please specify a relationship type" +const tableNotSet = "Please specify a table" +const foreignKeyNotSet = "Please pick a foreign key" +const relationshipAlreadyExists = "A relationship between these tables already exists" function isColumnNameBeingUsed(table, columnName, originalName) { @@ -55,6 +54,10 @@ export class RelationshipErrorChecker { return !this.isMany() && !key ? foreignKeyNotSet : null } + primaryKeySet(key) { + return !this.isMany() && !key ? primaryKeyNotSet : null + } + throughIsNullable() { return this.invalidThroughTable() ? throughNotNullable : null } From 4f5293b52f207087aff24d4c3c0568fe73a88ef2 Mon Sep 17 00:00:00 2001 From: adrinr Date: Thu, 2 Feb 2023 11:19:38 +0000 Subject: [PATCH 04/23] Setup prettier --- .vscode/extensions.json | 5 +++++ .vscode/settings.json | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000000..0f148de5ef --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 71f0092a59..148859eaa3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,7 +8,7 @@ "editor.defaultFormatter": "vscode.json-language-features" }, "[javascript]": { - "editor.defaultFormatter": "vscode.typescript-language-features" + "editor.defaultFormatter": "esbenp.prettier-vscode" }, "debug.javascript.terminalOptions": { "skipFiles": [ @@ -17,6 +17,9 @@ ] }, "[typescript]": { - "editor.defaultFormatter": "vscode.typescript-language-features" + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[dockercompose]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" }, } From 0bfa93993ca899080024cec374046ec7235f8bef Mon Sep 17 00:00:00 2001 From: adrinr Date: Thu, 2 Feb 2023 11:22:15 +0000 Subject: [PATCH 05/23] Svelte docs --- .vscode/extensions.json | 3 ++- .vscode/settings.json | 49 ++++++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0f148de5ef..03d0aa4411 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,6 @@ { "recommendations": [ - "esbenp.prettier-vscode" + "esbenp.prettier-vscode", + "svelte.svelte-vscode" ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 148859eaa3..ece537efac 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,25 +1,28 @@ { - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.fixAll": true - }, - "editor.defaultFormatter": "svelte.svelte-vscode", - "[json]": { - "editor.defaultFormatter": "vscode.json-language-features" - }, - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "debug.javascript.terminalOptions": { - "skipFiles": [ - "${workspaceFolder}/packages/backend-core/node_modules/**", - "/**" - ] - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[dockercompose]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll": true + }, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "debug.javascript.terminalOptions": { + "skipFiles": [ + "${workspaceFolder}/packages/backend-core/node_modules/**", + "/**" + ] + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[dockercompose]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[svelte]": { + "editor.defaultFormatter": "svelte.svelte-vscode" + } } From 64d9149eaf1e7b613d2711839cd3a6356de466b4 Mon Sep 17 00:00:00 2001 From: adrinr Date: Thu, 2 Feb 2023 12:36:25 +0000 Subject: [PATCH 06/23] Add setup in md --- docs/CONTRIBUTING.md | 89 ++++++++++++++------- scripts/install-contributor-dependencies.sh | 23 ++++++ 2 files changed, 81 insertions(+), 31 deletions(-) create mode 100755 scripts/install-contributor-dependencies.sh diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index fb0848596c..544b5550fe 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -9,7 +9,6 @@ From opening a bug report to creating a pull request: every contribution is appr - [Glossary of Terms](#glossary-of-terms) - [Contributing to Budibase](#contributing-to-budibase) - ## Not Sure Where to Start? Budibase is a low-code web application builder that creates svelte-based web applications. @@ -22,7 +21,7 @@ Budibase is a monorepo managed by [lerna](https://github.com/lerna/lerna). Lerna - **packages/server** - The budibase server. This [Koa](https://koajs.com/) app is responsible for serving the JS for the builder and budibase apps, as well as providing the API for interaction with the database and file system. -- **packages/worker** - This [Koa](https://koajs.com/) app is responsible for providing global apis for managing your budibase installation. Authentication, Users, Email, Org and Auth configs are all provided by the worker. +- **packages/worker** - This [Koa](https://koajs.com/) app is responsible for providing global apis for managing your budibase installation. Authentication, Users, Email, Org and Auth configs are all provided by the worker. ## Contributor License Agreement (CLA) @@ -45,7 +44,7 @@ A client represents a single budibase customer. Each budibase client will have 1 ### App -A client can have one or more budibase applications. Budibase applications would be things like "Developer Inventory Management" or "Goat Herder CRM". Think of a budibase application as a tree. +A client can have one or more budibase applications. Budibase applications would be things like "Developer Inventory Management" or "Goat Herder CRM". Think of a budibase application as a tree. ### Database @@ -73,28 +72,48 @@ A component is the basic frontend building block of a budibase app. ### Component Library -Component libraries are collections of components as well as the definition of their props contained in a file called `components.json`. +Component libraries are collections of components as well as the definition of their props contained in a file called `components.json`. ## Contributing to Budibase -* Please maintain the existing code style. +- Please maintain the existing code style. -* Please try to keep your commits small and focused. +- Please try to keep your commits small and focused. -* Please write tests. +- Please write tests. -* If the project diverges from your branch, please rebase instead of merging. This makes the commit graph easier to read. +- If the project diverges from your branch, please rebase instead of merging. This makes the commit graph easier to read. -* Once your work is completed, please raise a PR against the `develop` branch with some information about what has changed and why. +- Once your work is completed, please raise a PR against the `develop` branch with some information about what has changed and why. ### Getting Started For Contributors -#### 1. Prerequisites -NodeJS Version `14.x.x` +#### 1. Prerequisites -*yarn -* `npm install -g yarn` +##### 1.1 NodeJs and python -*jest* - `npm install -g jest` +- NodeJS version `14.x.x` +- Python version `3.x` + +##### 1.1.1 Using asdf (recommended) + +Asdf is a package manager that allows managing multiple dependencies. +If can be installed either: + +1. Run script (recommended): `./scripts/install-contributor-dependencies.sh` +2. Or, manual installation steps: https://asdf-vm.com/guide/getting-started.html + - asdf plugin add nodejs + - asdf plugin add python + +##### 1.1.2 Using NVM + +https://github.com/nvm-sh/nvm#installing-and-updating + +--- + +#### 1.2 Install yarn + +_yarn -_ `npm install -g yarn` #### 2. Clone this repository @@ -102,7 +121,7 @@ NodeJS Version `14.x.x` then `cd ` into your local copy. -#### 3. Install and Build +#### 3. Install and Build | **NOTE**: On Windows, all yarn commands must be executed on a bash shell (e.g. git bash) @@ -134,9 +153,9 @@ This will enable watch mode for both the builder app, server, client library and #### 5. Debugging using VS Code -To debug the budibase server and worker a VS Code launch configuration has been provided. +To debug the budibase server and worker a VS Code launch configuration has been provided. -Visit the debug window and select `Budibase Server` or `Budibase Worker` to debug the respective component. +Visit the debug window and select `Budibase Server` or `Budibase Worker` to debug the respective component. Alternatively to start both components simultaneously select `Start Budibase`. In addition to the above, the remaining budibase components may be run in dev mode using: `yarn dev:noserver`. @@ -156,11 +175,11 @@ For the backend we run [Redis](https://redis.io/), [CouchDB](https://couchdb.apa When you are running locally, budibase stores data on disk using docker volumes. The volumes and the types of data associated with each are: -- `redis_data` +- `redis_data` - Sessions, email tokens -- `couchdb3_data` +- `couchdb3_data` - Global and app databases -- `minio_data` +- `minio_data` - App manifest, budibase client, static assets ### Development Modes @@ -172,34 +191,42 @@ A combination of environment variables controls the mode budibase runs in. Yarn commands can be used to mimic the different modes as described in the sections below: #### Self Hosted -The default mode. A single tenant installation with no usage restrictions. + +The default mode. A single tenant installation with no usage restrictions. To enable this mode, use: + ``` yarn mode:self ``` #### Cloud -The cloud mode, with account portal turned off. + +The cloud mode, with account portal turned off. To enable this mode, use: + ``` yarn mode:cloud ``` -#### Cloud & Account -The cloud mode, with account portal turned on. This is a replica of the mode that runs at https://budibase.app +#### Cloud & Account + +The cloud mode, with account portal turned on. This is a replica of the mode that runs at https://budibase.app To enable this mode, use: + ``` yarn mode:account ``` + ### CI - An overview of the CI pipelines can be found [here](../.github/workflows/README.md) + +An overview of the CI pipelines can be found [here](../.github/workflows/README.md) ### Pro -@budibase/pro is the closed source package that supports licensed features in budibase. By default the package will be pulled from NPM and will not normally need to be touched in local development. If you require to update code inside the pro package it can be cloned to the same root level as budibase, e.g. +@budibase/pro is the closed source package that supports licensed features in budibase. By default the package will be pulled from NPM and will not normally need to be touched in local development. If you require to update code inside the pro package it can be cloned to the same root level as budibase, e.g. ``` . @@ -207,13 +234,14 @@ yarn mode:account |_ budibase-pro ``` -Note that only budibase maintainers will be able to access the pro repo. +Note that only budibase maintainers will be able to access the pro repo. -The `yarn bootstrap` command can be used to replace the NPM supplied dependency with the local source aware version. This is achieved using the `yarn link` command. To see specifically how dependencies are linked see [scripts/link-dependencies.sh](../scripts/link-dependencies.sh). The same link script is used to link dependencies to account-portal in local dev. +The `yarn bootstrap` command can be used to replace the NPM supplied dependency with the local source aware version. This is achieved using the `yarn link` command. To see specifically how dependencies are linked see [scripts/link-dependencies.sh](../scripts/link-dependencies.sh). The same link script is used to link dependencies to account-portal in local dev. ### Troubleshooting Sometimes, things go wrong. This can be due to incompatible updates on the budibase platform. To clear down your development environment and start again follow **Step 6. Cleanup**, then proceed from **Step 3. Install and Build** in the setup guide above to create a fresh Budibase installation. + ### Running tests #### End-to-end Tests @@ -226,12 +254,11 @@ yarn test:e2e Or if you are in the builder you can run `yarn cy:test`. - ### Other Useful Information -* The contributors are listed in [AUTHORS.md](https://github.com/Budibase/budibase/blob/master/.github/AUTHORS.md) (add yourself). +- The contributors are listed in [AUTHORS.md](https://github.com/Budibase/budibase/blob/master/.github/AUTHORS.md) (add yourself). -* This project uses a modified version of the MPLv2 license, see [LICENSE](https://github.com/budibase/server/blob/master/LICENSE). +- This project uses a modified version of the MPLv2 license, see [LICENSE](https://github.com/budibase/server/blob/master/LICENSE). -* We use the [C4 (Collective Code Construction Contract)](https://rfc.zeromq.org/spec:42/C4/) process for contributions. +- We use the [C4 (Collective Code Construction Contract)](https://rfc.zeromq.org/spec:42/C4/) process for contributions. Please read this if you are unfamiliar with it. diff --git a/scripts/install-contributor-dependencies.sh b/scripts/install-contributor-dependencies.sh new file mode 100755 index 0000000000..62c409fd6c --- /dev/null +++ b/scripts/install-contributor-dependencies.sh @@ -0,0 +1,23 @@ +# Install brew +if ! command -v brew &> /dev/null +then + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +fi + +# Install and setup asdf +if ! command -v asdf &> /dev/null +then + brew install asdf + + if test -f ~/.bashrc; then + echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ~/.bashrc + fi + + if test -f ~/.zshrc; then + echo -e "\n. $(brew --prefix asdf)/asdf.sh" >> ~/.zshrc + fi +fi + +# Install ASDF Plugins +asdf plugin add nodejs +asdf plugin add python \ No newline at end of file From 4193aa7a112c8e7bb3f9311dc7b1a6f6aba2bff2 Mon Sep 17 00:00:00 2001 From: adrinr Date: Thu, 2 Feb 2023 13:45:36 +0000 Subject: [PATCH 07/23] Setup plugins --- .tool-versions | 2 ++ docs/CONTRIBUTING.md | 25 ++++++++++----------- scripts/install-contributor-dependencies.sh | 6 ++++- 3 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000000..8a1af3c071 --- /dev/null +++ b/.tool-versions @@ -0,0 +1,2 @@ +nodejs 14.19.3 +python 3.11.1 \ No newline at end of file diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 544b5550fe..9ee64896e2 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -90,30 +90,29 @@ Component libraries are collections of components as well as the definition of t #### 1. Prerequisites -##### 1.1 NodeJs and python - - NodeJS version `14.x.x` - Python version `3.x` -##### 1.1.1 Using asdf (recommended) +#### 1.1 Using asdf (recommended) Asdf is a package manager that allows managing multiple dependencies. -If can be installed either: -1. Run script (recommended): `./scripts/install-contributor-dependencies.sh` -2. Or, manual installation steps: https://asdf-vm.com/guide/getting-started.html +1. Install using script (recommended): + +`./scripts/install-contributor-dependencies.sh` + +2. Manually + + - Installation steps: https://asdf-vm.com/guide/getting-started.html - asdf plugin add nodejs - asdf plugin add python + - npm install -g yarn -##### 1.1.2 Using NVM +#### 1.2 Using NVM -https://github.com/nvm-sh/nvm#installing-and-updating +- https://github.com/nvm-sh/nvm#installing-and-updating ---- - -#### 1.2 Install yarn - -_yarn -_ `npm install -g yarn` +- _yarn -_ `npm install -g yarn` #### 2. Clone this repository diff --git a/scripts/install-contributor-dependencies.sh b/scripts/install-contributor-dependencies.sh index 62c409fd6c..6900298925 100755 --- a/scripts/install-contributor-dependencies.sh +++ b/scripts/install-contributor-dependencies.sh @@ -20,4 +20,8 @@ fi # Install ASDF Plugins asdf plugin add nodejs -asdf plugin add python \ No newline at end of file +asdf plugin add python + +asdf install + +npm install -g yarn \ No newline at end of file From 0c38825e2dcd989f160ebd1cda6c966940afb383 Mon Sep 17 00:00:00 2001 From: adrinr Date: Thu, 2 Feb 2023 14:12:40 +0000 Subject: [PATCH 08/23] Add pyenv docs --- docs/CONTRIBUTING.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 9ee64896e2..9aa45462ef 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -108,9 +108,10 @@ Asdf is a package manager that allows managing multiple dependencies. - asdf plugin add python - npm install -g yarn -#### 1.2 Using NVM +#### 1.2 Using NVM and pyenv -- https://github.com/nvm-sh/nvm#installing-and-updating +- NVM: https://github.com/nvm-sh/nvm#installing-and-updating +- Pyenv: https://github.com/pyenv/pyenv#installation - _yarn -_ `npm install -g yarn` From f2a819d45b3a05b8d150203ee0f7494abb787ec5 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 2 Feb 2023 14:14:06 +0000 Subject: [PATCH 09/23] Adding many to many arrow to make reading relationships easier. --- .../TableIntegrationMenu/PlusConfigForm.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte b/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte index b510cc0967..ab5b3ccee0 100644 --- a/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte +++ b/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte @@ -82,7 +82,7 @@ let displayString if (throughTableName) { - displayString = `${fromTableName} through ${throughTableName} → ${toTableName}` + displayString = `${fromTableName} ↔ ${toTableName}` } else { displayString = `${fromTableName} → ${toTableName}` } From 382920938d2033ec940ebfa428cbd188b0e82809 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 2 Feb 2023 16:19:50 +0000 Subject: [PATCH 10/23] PR comments. --- .../Datasources/CreateEditRelationship.svelte | 77 +++++++++---------- .../backend/Datasources/relationshipErrors.js | 4 +- 2 files changed, 40 insertions(+), 41 deletions(-) diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index 57ac41a093..64a6057a7c 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -120,14 +120,12 @@ } function getErrorCount(errors) { - return Object.entries(errors) - .filter(entry => !!entry[1]) - .map(entry => entry[0]).length + return Object.entries(errors).filter(entry => !!entry[1]).length } function allRequiredAttributesSet() { const base = fromTable && toTable && fromColumn && toColumn - if (isManyToOne) { + if (relationshipType === RelationshipTypes.MANY_TO_ONE) { return base && fromPrimary && fromForeign } else { return base && throughTable && throughFromKey && throughToKey @@ -140,39 +138,37 @@ } hasValidated = true errorChecker.setType(relationshipType) - const errObj = {} - errObj.relationshipType = errorChecker.relationshipTypeSet(relationshipType) - errObj.fromTable = errorChecker.tableSet(fromTable) - errObj.toTable = errorChecker.tableSet(toTable) - errObj.throughTable = errorChecker.throughTableSet(throughTable) - errObj.throughFromKey = errorChecker.manyForeignKeySet(throughFromKey) - errObj.throughToKey = errorChecker.manyForeignKeySet(throughToKey) - errObj.throughTable = errorChecker.throughIsNullable() - errObj.fromForeign = errorChecker.foreignKeySet(fromForeign) - errObj.fromPrimary = errorChecker.primaryKeySet(fromPrimary) - errObj.fromTable = errorChecker.doesRelationshipExists() - errObj.toTable = errorChecker.doesRelationshipExists() - // currently don't support relationships back onto the table itself, needs to relate out - errObj.fromTable = errorChecker.differentTables(fromId, toId, throughId) - errObj.toTable = errorChecker.differentTables(toId, fromId, throughId) - errObj.throughTable = errorChecker.differentTables(throughId, fromId, toId) - errObj.fromColumn = errorChecker.columnBeingUsed( - toTable, - fromColumn, - originalFromColumnName - ) - errObj.toColumn = errorChecker.columnBeingUsed( - fromTable, - toColumn, - originalToColumnName - ) - errObj.fromForeign = errorChecker.typeMismatch( - fromTable, - toTable, - fromPrimary, - fromForeign - ) - errors = errObj + errors = { + relationshipType: errorChecker.relationshipTypeSet(relationshipType), + fromTable: + errorChecker.tableSet(fromTable) || + errorChecker.doesRelationshipExists() || + errorChecker.differentTables(fromId, toId, throughId), + toTable: + errorChecker.tableSet(toTable) || + errorChecker.doesRelationshipExists() || + errorChecker.differentTables(toId, fromId, throughId), + throughTable: + errorChecker.throughTableSet(throughTable) || + errorChecker.throughIsNullable() || + errorChecker.differentTables(throughId, fromId, toId), + throughFromKey: errorChecker.manyForeignKeySet(throughFromKey), + throughToKey: errorChecker.manyForeignKeySet(throughToKey), + fromForeign: + errorChecker.foreignKeySet(fromForeign) || + errorChecker.typeMismatch(fromTable, toTable, fromPrimary, fromForeign), + fromPrimary: errorChecker.primaryKeySet(fromPrimary), + fromColumn: errorChecker.columnBeingUsed( + toTable, + fromColumn, + originalFromColumnName + ), + toColumn: errorChecker.columnBeingUsed( + fromTable, + toColumn, + originalToColumnName + ), + } return getErrorCount(errors) === 0 } @@ -285,7 +281,7 @@ } function changed(fn) { - if (fn && typeof fn === "function") { + if (typeof fn === "function") { fn() } validate() @@ -325,7 +321,10 @@ options={relationshipTypes} bind:value={relationshipType} bind:error={errors.relationshipType} - on:change={changed} + on:change={() => + changed(() => { + hasValidated = false + })} />
Tables diff --git a/packages/builder/src/components/backend/Datasources/relationshipErrors.js b/packages/builder/src/components/backend/Datasources/relationshipErrors.js index cdb7805506..55353f7423 100644 --- a/packages/builder/src/components/backend/Datasources/relationshipErrors.js +++ b/packages/builder/src/components/backend/Datasources/relationshipErrors.js @@ -1,7 +1,7 @@ import { RelationshipTypes } from "constants/backend" const typeMismatch = "Column type of the foreign key must match the primary key" -const columnCantExist = "Column name cannot be an existing column" +const columnBeingUsed = "Column name cannot be an existing column" const mustBeDifferentTables = "From/to/through tables must be different" const primaryKeyNotSet = "Please pick the primary key" const throughNotNullable = @@ -75,7 +75,7 @@ export class RelationshipErrorChecker { } columnBeingUsed(table, column, ogName) { - return isColumnNameBeingUsed(table, column, ogName) ? columnCantExist : null + return isColumnNameBeingUsed(table, column, ogName) ? columnBeingUsed : null } typeMismatch(fromTable, toTable, primary, foreign) { From 6fd0188761e1c6ebf4819098e03abf2dd2fbd192 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 2 Feb 2023 16:59:12 +0000 Subject: [PATCH 11/23] Updating reactivity to fix issues with occasionally incorrect errors. --- .../Datasources/CreateEditRelationship.svelte | 72 ++++++++++--------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index 64a6057a7c..419b6400ef 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -47,13 +47,7 @@ relationshipExists ) let errors = {} - let fromPrimary, - fromForeign, - fromTable, - toTable, - throughTable, - fromColumn, - toColumn + let fromPrimary, fromForeign, fromColumn, toColumn let fromId = selectedFromTable?._id, toId, throughId, @@ -69,11 +63,20 @@ $: valid = getErrorCount(errors) === 0 && allRequiredAttributesSet() $: isManyToMany = relationshipType === RelationshipTypes.MANY_TO_MANY $: isManyToOne = relationshipType === RelationshipTypes.MANY_TO_ONE - $: fromTable = plusTables.find(table => table._id === fromId) - $: toTable = plusTables.find(table => table._id === toId) - $: throughTable = plusTables.find(table => table._id === throughId) $: toRelationship.relationshipType = fromRelationship?.relationshipType + function getFromTable() { + return plusTables.find(table => table._id === fromId) + } + + function getToTable() { + return plusTables.find(table => table._id === toId) + } + + function getThroughTable() { + return plusTables.find(table => table._id === throughId) + } + function invalidThroughTable() { // need to know the foreign key columns to check error if (!throughId || !throughToKey || !throughFromKey) { @@ -94,16 +97,16 @@ if ( originalFromTable && originalToTable && - originalFromTable === fromTable && - originalToTable === toTable + originalFromTable === getFromTable() && + originalToTable === getToTable() ) { return false } let fromThroughLinks = Object.values( - datasource.entities[fromTable.name].schema + datasource.entities[getFromTable().name].schema ).filter(value => value.through) let toThroughLinks = Object.values( - datasource.entities[toTable.name].schema + datasource.entities[getToTable().name].schema ).filter(value => value.through) const matchAgainstUserInput = (fromTableId, toTableId) => @@ -124,11 +127,11 @@ } function allRequiredAttributesSet() { - const base = fromTable && toTable && fromColumn && toColumn + const base = getFromTable() && getToTable() && fromColumn && toColumn if (relationshipType === RelationshipTypes.MANY_TO_ONE) { return base && fromPrimary && fromForeign } else { - return base && throughTable && throughFromKey && throughToKey + return base && getThroughTable() && throughFromKey && throughToKey } } @@ -138,6 +141,9 @@ } hasValidated = true errorChecker.setType(relationshipType) + const fromTable = getFromTable(), + toTable = getToTable(), + throughTable = getThroughTable() errors = { relationshipType: errorChecker.relationshipTypeSet(relationshipType), fromTable: @@ -210,13 +216,13 @@ if (manyToMany) { relateFrom = { ...relateFrom, - through: throughTable._id, - fieldName: toTable.primary[0], + through: getThroughTable()._id, + fieldName: getToTable().primary[0], } relateTo = { ...relateTo, - through: throughTable._id, - fieldName: fromTable.primary[0], + through: getThroughTable()._id, + fieldName: getFromTable().primary[0], throughFrom: relateFrom.throughTo, throughTo: relateFrom.throughFrom, } @@ -265,10 +271,10 @@ removeExistingRelationship() // source of relationship - datasource.entities[fromTable.name].schema[fromRelationship.name] = + datasource.entities[getFromTable().name].schema[fromRelationship.name] = fromRelationship // save other side of relationship in the other schema - datasource.entities[toTable.name].schema[toRelationship.name] = + datasource.entities[getToTable().name].schema[toRelationship.name] = toRelationship await save() @@ -343,10 +349,10 @@ })} /> {/if} - {#if isManyToOne && fromTable} + {#if isManyToOne && fromId} @@ -390,8 +396,8 @@ })} /> Date: Thu, 2 Feb 2023 17:25:02 +0000 Subject: [PATCH 12/23] Some final fixes based on comments, adding foreign key type checking for through tables. --- .../Datasources/CreateEditRelationship.svelte | 76 ++++++++++--------- .../backend/Datasources/relationshipErrors.js | 24 ++++-- 2 files changed, 60 insertions(+), 40 deletions(-) diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index 419b6400ef..854e35d6dc 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -65,16 +65,8 @@ $: isManyToOne = relationshipType === RelationshipTypes.MANY_TO_ONE $: toRelationship.relationshipType = fromRelationship?.relationshipType - function getFromTable() { - return plusTables.find(table => table._id === fromId) - } - - function getToTable() { - return plusTables.find(table => table._id === toId) - } - - function getThroughTable() { - return plusTables.find(table => table._id === throughId) + function getTable(id) { + return plusTables.find(table => table._id === id) } function invalidThroughTable() { @@ -97,16 +89,16 @@ if ( originalFromTable && originalToTable && - originalFromTable === getFromTable() && - originalToTable === getToTable() + originalFromTable === getTable(fromId) && + originalToTable === getTable(toId) ) { return false } let fromThroughLinks = Object.values( - datasource.entities[getFromTable().name].schema + datasource.entities[getTable(fromId).name].schema ).filter(value => value.through) let toThroughLinks = Object.values( - datasource.entities[getToTable().name].schema + datasource.entities[getTable(toId).name].schema ).filter(value => value.through) const matchAgainstUserInput = (fromTableId, toTableId) => @@ -127,11 +119,11 @@ } function allRequiredAttributesSet() { - const base = getFromTable() && getToTable() && fromColumn && toColumn + const base = getTable(fromId) && getTable(toId) && fromColumn && toColumn if (relationshipType === RelationshipTypes.MANY_TO_ONE) { return base && fromPrimary && fromForeign } else { - return base && getThroughTable() && throughFromKey && throughToKey + return base && getTable(throughId) && throughFromKey && throughToKey } } @@ -141,9 +133,9 @@ } hasValidated = true errorChecker.setType(relationshipType) - const fromTable = getFromTable(), - toTable = getToTable(), - throughTable = getThroughTable() + const fromTable = getTable(fromId), + toTable = getTable(toId), + throughTable = getTable(throughId) errors = { relationshipType: errorChecker.relationshipTypeSet(relationshipType), fromTable: @@ -158,8 +150,22 @@ errorChecker.throughTableSet(throughTable) || errorChecker.throughIsNullable() || errorChecker.differentTables(throughId, fromId, toId), - throughFromKey: errorChecker.manyForeignKeySet(throughFromKey), - throughToKey: errorChecker.manyForeignKeySet(throughToKey), + throughFromKey: + errorChecker.manyForeignKeySet(throughFromKey) || + errorChecker.manyTypeMismatch( + fromTable, + throughTable, + fromTable.primary[0], + throughFromKey + ), + throughToKey: + errorChecker.manyForeignKeySet(throughToKey) || + errorChecker.manyTypeMismatch( + toTable, + throughTable, + toTable.primary[0], + throughToKey + ), fromForeign: errorChecker.foreignKeySet(fromForeign) || errorChecker.typeMismatch(fromTable, toTable, fromPrimary, fromForeign), @@ -216,13 +222,13 @@ if (manyToMany) { relateFrom = { ...relateFrom, - through: getThroughTable()._id, - fieldName: getToTable().primary[0], + through: getTable(throughId)._id, + fieldName: getTable(toId).primary[0], } relateTo = { ...relateTo, - through: getThroughTable()._id, - fieldName: getFromTable().primary[0], + through: getTable(throughId)._id, + fieldName: getTable(fromId).primary[0], throughFrom: relateFrom.throughTo, throughTo: relateFrom.throughFrom, } @@ -271,10 +277,10 @@ removeExistingRelationship() // source of relationship - datasource.entities[getFromTable().name].schema[fromRelationship.name] = + datasource.entities[getTable(fromId).name].schema[fromRelationship.name] = fromRelationship // save other side of relationship in the other schema - datasource.entities[getToTable().name].schema[toRelationship.name] = + datasource.entities[getTable(toId).name].schema[toRelationship.name] = toRelationship await save() @@ -351,8 +357,8 @@ {/if} {#if isManyToOne && fromId} @@ -396,8 +402,8 @@ })} /> Date: Thu, 2 Feb 2023 17:37:41 +0000 Subject: [PATCH 13/23] Final fix - making sure relationships can be built from table UI. --- .../backend/Datasources/CreateEditRelationship.svelte | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index 854e35d6dc..4a3c4f6c60 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -48,11 +48,7 @@ ) let errors = {} let fromPrimary, fromForeign, fromColumn, toColumn - let fromId = selectedFromTable?._id, - toId, - throughId, - throughToKey, - throughFromKey + let fromId, toId, throughId, throughToKey, throughFromKey let isManyToMany, isManyToOne, relationshipType let hasValidated = false @@ -316,6 +312,7 @@ relationshipType = fromRelationship.relationshipType || RelationshipTypes.MANY_TO_ONE if (selectedFromTable) { + fromId = selectedFromTable._id fromColumn = selectedFromTable.name fromPrimary = selectedFromTable?.primary[0] || null } From 95f46e641a55ebb39485335ef40d30dd80237984 Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 2 Feb 2023 17:58:35 +0000 Subject: [PATCH 14/23] Removed extra forward slash in qr reader field type. --- .../design/settings/controls/FormFieldSelect.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte b/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte index a02ea41099..5f364277ed 100644 --- a/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte +++ b/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte @@ -25,16 +25,21 @@ const getOptions = (schema, type) => { let entries = Object.entries(schema ?? {}) let types = [] - if (type === "field/options" || type === "field/barcode/qr") { + if (type === "field/options") { // allow options to be used on both options and string fields types = [type, "field/string"] } else { types = [type] } - types = types.map(type => type.slice(type.indexOf("/") + 1)) + types = types.map(type => { + let fieldTypeRaw = type.slice(type.indexOf("/") + 1) + let fieldTypeParsed = fieldTypeRaw.replace("/", "") + return fieldTypeParsed + }) entries = entries.filter(entry => types.includes(entry[1].type)) + return entries.map(entry => entry[0]) } From 0d3293b42c717262e7d3b8cb6eb7f4a5155441e8 Mon Sep 17 00:00:00 2001 From: Dean Date: Fri, 3 Feb 2023 10:22:36 +0000 Subject: [PATCH 15/23] Feedback updates. Backed out parsing and simply renamed the field config property --- .../src/components/design/settings/componentSettings.js | 2 +- .../design/settings/controls/FormFieldSelect.svelte | 6 +----- packages/client/manifest.json | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/builder/src/components/design/settings/componentSettings.js b/packages/builder/src/components/design/settings/componentSettings.js index f9f4295c17..65a21f368d 100644 --- a/packages/builder/src/components/design/settings/componentSettings.js +++ b/packages/builder/src/components/design/settings/componentSettings.js @@ -56,7 +56,7 @@ const componentMap = { "field/link": FormFieldSelect, "field/array": FormFieldSelect, "field/json": FormFieldSelect, - "field/barcode/qr": FormFieldSelect, + "field/barcodeqr": FormFieldSelect, // Some validation types are the same as others, so not all types are // explicitly listed here. e.g. options uses string validation "validation/string": ValidationEditor, diff --git a/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte b/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte index 5f364277ed..806abc4e92 100644 --- a/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte +++ b/packages/builder/src/components/design/settings/controls/FormFieldSelect.svelte @@ -32,11 +32,7 @@ types = [type] } - types = types.map(type => { - let fieldTypeRaw = type.slice(type.indexOf("/") + 1) - let fieldTypeParsed = fieldTypeRaw.replace("/", "") - return fieldTypeParsed - }) + types = types.map(type => type.slice(type.indexOf("/") + 1)) entries = entries.filter(entry => types.includes(entry[1].type)) diff --git a/packages/client/manifest.json b/packages/client/manifest.json index d1898a82c1..e24fa3a68a 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -3241,7 +3241,7 @@ }, "settings": [ { - "type": "field/barcode/qr", + "type": "field/barcodeqr", "label": "Field", "key": "field", "required": true From 96373609d5dc65283668d8bd57d796540cdf65b8 Mon Sep 17 00:00:00 2001 From: adrinr Date: Fri, 3 Feb 2023 11:06:31 +0000 Subject: [PATCH 16/23] Change install script to support only mac explicitly --- scripts/install-contributor-dependencies.sh | 46 +++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/scripts/install-contributor-dependencies.sh b/scripts/install-contributor-dependencies.sh index 6900298925..923dedd804 100755 --- a/scripts/install-contributor-dependencies.sh +++ b/scripts/install-contributor-dependencies.sh @@ -1,3 +1,49 @@ +function getDistro { + if [ -f /etc/os-release ]; then + # freedesktop.org and systemd + . /etc/os-release + OS=$NAME + VER=$VERSION_ID +elif type lsb_release >/dev/null 2>&1; then + # linuxbase.org + OS=$(lsb_release -si) + VER=$(lsb_release -sr) +elif [ -f /etc/lsb-release ]; then + # For some versions of Debian/Ubuntu without lsb_release command + . /etc/lsb-release + OS=$DISTRIB_ID + VER=$DISTRIB_RELEASE +elif [ -f /etc/debian_version ]; then + # Older Debian/Ubuntu/etc. + OS=Debian + VER=$(cat /etc/debian_version) +elif [ -f /etc/SuSe-release ]; then + # Older SuSE/etc. + : +elif [ -f /etc/redhat-release ]; then + # Older Red Hat, CentOS, etc. + VER=$( cat /etc/redhat-release | cut -d" " -f3 | cut -d "." -f1) + d=$( cat /etc/redhat-release | cut -d" " -f1 | cut -d "." -f1) + if [[ $d == "CentOS" ]]; then + OS="CentOS Linux" + fi +else + # Fall back to uname, e.g. "Linux ", also works for BSD, etc. + OS=$(uname -s) + VER=$(uname -r) +fi +} + +getDistro + +if [[ $OS == "Darwin" ]]; +then + echo "This script is not setup for your machine type:" $OS + echo "Please use the manual steps described in https://github.com/Budibase/budibase/blob/develop/docs/CONTRIBUTING.md#getting-started-for-contributors" + exit 1 +fi + + # Install brew if ! command -v brew &> /dev/null then From 12749be3d7b25250659fa70bab3673bbcb58c627 Mon Sep 17 00:00:00 2001 From: adrinr Date: Fri, 3 Feb 2023 11:12:30 +0000 Subject: [PATCH 17/23] Update docs --- docs/CONTRIBUTING.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 9aa45462ef..46a46af95d 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -93,22 +93,24 @@ Component libraries are collections of components as well as the definition of t - NodeJS version `14.x.x` - Python version `3.x` -#### 1.1 Using asdf (recommended) +### Using asdf (recommended) Asdf is a package manager that allows managing multiple dependencies. -1. Install using script (recommended): +You can install them following any of the steps described below: + +- Install using script (only for mac users): `./scripts/install-contributor-dependencies.sh` -2. Manually +- Or, manually: - - Installation steps: https://asdf-vm.com/guide/getting-started.html - - asdf plugin add nodejs - - asdf plugin add python - - npm install -g yarn + - Installation steps: https://asdf-vm.com/guide/getting-started.html + - asdf plugin add nodejs + - asdf plugin add python + - npm install -g yarn -#### 1.2 Using NVM and pyenv +### Using NVM and pyenv - NVM: https://github.com/nvm-sh/nvm#installing-and-updating - Pyenv: https://github.com/pyenv/pyenv#installation From d61b2d79e7fe84ab55c696f22a9e68744445bef0 Mon Sep 17 00:00:00 2001 From: adrinr Date: Fri, 3 Feb 2023 11:20:25 +0000 Subject: [PATCH 18/23] Add nvm and pyenv files --- .nvmrc | 1 + .python-version | 1 + 2 files changed, 2 insertions(+) create mode 100644 .nvmrc create mode 100644 .python-version diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..e0bcfe01fb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v14.19.3 diff --git a/.python-version b/.python-version new file mode 100644 index 0000000000..371cfe355d --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11.1 From 021fdb3de318efa4c03e13ab6d89efcf46cd40d8 Mon Sep 17 00:00:00 2001 From: adrinr Date: Fri, 3 Feb 2023 11:21:15 +0000 Subject: [PATCH 19/23] Update docs --- docs/CONTRIBUTING.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 46a46af95d..6e667d23a8 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -112,8 +112,13 @@ You can install them following any of the steps described below: ### Using NVM and pyenv -- NVM: https://github.com/nvm-sh/nvm#installing-and-updating -- Pyenv: https://github.com/pyenv/pyenv#installation +- NVM: + - Install: https://github.com/nvm-sh/nvm#installing-and-updating + - Setup: `nvm use` +- Pyenv: + + - Install: https://github.com/pyenv/pyenv#installation + - Setup: `pyenv install -v 3.7.2` - _yarn -_ `npm install -g yarn` From 140b8f7f64a1e284df1b9cb30b0e8e5763c22929 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 3 Feb 2023 11:22:23 +0000 Subject: [PATCH 20/23] v2.2.12-alpha.69 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/sdk/package.json | 2 +- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 12 files changed, 32 insertions(+), 32 deletions(-) diff --git a/lerna.json b/lerna.json index 30afd475d4..e8008e95b8 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index b624ff9f10..3bcbc7f095 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -23,7 +23,7 @@ }, "dependencies": { "@budibase/nano": "10.1.1", - "@budibase/types": "2.2.12-alpha.68", + "@budibase/types": "2.2.12-alpha.69", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 2864a8ad1e..747ec8ecfc 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/string-templates": "2.2.12-alpha.68", + "@budibase/string-templates": "2.2.12-alpha.69", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index 3164654702..cc33c7f29f 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,10 +58,10 @@ } }, "dependencies": { - "@budibase/bbui": "2.2.12-alpha.68", - "@budibase/client": "2.2.12-alpha.68", - "@budibase/frontend-core": "2.2.12-alpha.68", - "@budibase/string-templates": "2.2.12-alpha.68", + "@budibase/bbui": "2.2.12-alpha.69", + "@budibase/client": "2.2.12-alpha.69", + "@budibase/frontend-core": "2.2.12-alpha.69", + "@budibase/string-templates": "2.2.12-alpha.69", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 4aa0d5fab7..f10587e644 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.2.12-alpha.68", - "@budibase/string-templates": "2.2.12-alpha.68", - "@budibase/types": "2.2.12-alpha.68", + "@budibase/backend-core": "2.2.12-alpha.69", + "@budibase/string-templates": "2.2.12-alpha.69", + "@budibase/types": "2.2.12-alpha.69", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 423fa18357..1ceeb724e9 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.2.12-alpha.68", - "@budibase/frontend-core": "2.2.12-alpha.68", - "@budibase/string-templates": "2.2.12-alpha.68", + "@budibase/bbui": "2.2.12-alpha.69", + "@budibase/frontend-core": "2.2.12-alpha.69", + "@budibase/string-templates": "2.2.12-alpha.69", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index be62fae760..ac9248a3d4 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.2.12-alpha.68", + "@budibase/bbui": "2.2.12-alpha.69", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 6b015d6ea2..8d7a6ffef4 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index 43feb4cad5..183127fc96 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -43,11 +43,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.2.12-alpha.68", - "@budibase/client": "2.2.12-alpha.68", + "@budibase/backend-core": "2.2.12-alpha.69", + "@budibase/client": "2.2.12-alpha.69", "@budibase/pro": "2.2.12-alpha.68", - "@budibase/string-templates": "2.2.12-alpha.68", - "@budibase/types": "2.2.12-alpha.68", + "@budibase/string-templates": "2.2.12-alpha.69", + "@budibase/types": "2.2.12-alpha.69", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index a35efd87c5..cbf17f308b 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 7a89209e80..76c1779ba2 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 9fdd8a30da..7618c19852 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.2.12-alpha.68", + "version": "2.2.12-alpha.69", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.2.12-alpha.68", + "@budibase/backend-core": "2.2.12-alpha.69", "@budibase/pro": "2.2.12-alpha.68", - "@budibase/string-templates": "2.2.12-alpha.68", - "@budibase/types": "2.2.12-alpha.68", + "@budibase/string-templates": "2.2.12-alpha.69", + "@budibase/types": "2.2.12-alpha.69", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 52daca68e92b4883f36b3e2f3f46ceba5e32d1e5 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 3 Feb 2023 11:26:46 +0000 Subject: [PATCH 21/23] Update pro version to 2.2.12-alpha.69 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 183127fc96..b327bdc558 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -45,7 +45,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.2.12-alpha.69", "@budibase/client": "2.2.12-alpha.69", - "@budibase/pro": "2.2.12-alpha.68", + "@budibase/pro": "2.2.12-alpha.69", "@budibase/string-templates": "2.2.12-alpha.69", "@budibase/types": "2.2.12-alpha.69", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 6cea33b7ea..563afd37f1 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1273,13 +1273,13 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.2.12-alpha.68": - version "2.2.12-alpha.68" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.68.tgz#9efda78dfa35d3c431da188b4e3a0011b734c6b2" - integrity sha512-k+Edcvz3XcddlJv9YR+TuoYs7e583lpf9nRCu6WOO889s9e8QS+zzfkC9++Vx8aH16JTizibPDY9oNeRrMQALw== +"@budibase/backend-core@2.2.12-alpha.69": + version "2.2.12-alpha.69" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.69.tgz#bc4b3576e6339a804fd6bc79dab848b8a78c0529" + integrity sha512-AqzhS/tJMaIFLF0fheITgZT+EAFRuusMFHsgQu0vyAEc8758neL5K2blg5W9es+Wp91p4+aQWmLsq8XxDQzeQQ== dependencies: "@budibase/nano" "10.1.1" - "@budibase/types" "2.2.12-alpha.68" + "@budibase/types" "2.2.12-alpha.69" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1374,13 +1374,13 @@ qs "^6.11.0" tough-cookie "^4.1.2" -"@budibase/pro@2.2.12-alpha.68": - version "2.2.12-alpha.68" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.68.tgz#ee992a6451ecaabdb71b5c4d5f9a269710524529" - integrity sha512-jp+gYg03Q39kc9PIEREC/3QikTzW9mavGrpnWQNcaFyELwmmRbI5tDZkxRmK38TNuW/1ArqKricd9uCVRb3UGA== +"@budibase/pro@2.2.12-alpha.69": + version "2.2.12-alpha.69" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.69.tgz#c078360cbafa1761edeed98c740b16ee0b7a7977" + integrity sha512-eojR843vRn2YHo1V4R/5/LqLvWTofua73m9+GAfPwKBC79jryUm0ZXCe8UvyX41Nxn2u8l2JzqQ/8ZZWBA6zag== dependencies: - "@budibase/backend-core" "2.2.12-alpha.68" - "@budibase/types" "2.2.12-alpha.68" + "@budibase/backend-core" "2.2.12-alpha.69" + "@budibase/types" "2.2.12-alpha.69" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1406,10 +1406,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@2.2.12-alpha.68": - version "2.2.12-alpha.68" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.68.tgz#6284f083aceca49a8de52ebc15c9da8c8416586e" - integrity sha512-xNl/L6M8X+qcVytBgdPSWNM7CYk7Rr2I+ubx5+3u4Z8tF3IWoqk6pj7hMMCORAYAGK7ZdjG7xx+tvXiKK8v1NQ== +"@budibase/types@2.2.12-alpha.69": + version "2.2.12-alpha.69" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.69.tgz#3191f983886fcf2b290b6cc64a48cf21c7459d8b" + integrity sha512-1WtcXrFbii2p+qRzQlT9w4ZQe1HiDVHnVfFGEh4ntVH+LjalZFXxrp0sXsFvL4uEgyBO5AhmI3enOexYSvhtXw== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 7618c19852..2d1fe70761 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.2.12-alpha.69", - "@budibase/pro": "2.2.12-alpha.68", + "@budibase/pro": "2.2.12-alpha.69", "@budibase/string-templates": "2.2.12-alpha.69", "@budibase/types": "2.2.12-alpha.69", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 131d8b409c..1c07ca9726 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -470,13 +470,13 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.2.12-alpha.68": - version "2.2.12-alpha.68" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.68.tgz#9efda78dfa35d3c431da188b4e3a0011b734c6b2" - integrity sha512-k+Edcvz3XcddlJv9YR+TuoYs7e583lpf9nRCu6WOO889s9e8QS+zzfkC9++Vx8aH16JTizibPDY9oNeRrMQALw== +"@budibase/backend-core@2.2.12-alpha.69": + version "2.2.12-alpha.69" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.69.tgz#bc4b3576e6339a804fd6bc79dab848b8a78c0529" + integrity sha512-AqzhS/tJMaIFLF0fheITgZT+EAFRuusMFHsgQu0vyAEc8758neL5K2blg5W9es+Wp91p4+aQWmLsq8XxDQzeQQ== dependencies: "@budibase/nano" "10.1.1" - "@budibase/types" "2.2.12-alpha.68" + "@budibase/types" "2.2.12-alpha.69" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -521,13 +521,13 @@ qs "^6.11.0" tough-cookie "^4.1.2" -"@budibase/pro@2.2.12-alpha.68": - version "2.2.12-alpha.68" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.68.tgz#ee992a6451ecaabdb71b5c4d5f9a269710524529" - integrity sha512-jp+gYg03Q39kc9PIEREC/3QikTzW9mavGrpnWQNcaFyELwmmRbI5tDZkxRmK38TNuW/1ArqKricd9uCVRb3UGA== +"@budibase/pro@2.2.12-alpha.69": + version "2.2.12-alpha.69" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.69.tgz#c078360cbafa1761edeed98c740b16ee0b7a7977" + integrity sha512-eojR843vRn2YHo1V4R/5/LqLvWTofua73m9+GAfPwKBC79jryUm0ZXCe8UvyX41Nxn2u8l2JzqQ/8ZZWBA6zag== dependencies: - "@budibase/backend-core" "2.2.12-alpha.68" - "@budibase/types" "2.2.12-alpha.68" + "@budibase/backend-core" "2.2.12-alpha.69" + "@budibase/types" "2.2.12-alpha.69" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -535,10 +535,10 @@ lru-cache "^7.14.1" node-fetch "^2.6.1" -"@budibase/types@2.2.12-alpha.68": - version "2.2.12-alpha.68" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.68.tgz#6284f083aceca49a8de52ebc15c9da8c8416586e" - integrity sha512-xNl/L6M8X+qcVytBgdPSWNM7CYk7Rr2I+ubx5+3u4Z8tF3IWoqk6pj7hMMCORAYAGK7ZdjG7xx+tvXiKK8v1NQ== +"@budibase/types@2.2.12-alpha.69": + version "2.2.12-alpha.69" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.69.tgz#3191f983886fcf2b290b6cc64a48cf21c7459d8b" + integrity sha512-1WtcXrFbii2p+qRzQlT9w4ZQe1HiDVHnVfFGEh4ntVH+LjalZFXxrp0sXsFvL4uEgyBO5AhmI3enOexYSvhtXw== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" From cffff143591e5601ee56a9c8ac729b4f9ea6747b Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 3 Feb 2023 13:38:33 +0000 Subject: [PATCH 22/23] v2.2.12-alpha.70 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 8 ++++---- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/sdk/package.json | 2 +- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 12 files changed, 32 insertions(+), 32 deletions(-) diff --git a/lerna.json b/lerna.json index e8008e95b8..ae8f83a74b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 3bcbc7f095..9fbd735a95 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -23,7 +23,7 @@ }, "dependencies": { "@budibase/nano": "10.1.1", - "@budibase/types": "2.2.12-alpha.69", + "@budibase/types": "2.2.12-alpha.70", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-cloudfront-sign": "2.2.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 747ec8ecfc..db800c847b 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "1.2.1", - "@budibase/string-templates": "2.2.12-alpha.69", + "@budibase/string-templates": "2.2.12-alpha.70", "@spectrum-css/accordion": "3.0.24", "@spectrum-css/actionbutton": "1.0.1", "@spectrum-css/actiongroup": "1.0.1", diff --git a/packages/builder/package.json b/packages/builder/package.json index cc33c7f29f..9b0ae17224 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "license": "GPL-3.0", "private": true, "scripts": { @@ -58,10 +58,10 @@ } }, "dependencies": { - "@budibase/bbui": "2.2.12-alpha.69", - "@budibase/client": "2.2.12-alpha.69", - "@budibase/frontend-core": "2.2.12-alpha.69", - "@budibase/string-templates": "2.2.12-alpha.69", + "@budibase/bbui": "2.2.12-alpha.70", + "@budibase/client": "2.2.12-alpha.70", + "@budibase/frontend-core": "2.2.12-alpha.70", + "@budibase/string-templates": "2.2.12-alpha.70", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.2.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f10587e644..1060280589 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "2.2.12-alpha.69", - "@budibase/string-templates": "2.2.12-alpha.69", - "@budibase/types": "2.2.12-alpha.69", + "@budibase/backend-core": "2.2.12-alpha.70", + "@budibase/string-templates": "2.2.12-alpha.70", + "@budibase/types": "2.2.12-alpha.70", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 1ceeb724e9..85a192345e 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "2.2.12-alpha.69", - "@budibase/frontend-core": "2.2.12-alpha.69", - "@budibase/string-templates": "2.2.12-alpha.69", + "@budibase/bbui": "2.2.12-alpha.70", + "@budibase/frontend-core": "2.2.12-alpha.70", + "@budibase/string-templates": "2.2.12-alpha.70", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index ac9248a3d4..5ce042533f 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "2.2.12-alpha.69", + "@budibase/bbui": "2.2.12-alpha.70", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 8d7a6ffef4..4c6b356f3c 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index b327bdc558..031d9bbace 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -43,11 +43,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "2.2.12-alpha.69", - "@budibase/client": "2.2.12-alpha.69", + "@budibase/backend-core": "2.2.12-alpha.70", + "@budibase/client": "2.2.12-alpha.70", "@budibase/pro": "2.2.12-alpha.69", - "@budibase/string-templates": "2.2.12-alpha.69", - "@budibase/types": "2.2.12-alpha.69", + "@budibase/string-templates": "2.2.12-alpha.70", + "@budibase/types": "2.2.12-alpha.70", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index cbf17f308b..5629a78a68 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 76c1779ba2..dc1e5e21b2 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 2d1fe70761..67081d568b 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.2.12-alpha.69", + "version": "2.2.12-alpha.70", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "2.2.12-alpha.69", + "@budibase/backend-core": "2.2.12-alpha.70", "@budibase/pro": "2.2.12-alpha.69", - "@budibase/string-templates": "2.2.12-alpha.69", - "@budibase/types": "2.2.12-alpha.69", + "@budibase/string-templates": "2.2.12-alpha.70", + "@budibase/types": "2.2.12-alpha.70", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From b4c5bfe43c158e892e7a207c40f657d2f7b3dc3f Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 3 Feb 2023 13:42:11 +0000 Subject: [PATCH 23/23] Update pro version to 2.2.12-alpha.70 --- packages/server/package.json | 2 +- packages/server/yarn.lock | 30 +++++++++++++++--------------- packages/worker/package.json | 2 +- packages/worker/yarn.lock | 30 +++++++++++++++--------------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 031d9bbace..8755c170e1 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -45,7 +45,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "2.2.12-alpha.70", "@budibase/client": "2.2.12-alpha.70", - "@budibase/pro": "2.2.12-alpha.69", + "@budibase/pro": "2.2.12-alpha.70", "@budibase/string-templates": "2.2.12-alpha.70", "@budibase/types": "2.2.12-alpha.70", "@bull-board/api": "3.7.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 563afd37f1..aa42db681d 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1273,13 +1273,13 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.2.12-alpha.69": - version "2.2.12-alpha.69" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.69.tgz#bc4b3576e6339a804fd6bc79dab848b8a78c0529" - integrity sha512-AqzhS/tJMaIFLF0fheITgZT+EAFRuusMFHsgQu0vyAEc8758neL5K2blg5W9es+Wp91p4+aQWmLsq8XxDQzeQQ== +"@budibase/backend-core@2.2.12-alpha.70": + version "2.2.12-alpha.70" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.70.tgz#9894e8d676cfa25f8eb163c623eda003a43a2016" + integrity sha512-1nZzkZ6kQyrfL9IvNp09JUrdpCzxtE59CAW26SbXNwId5qEJLSa7zVvZCTNo2K644XNM6qCJzA5LwCwW67AL3A== dependencies: "@budibase/nano" "10.1.1" - "@budibase/types" "2.2.12-alpha.69" + "@budibase/types" "2.2.12-alpha.70" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -1374,13 +1374,13 @@ qs "^6.11.0" tough-cookie "^4.1.2" -"@budibase/pro@2.2.12-alpha.69": - version "2.2.12-alpha.69" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.69.tgz#c078360cbafa1761edeed98c740b16ee0b7a7977" - integrity sha512-eojR843vRn2YHo1V4R/5/LqLvWTofua73m9+GAfPwKBC79jryUm0ZXCe8UvyX41Nxn2u8l2JzqQ/8ZZWBA6zag== +"@budibase/pro@2.2.12-alpha.70": + version "2.2.12-alpha.70" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.70.tgz#067fce5e023817ead1452f21b7abe0ab3585d1d3" + integrity sha512-V3EwQd4r/wztKPzbeLbTHJGWvYUqDELbx0HPTSbI24ee9ZFwF/Wjaapg1I6VHyku1rWgzny4/Y0+H4GvwzzEeg== dependencies: - "@budibase/backend-core" "2.2.12-alpha.69" - "@budibase/types" "2.2.12-alpha.69" + "@budibase/backend-core" "2.2.12-alpha.70" + "@budibase/types" "2.2.12-alpha.70" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1406,10 +1406,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@2.2.12-alpha.69": - version "2.2.12-alpha.69" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.69.tgz#3191f983886fcf2b290b6cc64a48cf21c7459d8b" - integrity sha512-1WtcXrFbii2p+qRzQlT9w4ZQe1HiDVHnVfFGEh4ntVH+LjalZFXxrp0sXsFvL4uEgyBO5AhmI3enOexYSvhtXw== +"@budibase/types@2.2.12-alpha.70": + version "2.2.12-alpha.70" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.70.tgz#c86f43b953d3b15c6f286903ac94091ba9c6cef3" + integrity sha512-+6f3uc6fCviRCeDNoKftcg8iuXksj2F+teCPXVmGNAs+tfwqYjX/32s5DB9EjdE3qHC70XAX+lvTWIrrNchDDA== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/worker/package.json b/packages/worker/package.json index 67081d568b..9a724e0702 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -37,7 +37,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "2.2.12-alpha.70", - "@budibase/pro": "2.2.12-alpha.69", + "@budibase/pro": "2.2.12-alpha.70", "@budibase/string-templates": "2.2.12-alpha.70", "@budibase/types": "2.2.12-alpha.70", "@koa/router": "8.0.8", diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 1c07ca9726..adc6952027 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -470,13 +470,13 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.2.12-alpha.69": - version "2.2.12-alpha.69" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.69.tgz#bc4b3576e6339a804fd6bc79dab848b8a78c0529" - integrity sha512-AqzhS/tJMaIFLF0fheITgZT+EAFRuusMFHsgQu0vyAEc8758neL5K2blg5W9es+Wp91p4+aQWmLsq8XxDQzeQQ== +"@budibase/backend-core@2.2.12-alpha.70": + version "2.2.12-alpha.70" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.70.tgz#9894e8d676cfa25f8eb163c623eda003a43a2016" + integrity sha512-1nZzkZ6kQyrfL9IvNp09JUrdpCzxtE59CAW26SbXNwId5qEJLSa7zVvZCTNo2K644XNM6qCJzA5LwCwW67AL3A== dependencies: "@budibase/nano" "10.1.1" - "@budibase/types" "2.2.12-alpha.69" + "@budibase/types" "2.2.12-alpha.70" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-cloudfront-sign "2.2.0" @@ -521,13 +521,13 @@ qs "^6.11.0" tough-cookie "^4.1.2" -"@budibase/pro@2.2.12-alpha.69": - version "2.2.12-alpha.69" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.69.tgz#c078360cbafa1761edeed98c740b16ee0b7a7977" - integrity sha512-eojR843vRn2YHo1V4R/5/LqLvWTofua73m9+GAfPwKBC79jryUm0ZXCe8UvyX41Nxn2u8l2JzqQ/8ZZWBA6zag== +"@budibase/pro@2.2.12-alpha.70": + version "2.2.12-alpha.70" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.70.tgz#067fce5e023817ead1452f21b7abe0ab3585d1d3" + integrity sha512-V3EwQd4r/wztKPzbeLbTHJGWvYUqDELbx0HPTSbI24ee9ZFwF/Wjaapg1I6VHyku1rWgzny4/Y0+H4GvwzzEeg== dependencies: - "@budibase/backend-core" "2.2.12-alpha.69" - "@budibase/types" "2.2.12-alpha.69" + "@budibase/backend-core" "2.2.12-alpha.70" + "@budibase/types" "2.2.12-alpha.70" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -535,10 +535,10 @@ lru-cache "^7.14.1" node-fetch "^2.6.1" -"@budibase/types@2.2.12-alpha.69": - version "2.2.12-alpha.69" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.69.tgz#3191f983886fcf2b290b6cc64a48cf21c7459d8b" - integrity sha512-1WtcXrFbii2p+qRzQlT9w4ZQe1HiDVHnVfFGEh4ntVH+LjalZFXxrp0sXsFvL4uEgyBO5AhmI3enOexYSvhtXw== +"@budibase/types@2.2.12-alpha.70": + version "2.2.12-alpha.70" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.70.tgz#c86f43b953d3b15c6f286903ac94091ba9c6cef3" + integrity sha512-+6f3uc6fCviRCeDNoKftcg8iuXksj2F+teCPXVmGNAs+tfwqYjX/32s5DB9EjdE3qHC70XAX+lvTWIrrNchDDA== "@cspotcode/source-map-support@^0.8.0": version "0.8.1"