From 87800109262b9d89f540982329ab6d8109d072b3 Mon Sep 17 00:00:00 2001
From: Mitch-Budibase
Date: Mon, 15 Nov 2021 15:25:58 +0000
Subject: [PATCH 0001/1026] New Tests (User Roles, Query Level Transformers,
Data Sources etc.)
New tests:
-Query Level Transformers
-Table pagination
-User Roles
-Data Sources (correct config, incorrect config, Wizard)
Also:
-New Commands to support
Testing
-Cypress Updated
---
.../cypress/integration/createTable.spec.js | 31 +-
.../cypress/integration/createUser.spec.js | 10 -
.../integration/createUserAndRoles.spec.js | 125 ++
.../customThemingProperties.spec.js | 1 -
...addAndConfigureExternalDataSources.spec.js | 50 +
.../datasources/datasourceWizard.spec.js | 39 +
.../incorrectExternalDatasourceConfig.spec.js | 29 +
.../queryLevelTransformers.spec.js | 124 ++
packages/builder/cypress/support/commands.js | 182 ++-
packages/builder/package.json | 2 +-
packages/builder/yarn.lock | 1370 ++++++++++++-----
11 files changed, 1534 insertions(+), 429 deletions(-)
delete mode 100644 packages/builder/cypress/integration/createUser.spec.js
create mode 100644 packages/builder/cypress/integration/createUserAndRoles.spec.js
create mode 100644 packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js
create mode 100644 packages/builder/cypress/integration/datasources/datasourceWizard.spec.js
create mode 100644 packages/builder/cypress/integration/datasources/incorrectExternalDatasourceConfig.spec.js
create mode 100644 packages/builder/cypress/integration/queryLevelTransformers.spec.js
diff --git a/packages/builder/cypress/integration/createTable.spec.js b/packages/builder/cypress/integration/createTable.spec.js
index 96a1bd75aa..93428caf0c 100644
--- a/packages/builder/cypress/integration/createTable.spec.js
+++ b/packages/builder/cypress/integration/createTable.spec.js
@@ -30,7 +30,6 @@ context("Create a Table", () => {
cy.contains("Save Column").click()
cy.contains("nameupdated ").should("contain", "nameupdated")
})
-
it("edits a row", () => {
cy.contains("button", "Edit").click({ force: true })
@@ -47,6 +46,36 @@ context("Create a Table", () => {
cy.get(".spectrum-Modal").contains("Delete").click()
cy.contains("RoverUpdated").should("not.exist")
})
+
+ it("Adds 15 rows and checks pagination", () => {
+ // 10 rows per page, 15 rows should create 2 pages within table
+ const totalRows = 16
+ for (let i = 1; i < totalRows; i++){
+ cy.addRow([i])
+ }
+ cy.wait(1000)
+ cy.get(".spectrum-Pagination").within(() => {
+ cy.get(".spectrum-ActionButton").eq(1).click()
+ })
+ cy.get(".spectrum-Pagination").within(() => {
+ cy.get(".spectrum-Body--secondary").contains("Page 2")
+ })
+ })
+
+ it("Deletes rows and checks pagination", () => {
+ // Delete rows, removing second page of rows from table
+ const deleteRows = 5
+ cy.get(".spectrum-Checkbox-input").check({ force: true })
+ cy.get(".spectrum-Table-body")
+ cy.contains("Delete 5 row(s)").click()
+ cy.get(".spectrum-Modal").contains("Delete").click()
+ cy.wait(1000)
+
+ // Confirm table only has one page
+ cy.get(".spectrum-Pagination").within(() => {
+ cy.get(".spectrum-ActionButton").eq(1).should('not.be.enabled')
+ })
+ })
it("deletes a column", () => {
cy.get(".title").click()
diff --git a/packages/builder/cypress/integration/createUser.spec.js b/packages/builder/cypress/integration/createUser.spec.js
deleted file mode 100644
index 18ae8a16a0..0000000000
--- a/packages/builder/cypress/integration/createUser.spec.js
+++ /dev/null
@@ -1,10 +0,0 @@
-context("Create a User", () => {
- before(() => {
- cy.login()
- })
-
- it("should create a user", () => {
- cy.createUser("bbuser@test.com")
- cy.contains("bbuser").should("be.visible")
- })
-})
diff --git a/packages/builder/cypress/integration/createUserAndRoles.spec.js b/packages/builder/cypress/integration/createUserAndRoles.spec.js
new file mode 100644
index 0000000000..55dbbb3c4d
--- /dev/null
+++ b/packages/builder/cypress/integration/createUserAndRoles.spec.js
@@ -0,0 +1,125 @@
+context("Create a User and Assign Roles", () => {
+ before(() => {
+ cy.login()
+ })
+
+ it("should create a user", () => {
+ cy.createUser("bbuser@test.com")
+ cy.contains("bbuser").should("be.visible")
+ })
+
+ it("should confirm there is No Access for a New User", () => {
+ // Click into the user
+ cy.contains("bbuser").click()
+ // Get No Access table - Confirm it has apps in it
+ cy.get(".spectrum-Table").eq(1).should('not.contain', 'No rows found')
+ // Get Configure Roles table - Confirm it has no apps
+ cy.get(".spectrum-Table").eq(0).contains('No rows found')
+ })
+
+ it("should assign role types", () => {
+ // 3 apps minimum required - to assign an app to each role type
+ cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ .its("body")
+ .then(val => {
+ if (val.length < 3) {
+ for (let i = 1; i < 3; i++) {
+ const uuid = () => Cypress._.random(0, 1e6)
+ const name = uuid()
+ cy.createApp(name)
+ }
+ }
+ })
+ // Navigate back to the user
+ cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.wait(1000)
+ cy.get(".spectrum-SideNav").contains("Users").click()
+ cy.get(".spectrum-Table").contains("bbuser").click()
+ cy.wait(500)
+ for (let i = 0; i < 3; i++) {
+ cy.get(".spectrum-Table-body").eq(1).find('tr').eq(0).click()
+ cy.get(".spectrum-Dialog-grid").contains("Choose an option").click().then(() => {
+ cy.wait(500)
+ if (i == 0) {
+ cy.get(".spectrum-Popover").contains("Admin").click()
+ }
+ if (i == 1) {
+ cy.get(".spectrum-Popover").contains("Power").click()
+ }
+ if (i == 2) {
+ cy.get(".spectrum-Popover").contains("Basic").click()
+ }
+ cy.wait(500)
+ cy.get(".spectrum-Button").contains("Update role").click({ force: true })
+ })
+ }
+ // Confirm roles exist within Configure roles table
+ cy.get(".spectrum-Table-body").eq(0).within((assginedRoles) => {
+ expect(assginedRoles).to.contain("Admin")
+ expect(assginedRoles).to.contain("Power")
+ expect(assginedRoles).to.contain("Basic")
+ })
+ })
+
+ it("should unassign role types", () => {
+ // Set each app within Configure roles table to 'No Access'
+ cy.get(".spectrum-Table-body").eq(0).find('tr').its('length').then((len) => {
+ for (let i = 0; i < len; i ++){
+ cy.get(".spectrum-Table-body").eq(0).find('tr').eq(0).click().then(() => {
+ cy.get(".spectrum-Form-item").contains("Role").parent().within(() => {
+ cy.get(".spectrum-Picker").click({ force: true })
+ cy.wait(500)
+ cy.get(".spectrum-Popover").contains("No Access").click()
+ })
+ cy.get(".spectrum-Button").contains("Update role").click({ force: true })
+ cy.wait(1000)
+ })
+ }
+ })
+ // Confirm Configure roles table no longer has any apps in it
+ cy.get(".spectrum-Table-body").eq(0).contains('No rows found')
+ })
+
+ it("should enable Developer access", () => {
+ // Enable Developer access
+ cy.get(".field").eq(4).within(() => {
+ cy.get(".spectrum-Form-item").click()
+ })
+ // No Access table should now be empty
+ cy.get(".container").contains("No Access").parent().within(() => {
+ cy.get(".spectrum-Table").contains("No rows found")
+
+ // Each app within Configure roles should have Admin access
+ cy.get(".spectrum-Table-body").eq(0).find('tr').its('length').then((len) => {
+ for (let i = 0; i < len; i++) {
+ cy.get(".spectrum-Table-body").eq(0).find('tr').eq(i).contains("Admin")
+ cy.wait(500)
+ }
+ })
+ })
+})
+
+ it("should disable Developer access", () => {
+ // Disable Developer access
+ cy.get(".field").eq(4).within(() => {
+ cy.get(".spectrum-Form-item").click()
+ })
+ // Configure roles table should now be empty
+ cy.get(".container").contains("Configure roles").parent().within(() => {
+ cy.get(".spectrum-Table").contains("No rows found")
+ })
+ })
+
+ it("should delete a user", () => {
+ // Click Delete user button
+ cy.get(".spectrum-Button").contains("Delete user").click({force: true}).then(() => {
+ // Confirm deletion within modal
+ cy.wait(500)
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Delete user").click({force: true})
+ cy.wait(4000)
+ })
+ })
+ cy.get(".spectrum-Table-body").should("not.have.text", "bbuser")
+ })
+})
diff --git a/packages/builder/cypress/integration/customThemingProperties.spec.js b/packages/builder/cypress/integration/customThemingProperties.spec.js
index 5b7922bde7..99e923d2a2 100644
--- a/packages/builder/cypress/integration/customThemingProperties.spec.js
+++ b/packages/builder/cypress/integration/customThemingProperties.spec.js
@@ -80,5 +80,4 @@ xcontext("Custom Theming Properties", () => {
.parent().find(".container.svelte-z3cm5a").click()
.get('[title="Gray 800"]').children().find('[aria-label="Checkmark"]')
}
-
})
diff --git a/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js b/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js
new file mode 100644
index 0000000000..f07ed5d4d9
--- /dev/null
+++ b/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js
@@ -0,0 +1,50 @@
+context("Add and Configure External Data Sources", () => {
+ before(() => {
+ cy.login()
+ cy.createTestApp()
+ })
+
+ it("should add and configure a PostgreSQL data source", () => {
+ // Select PostgreSQL datasource and add config
+ const datasource = "PostgreSQL"
+ cy.selectExternalDatasource(datasource)
+ cy.addSqlDatasourceConfig(datasource)
+
+ // Confirm fetch tables was successful
+ cy.get(".query-list").then(() => {
+ cy.get(".query-list-item").should('exist')
+ })
+ })
+
+ it("should add and configure a MySQL data source", () => {
+ // Select MySQL datasource and add config
+ const datasource = "MySQL"
+ cy.selectExternalDatasource(datasource)
+ cy.addSqlDatasourceConfig(datasource)
+
+ // Confirm fetch tables was successful
+ cy.get(".query-list").then(() => {
+ cy.get(".query-list-item").should('exist')
+ })
+ })
+
+ it("should add and configure a REST data source", () => {
+ // Select REST datasource and add config
+ const datasource = "REST"
+ const restUrl = "https://api.openbrewerydb.org/breweries"
+ cy.selectExternalDatasource(datasource)
+ cy.addRestDatasourceConfig(restUrl)
+
+ // Following config - Click Add Query, then Run Query
+ cy.get(".spectrum-Button").contains("Add Query").click({ force: true })
+ cy.wait(500)
+ cy.get(".viewer-controls").within(() => {
+ cy.get(".spectrum-Button").contains("Run Query").click({ force: true })
+ })
+ // Get the results from running query
+ cy.get(".viewer").within(() => {
+ cy.get(".preview").should(
+ 'not.have.value', 'Please run your query to fetch some data.')
+ })
+ })
+})
diff --git a/packages/builder/cypress/integration/datasources/datasourceWizard.spec.js b/packages/builder/cypress/integration/datasources/datasourceWizard.spec.js
new file mode 100644
index 0000000000..e5c88f26ee
--- /dev/null
+++ b/packages/builder/cypress/integration/datasources/datasourceWizard.spec.js
@@ -0,0 +1,39 @@
+context("Datasource Wizard", () => {
+ before(() => {
+ cy.login()
+ cy.createTestApp()
+ })
+
+ it("should navigate in and out of a datasource via wizard", () => {
+ // Select PostgreSQL and add config (without fetch)
+ const datasource = "PostgreSQL"
+ cy.selectExternalDatasource(datasource)
+ cy.addSqlDatasourceConfig(datasource, true)
+
+ // Navigate back within datasource wizard
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Back").click({ force: true })
+ cy.wait(1000)
+ })
+
+ // Select PostgreSQL datasource again
+ cy.get(".item-list").contains(datasource).click()
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Continue").click({ force: true })
+ })
+
+ // Immediately fetch tables after selection
+ // Previously entered config should not have been saved
+ // Config is back to default values - Modal will not close (incorrect config)
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Fetch tables from database").click({ force: true })
+ })
+ cy.wait(2000)
+ cy.get(".spectrum-Dialog-grid").should('be.visible')
+
+ // Close the modal
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".close-icon").click()
+ })
+ })
+})
diff --git a/packages/builder/cypress/integration/datasources/incorrectExternalDatasourceConfig.spec.js b/packages/builder/cypress/integration/datasources/incorrectExternalDatasourceConfig.spec.js
new file mode 100644
index 0000000000..3cc02af566
--- /dev/null
+++ b/packages/builder/cypress/integration/datasources/incorrectExternalDatasourceConfig.spec.js
@@ -0,0 +1,29 @@
+context("Incorrect Datasource Configuration", () => {
+ before(() => {
+ cy.login()
+ cy.createTestApp()
+ })
+
+ it("should add incorrect config for PostgreSQL", () => {
+ // This test tries to fetch immediately after selecting the datasource
+ // No config is entered (default values used)
+ // Select PostgreSQL datasource
+ cy.selectExternalDatasource("PostgreSQL")
+
+ // Attempt to fetch tables without applying config
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains(
+ "Fetch tables from database").click({ force: true })
+ })
+
+ // Wait 2 seconds then assert Modal has not closed
+ // Modal will not close if config is incorrect
+ cy.wait(2000)
+ cy.get(".spectrum-Dialog-grid").should('be.visible')
+
+ // Close the modal
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".close-icon").click()
+ })
+ })
+ })
diff --git a/packages/builder/cypress/integration/queryLevelTransformers.spec.js b/packages/builder/cypress/integration/queryLevelTransformers.spec.js
new file mode 100644
index 0000000000..d34c2740a5
--- /dev/null
+++ b/packages/builder/cypress/integration/queryLevelTransformers.spec.js
@@ -0,0 +1,124 @@
+context("Query Level Transformers", () => {
+ before(() => {
+ cy.login()
+ cy.createTestApp()
+ })
+
+ it("should write a transformer function", () => {
+ // Add REST datasource - contains API for breweries
+ const datasource = "REST"
+ const restUrl = "https://api.openbrewerydb.org/breweries"
+ cy.selectExternalDatasource(datasource)
+ cy.addRestDatasourceConfig(restUrl)
+ // Add Query
+ cy.get(".spectrum-Button").contains("Add Query").click({ force: true })
+ cy.wait(500)
+ addTransformerQuery()
+ // Run Query
+ cy.get(".spectrum-Button").contains("Run Query").click({ force: true })
+ cy.wait(500)
+ // Confirm JSON results
+ cy.get(".preview").should('have.text', '{\n "state": "Indiana",\n "count": 1\n}')
+ })
+
+ it("should add data to the previous query", () => {
+ // Add REST datasource - contains API for breweries
+ const datasource = "REST"
+ const restUrl = "https://api.openbrewerydb.org/breweries"
+ cy.selectExternalDatasource(datasource)
+ cy.addRestDatasourceConfig(restUrl)
+ // Add Query
+ cy.get(".spectrum-Button").contains("Add Query").click({ force: true })
+ cy.wait(500)
+ addTransformerQuery(true)
+ // Run Query
+ cy.get(".spectrum-Button").contains("Run Query").click({ force: true })
+ cy.wait(500)
+ // Confirm JSON results
+ cy.get(".preview").should(
+ 'have.text',
+ '{\n "state": "Indiana",\n "count": 1,\n "flag": "http://flags.ox3.in/svg/us/${stateCode}.svg"\n}')
+ })
+
+ it("should run an invalid query via POST request", () => {
+ // POST request with transformer as null
+ cy.request({method: 'POST',
+ url: 'https://test.budi.live/api/queries/',
+ body: {fields : {"headers":{},"queryString":null,"path":null},
+ parameters : [],
+ schema : {},
+ name : "test",
+ queryVerb : "read",
+ transformer : null,
+ datasourceId: "test"},
+ // Expected 400 error - Transformer must be a string
+ failOnStatusCode: false}).then((response) => {
+ expect(response.status).to.equal(400)
+ expect(response.body.message).to.include('Invalid body - "transformer" must be a string')
+ })
+ })
+
+ it("should run an empty query", () => {
+ // POST request with Transformer as an empty string
+ cy.request({method: 'POST',
+ url: 'https://test.budi.live/api/queries/preview',
+ body: {fields : {"headers":{},"queryString":null,"path":null},
+ queryVerb : "read",
+ transformer : "",
+ datasourceId: "test"},
+ // Expected 400 error - Transformer is not allowed to be empty
+ failOnStatusCode: false}).then((response) => {
+ expect(response.status).to.equal(400)
+ expect(response.body.message).to.include('Invalid body - "transformer" is not allowed to be empty')
+ })
+})
+
+ const addTransformerQuery = (addData = false) => {
+ // Adds query within the Transformer section of Query REST API
+ cy.get(".CodeMirror textarea")
+ // Highlight current text within CodeMirror
+ .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true })
+ // Overwrite current text with function
+ .type("const breweries = data\n" +
+ "const totals = {}\n" +
+ "for (let brewery of breweries) {")
+ // Delete key in place to remove extra brackets that are added
+ .type('{del}')
+ .type("\n const state = brewery.state\n" +
+ " if (totals[state] == null) {")
+ .type('{del}')
+ .type("\n totals[state] = 1\n" +
+ "} else {")
+ .type('{del}')
+ .type("\n totals[state]++\n" +
+ "}}\n", { parseSpecialCharSequences: false })
+
+ if (addData) {
+ cy.get(".CodeMirror textarea")
+ .type('const stateCodes = {"texas":"tx",\n' +
+ '"colorado":"co",\n' +
+ '"florida":"fl",\n' +
+ '"iwoa":"ia",\n' +
+ '"louisiana":"la",\n' +
+ '"california":"ca",\n' +
+ '"pennsylvania":"pa",\n' +
+ '"georgia":"ga",\n' +
+ '"new hampshire":"nh",\n' +
+ '"virginia":"va",\n' +
+ '"michigan":"mi",\n' +
+ '"maryland":"md",\n' +
+ '"ohio":"oh"}\n')
+ .type('const entries = Object.entries(totals)\n' +
+ "return entries.map(([state, count]) => \n" +
+ "{ const stateCode = stateCodes[state.toLowerCase()]\n" +
+ "return {state, count, flag: 'http://flags.ox3.in/svg/us/${stateCode}.svg'",
+ { parseSpecialCharSequences: false })
+ }
+ else{
+ cy.get(".CodeMirror textarea")
+ .type("const entries = Object.entries(totals)\n" +
+ "return entries.map(([state, count]) => ({state, count}))",
+ { parseSpecialCharSequences: false })
+ }
+ }
+})
diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js
index 82e3c45a1f..1004f84c39 100644
--- a/packages/builder/cypress/support/commands.js
+++ b/packages/builder/cypress/support/commands.js
@@ -35,32 +35,71 @@ Cypress.Commands.add("login", () => {
Cypress.Commands.add("createApp", name => {
cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
cy.wait(500)
+ cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`).its('body').then((body) => {
+ if( body.length > 0) {
+ cy.get(".spectrum-Button").contains("Create app").click({ force: true })
+ }
+ })
cy.contains(/Start from scratch/).dblclick()
cy.get(".spectrum-Modal").within(() => {
cy.get("input").eq(0).type(name).should("have.value", name).blur()
cy.get(".spectrum-ButtonGroup").contains("Create app").click()
- cy.wait(7000)
+ cy.wait(5000)
})
+ cy.createTable("Cypress Tests", true)
})
-Cypress.Commands.add("deleteApp", () => {
+Cypress.Commands.add("deleteApp", name => {
cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
- cy.wait(1000)
+ cy.wait(2000)
cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
- .its("body")
- .then(val => {
- console.log(val)
- if (val.length > 0) {
- cy.get(".title > :nth-child(3) > .spectrum-Icon").click()
- cy.contains("Delete").click()
- cy.get(".spectrum-Button--warning").click()
- }
- })
+ .its("body")
+ .then(val => {
+ if (val.length > 0) {
+ cy.searchForApplication(name)
+ cy.get(".appGrid").children().within(() => {
+ cy.get(".title").children().within(() => {
+ cy.get(".spectrum-Icon").click()
+ })
+ })
+ cy.get(".spectrum-Menu").contains("Delete").click()
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get("input").type(name)
+ })
+ cy.get(".spectrum-Button--warning").click()
+ }
+ else {
+ return
+ }
+ })
+ })
+
+Cypress.Commands.add("deleteAllApps", () => {
+ cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.wait(500)
+ cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ .its("body")
+ .then(val => {
+ for (let i = 0; i < val.length; i++) {
+ cy.get(".spectrum-Heading").eq(1).then((app) => {
+ const name = app.text()
+ cy.get(".title").children().within(() => {
+ cy.get(".spectrum-Icon").eq(0).click()
+ })
+ cy.get(".spectrum-Menu").contains("Delete").click()
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get("input").type(name)
+ cy.get(".spectrum-Button--warning").click()
+ })
+ cy.reload()
+ })
+ }
+ })
})
Cypress.Commands.add("createTestApp", () => {
const appName = "Cypress Tests"
- cy.deleteApp()
+ cy.deleteApp(appName)
cy.createApp(appName, "This app is used for Cypress testing.")
})
@@ -70,10 +109,14 @@ Cypress.Commands.add("createTestTableWithData", () => {
cy.addColumn("dog", "age", "Number")
})
-Cypress.Commands.add("createTable", tableName => {
- cy.contains("Budibase DB").click()
- cy.contains("Create new table").click()
-
+Cypress.Commands.add("createTable", (tableName, initialTable) => {
+ if (!initialTable) {
+ cy.get(".add-button").click()
+ }
+ cy.wait(7000)
+ cy.get(".spectrum-Modal").contains("Budibase DB").click().then(() => {
+ cy.get(".spectrum-Button").contains("Continue").click({ force: true })
+ })
cy.get(".spectrum-Modal").within(() => {
cy.wait(1000)
cy.get("input").first().type(tableName).blur()
@@ -183,6 +226,12 @@ Cypress.Commands.add("navigateToFrontend", () => {
cy.get(".nav-item").contains("Home").click()
})
+Cypress.Commands.add("navigateToDataSection", () => {
+ // Clicks on the Data tab
+ cy.wait(500)
+ cy.contains("Data").click()
+})
+
Cypress.Commands.add("createScreen", (screenName, route) => {
cy.get("[aria-label=AddCircle]").click()
cy.get(".spectrum-Modal").within(() => {
@@ -226,7 +275,102 @@ Cypress.Commands.add("addCustomSourceOptions", totalOptions => {
})
Cypress.Commands.add("searchForApplication", appName => {
- cy.get(".spectrum-Textfield").within(() => {
- cy.get("input").eq(0).type(appName)
+ cy.wait(1000)
+ // Searches for the app
+ cy.get(".filter").then(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ cy.get("input").eq(0).type(appName)
+ })
+ })
+ // Confirms app exists after search
+ cy.get(".appGrid").contains(appName)
+})
+
+Cypress.Commands.add("selectExternalDatasource", datasourceName => {
+ // Navigates to Data Section
+ cy.navigateToDataSection()
+ // Open Data Source modal
+ cy.get('.nav').within(() => {
+ cy.get(".add-button").click()
+ })
+ // Clicks specified datasource & continue
+ cy.get(".item-list").contains(datasourceName).click()
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Continue").click({ force: true })
+ })
+})
+
+Cypress.Commands.add("addSqlDatasourceConfig", (sqlType, noFetch) => {
+ // addExternalDatasource should be called prior to this
+ // Adds the config for specified SQL datasource & fetches tables
+ // Host IP Address
+ cy.wait(500)
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".form-row").contains("Host").parent().children().within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ cy.get("input").clear().type("3.251.63.170")
+ })
+ })
+ })
+ // Database Name
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".form-row").contains("Database").parent().children().within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ if (sqlType == "PostgreSQL") {
+ cy.get("input").clear().type("test")
+ }
+ if (sqlType == "MySQL") {
+ cy.get("input").clear().type("mysql")
+ }
+ })
+ })
+ })
+ // User
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".form-row").contains("User").parent().children().within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ if (sqlType == "PostgreSQL") {
+ cy.get("input").clear().type("admin")
+ }
+ if (sqlType == "MySQL") {
+ cy.get("input").clear().type("root")
+ }
+ })
+ })
+ })
+ // Password
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".form-row").contains("Password").parent().children().within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ if (sqlType == "PostgreSQL") {
+ cy.get("input").clear().type("8cb2b6f4-4b33-4e86-b790-74eee608a4e9")
+ }
+ if (sqlType == "MySQL") {
+ cy.get("input").clear().type("abdc321d-4d21-4fc7-8d20-f40ab9fe6db0")
+ }
+ })
+ })
+ })
+ // Click to fetch tables
+ if (!noFetch){
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Fetch tables from database").click({ force: true })
+ cy.wait(1000)
+ })
+ }
+})
+
+Cypress.Commands.add("addRestDatasourceConfig", restUrl => {
+ // addExternalDatasource should be called prior to this
+ // Configures REST datasource
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ cy.get("input").clear().type(restUrl)
+ })
+ })
+ // Click Save and continue to query
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get(".spectrum-Button").contains("Save and continue to query").click({ force: true })
+ cy.wait(500)
})
})
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 3c2672af33..7afb585856 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -95,7 +95,7 @@
"@testing-library/jest-dom": "^5.11.10",
"@testing-library/svelte": "^3.0.0",
"babel-jest": "^26.6.3",
- "cypress": "^5.1.0",
+ "cypress": "9.0.0",
"cypress-terminal-report": "^1.4.1",
"identity-obj-proxy": "^3.0.0",
"jest": "^26.6.3",
diff --git a/packages/builder/yarn.lock b/packages/builder/yarn.lock
index 443d00680b..dcb84956c4 100644
--- a/packages/builder/yarn.lock
+++ b/packages/builder/yarn.lock
@@ -2,6 +2,11 @@
# yarn lockfile v1
+"@adobe/spectrum-css-workflow-icons@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@adobe/spectrum-css-workflow-icons/-/spectrum-css-workflow-icons-1.2.1.tgz#7e2cb3fcfb5c8b12d7275afafbb6ec44913551b4"
+ integrity sha512-uVgekyBXnOVkxp+CUssjN/gefARtudZC8duEn1vm0lBQFwGRZFlDEzU1QC+aIRWCrD1Z8OgRpmBYlSZ7QS003w==
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
@@ -870,11 +875,129 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@budibase/bbui@^0.9.139", "@budibase/bbui@^0.9.173-alpha.6", "@budibase/bbui@^0.9.186":
+ version "0.9.186"
+ resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.186.tgz#208a4522d9693bd5c1e28a959635438c05b458ef"
+ integrity sha512-2VHO9NhgLGTZ799aQYZeL6zdng1ycSC44g+ProL3yoJM+4CZR/+GqLlWBKsnFT4L/qP58MqCQGedYpzm0ATpkg==
+ dependencies:
+ "@adobe/spectrum-css-workflow-icons" "^1.2.1"
+ "@spectrum-css/actionbutton" "^1.0.1"
+ "@spectrum-css/actiongroup" "^1.0.1"
+ "@spectrum-css/avatar" "^3.0.2"
+ "@spectrum-css/button" "^3.0.1"
+ "@spectrum-css/buttongroup" "^3.0.2"
+ "@spectrum-css/checkbox" "^3.0.2"
+ "@spectrum-css/dialog" "^3.0.1"
+ "@spectrum-css/divider" "^1.0.3"
+ "@spectrum-css/dropzone" "^3.0.2"
+ "@spectrum-css/fieldgroup" "^3.0.2"
+ "@spectrum-css/fieldlabel" "^3.0.1"
+ "@spectrum-css/icon" "^3.0.1"
+ "@spectrum-css/illustratedmessage" "^3.0.2"
+ "@spectrum-css/inputgroup" "^3.0.2"
+ "@spectrum-css/label" "^2.0.10"
+ "@spectrum-css/link" "^3.1.1"
+ "@spectrum-css/menu" "^3.0.1"
+ "@spectrum-css/modal" "^3.0.1"
+ "@spectrum-css/pagination" "^3.0.3"
+ "@spectrum-css/picker" "^1.0.1"
+ "@spectrum-css/popover" "^3.0.1"
+ "@spectrum-css/progressbar" "^1.0.2"
+ "@spectrum-css/progresscircle" "^1.0.2"
+ "@spectrum-css/radio" "^3.0.2"
+ "@spectrum-css/search" "^3.0.2"
+ "@spectrum-css/sidenav" "^3.0.2"
+ "@spectrum-css/statuslight" "^3.0.2"
+ "@spectrum-css/stepper" "^3.0.3"
+ "@spectrum-css/switch" "^1.0.2"
+ "@spectrum-css/table" "^3.0.1"
+ "@spectrum-css/tabs" "^3.0.1"
+ "@spectrum-css/tags" "^3.0.2"
+ "@spectrum-css/textfield" "^3.0.1"
+ "@spectrum-css/toast" "^3.0.1"
+ "@spectrum-css/tooltip" "^3.0.3"
+ "@spectrum-css/treeview" "^3.0.2"
+ "@spectrum-css/typography" "^3.0.1"
+ "@spectrum-css/underlay" "^2.0.9"
+ "@spectrum-css/vars" "^3.0.1"
+ dayjs "^1.10.4"
+ svelte-flatpickr "^3.2.3"
+ svelte-portal "^1.0.0"
+
+"@budibase/client@^0.9.173-alpha.6":
+ version "0.9.186"
+ resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.186.tgz#f1179d05eabc343448de77f460e059083d90a39c"
+ integrity sha512-ImCNQFzMi2XC0wM8ZcsghOGje8CbjTUW4a4JqIerMfcWL/5aW03kxdQAPsRVu5ssVXZ03Btwxt2f4Vjtie7h0Q==
+ dependencies:
+ "@budibase/bbui" "^0.9.186"
+ "@budibase/standard-components" "^0.9.139"
+ "@budibase/string-templates" "^0.9.186"
+ regexparam "^1.3.0"
+ shortid "^2.2.15"
+ svelte-spa-router "^3.0.5"
+
"@budibase/colorpicker@1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@budibase/colorpicker/-/colorpicker-1.1.2.tgz#f7436924ee746d7be9b2009c2fa193e710c30f89"
integrity sha512-2PlZBVkATDqDC4b4Ri8Xi8X3OxhuHOGfmZwtXbZL38lNIeofaQT3Qyc1ECzEY5N+HrdGrWhY9EnliF6QM+LIuA==
+"@budibase/handlebars-helpers@^0.11.7":
+ version "0.11.7"
+ resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46"
+ integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw==
+ dependencies:
+ array-sort "^1.0.0"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ for-in "^1.0.2"
+ get-object "^0.2.0"
+ get-value "^3.0.1"
+ handlebars "^4.7.7"
+ handlebars-utils "^1.0.6"
+ has-value "^2.0.2"
+ helper-date "^1.0.1"
+ helper-markdown "^1.0.0"
+ helper-md "^0.2.2"
+ html-tag "^2.0.0"
+ is-even "^1.0.0"
+ is-glob "^4.0.1"
+ kind-of "^6.0.3"
+ micromatch "^3.1.5"
+ relative "^3.0.2"
+ striptags "^3.1.1"
+ to-gfm-code-block "^0.1.1"
+ year "^0.2.1"
+
+"@budibase/standard-components@^0.9.139":
+ version "0.9.139"
+ resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3"
+ integrity sha512-Av0u9Eq2jerjhG6Atta+c0mOQGgE5K0QI3cm+8s/3Vki6/PXkO1YL5Alo3BOn9ayQAVZ/xp4rtZPuN/rzRibHw==
+ dependencies:
+ "@budibase/bbui" "^0.9.139"
+ "@spectrum-css/button" "^3.0.3"
+ "@spectrum-css/card" "^3.0.3"
+ "@spectrum-css/divider" "^1.0.3"
+ "@spectrum-css/link" "^3.1.3"
+ "@spectrum-css/page" "^3.0.1"
+ "@spectrum-css/typography" "^3.0.2"
+ "@spectrum-css/vars" "^3.0.1"
+ apexcharts "^3.22.1"
+ dayjs "^1.10.5"
+ svelte-apexcharts "^1.0.2"
+ svelte-flatpickr "^3.1.0"
+
+"@budibase/string-templates@^0.9.173-alpha.6", "@budibase/string-templates@^0.9.186":
+ version "0.9.186"
+ resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.186.tgz#e5831115645d227d916a1c20eeb8b3274f6fbef1"
+ integrity sha512-x1QkeYS+OOPcWyrydJ3dL7rK4+PD/Dg91xS2AO5LpV+MaI0HOw5ktIL9XUKD+ZJVg8nVGJheXxRIw340BItFGw==
+ dependencies:
+ "@budibase/handlebars-helpers" "^0.11.7"
+ dayjs "^1.10.4"
+ handlebars "^4.7.6"
+ handlebars-utils "^1.0.6"
+ lodash "^4.17.20"
+ vm2 "^3.9.4"
+
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
@@ -883,20 +1006,10 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
-"@cypress/listr-verbose-renderer@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a"
- integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=
- dependencies:
- chalk "^1.1.3"
- cli-cursor "^1.0.2"
- date-fns "^1.27.2"
- figures "^1.7.0"
-
-"@cypress/request@^2.88.5":
- version "2.88.5"
- resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7"
- integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==
+"@cypress/request@^2.88.7":
+ version "2.88.7"
+ resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.7.tgz#386d960ab845a96953723348088525d5a75aaac4"
+ integrity sha512-FTULIP2rnDJvZDT9t6B4nSfYR40ue19tVmv3wUcY05R9/FPCoMl1nAPJkzWzBCo7ltVn5ThQTbxiMoGBN7k0ig==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -911,13 +1024,12 @@
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.19"
- oauth-sign "~0.9.0"
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
- uuid "^3.3.2"
+ uuid "^8.3.2"
"@cypress/xvfb@^1.2.4":
version "1.2.4"
@@ -1199,13 +1311,6 @@
node-fetch "^2.6.0"
utf-8-validate "^5.0.2"
-"@samverschueren/stream-to-observable@^0.3.0":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301"
- integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==
- dependencies:
- any-observable "^0.3.0"
-
"@sentry/browser@5.19.1":
version "5.19.1"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.19.1.tgz#b22f36fc71f36719ad352a54e6b31722622128c0"
@@ -1289,6 +1394,103 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
+"@spectrum-css/actionbutton@^1.0.1":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/actionbutton/-/actionbutton-1.0.8.tgz#0db6049dde19c08ce39aec9e4f1afe8f2f4c53d1"
+ integrity sha512-ABsPfHVWV1Bwjiwsr/ayeHQLmNcwSUCr6rODHkM/Jc3q+WluD837pEhxiLr9gMO4AE1ELPO4P62RGRgOa0BZag==
+
+"@spectrum-css/actiongroup@^1.0.1":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/actiongroup/-/actiongroup-1.0.8.tgz#f29081fb5a0457446923ec0ca7c6a7798208f9b0"
+ integrity sha512-1EfryM8a7z73032VlJn07Pkk52cbDowULhgyhzzziZBy36R5HJ1WBdUdA//zLZmG3vPXV9Km9V5HVkcSakTyZQ==
+
+"@spectrum-css/avatar@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/avatar/-/avatar-3.0.2.tgz#4f1826223eae330e64b6d3cc899e9bc2e98dac95"
+ integrity sha512-wEczvSqxttTWSiL3cOvXV/RmGRwSkw2w6+slcHhnf0kb7ovymMM+9oz8vvEpEsSeo5u598bc+7ktrKFpAd6soQ==
+
+"@spectrum-css/button@^3.0.1", "@spectrum-css/button@^3.0.3":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/button/-/button-3.0.3.tgz#2df1efaab6c7e0b3b06cb4b59e1eae59c7f1fc84"
+ integrity sha512-6CnLPqqtaU/PcSSIGeGRi0iFIIxIUByYLKFO6zn5NEUc12KQ28dJ4PLwB6WBa0L8vRoAGlnWWH2ZZweTijbXgg==
+
+"@spectrum-css/buttongroup@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/buttongroup/-/buttongroup-3.0.8.tgz#bfb719602e2b162868a382701d334c714505cae4"
+ integrity sha512-2ldA2SmcvOilZRfp+SWgdHMTR+vhv9xuopEiNtieHRMvgX1/DwqdX/BKO+0cwSPgcZdPWRb0cQMR4QwV6lZ+1g==
+
+"@spectrum-css/card@^3.0.3":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/card/-/card-3.0.3.tgz#56b2e2da6b80c1583228baa279de7407383bfb6b"
+ integrity sha512-+oKLUI2a0QmQP9EzySeq/G4FpUkkdaDNbuEbqCj2IkPMc/2v/nwzsPhh1fj2UIghGAiiUwXfPpzax1e8fyhQUg==
+
+"@spectrum-css/checkbox@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/checkbox/-/checkbox-3.0.8.tgz#f005189eb108bd237fee861ad2a74b34c655e9ae"
+ integrity sha512-TeSGwhy7heGmJU0l9RzIQc/v0W5z+jIL5S4FUHmiChXKj5CkiF32QjFCzWyj70r/z0GT2G+eaoAfhmcCuh7mAg==
+
+"@spectrum-css/dialog@^3.0.1":
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/dialog/-/dialog-3.0.9.tgz#2a0b7784aeae5db5139b29120a4dafd143df1e97"
+ integrity sha512-nB238nktG5Xqxf/qOSzvD5GlReLj4MRF78pUgc5PzErUQlWfLpl+rXV8EakGzS2EhdZuhkvBbteJdPpcLi0kyA==
+
+"@spectrum-css/divider@^1.0.3":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/divider/-/divider-1.0.8.tgz#c3acda9e744868b80774c794ef78c9899f5cabed"
+ integrity sha512-KfuQWhc7YvaKDGSdJaJdN0VSSW4n8U06miC3zPIHCODhWD2MHSL8TIc2HaOSiBIE7ixPFsyWBTvTFosLt/5jog==
+ dependencies:
+ "@spectrum-css/vars" "^4.2.0"
+
+"@spectrum-css/dropzone@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/dropzone/-/dropzone-3.0.8.tgz#6cbba081a4131cefa6217f97cc5f574ac1f0eca0"
+ integrity sha512-pwdvbDo8YSfuOyyCnamZVS6ZsSHXJj2Pm4eoiQ/QkX4ld0y1fJKjZoEOCW9LCKBXqDmDGd6o4ZeHERaPHVAH/A==
+
+"@spectrum-css/fieldgroup@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/fieldgroup/-/fieldgroup-3.0.8.tgz#6ab3dda5734e55207c15f9cac3bcac445063814c"
+ integrity sha512-XNlw3Xp9eJSMjQ/44/YNy3WeuOSpYeNrcL2EjLjV6cWLQ9tRN0v5mA9l3+TET0OGLF+qU6jjU81oohVHFBBung==
+
+"@spectrum-css/fieldlabel@^3.0.1":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/fieldlabel/-/fieldlabel-3.0.3.tgz#f73c04d20734d4718ffb620dc46458904685b449"
+ integrity sha512-nEvIkEXCD5n4fW67Unq6Iu7VXoauEd/JGpfTY02VsC5p4FJLnwKfPDbJUuUsqClAxqw7nAsmXVKtn4zQFf5yPQ==
+
+"@spectrum-css/icon@^3.0.1":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/icon/-/icon-3.0.8.tgz#a82d7f66a230b9555e3b43a1c670559741dddf2d"
+ integrity sha512-PIJoo0De0tG8IguX3BleJLv4Gt9S5wUDfoyJ2ZFqqfE4ZP157FX3vly9oF1NkneFu2o5Ejd3izUqGguxf+jVMw==
+
+"@spectrum-css/illustratedmessage@^3.0.2":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/illustratedmessage/-/illustratedmessage-3.0.7.tgz#7c583f14bf6a0737c6ffd8b66170d179136da0fb"
+ integrity sha512-vmL0B9rf5uWGTxytVndj6TNkJsD+N1DVvWSJbN6GMwBtCa4nt+pqzN0N0pcDYMkCup+tZeuRfPawRon2nJ5yxQ==
+
+"@spectrum-css/inputgroup@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/inputgroup/-/inputgroup-3.0.8.tgz#fc23afc8a73c24d17249c9d2337e8b42085b298b"
+ integrity sha512-cmQWzFp0GU+4IMc8SSeVFdmQDlRUdPelXaQdKUR9mZuO2iYettg37s0lfBCeJyYkUNTagz0zP8O7A0iXfmeE6g==
+
+"@spectrum-css/label@^2.0.10":
+ version "2.0.10"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/label/-/label-2.0.10.tgz#2368651d7636a19385b5d300cdf6272db1916001"
+ integrity sha512-xCbtEiQkZIlLdWFikuw7ifDCC21DOC/KMgVrrVJHXFc4KRQe9LTZSqmGF3tovm+CSq1adE59mYoTbojVQ9YuEQ==
+
+"@spectrum-css/link@^3.1.1", "@spectrum-css/link@^3.1.3":
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/link/-/link-3.1.8.tgz#f54b13a8d865faf1e186245168d67c5534cf422b"
+ integrity sha512-3cGprV6XiQG16ci0Msftif6KmbiJuJDHN6cdKELxlBI5iEB7dSfJv0vpS09URzyoR3p9c8ZOa9c6a5TTirXesQ==
+
+"@spectrum-css/menu@^3.0.1":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/menu/-/menu-3.0.8.tgz#5bace477be45c7357ed89ea630ad55f8b639dfbb"
+ integrity sha512-aWbjXk+56uHpKEkV6TSAMu45xRljvjd6JsQGSgxIsU9XbyPSyzWKqjdqiULg51aXpZ6IvgT5CLYxKOnStIp3Ug==
+
+"@spectrum-css/modal@^3.0.1":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/modal/-/modal-3.0.7.tgz#6aa32dbd048331850f4f84394cbffc083faabddf"
+ integrity sha512-9A4iRn2+l8Jy6cOExdD7qGJKTx02yQGULT8ZOeMjzOePnfopfLa8sJZJMABCekav/BSn6TvdmxZG2iSyPv2rJw==
+
"@spectrum-css/page@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@spectrum-css/page/-/page-3.0.1.tgz#5e1c3dd5b1a1ee591f9d636b75f03665f542d846"
@@ -1296,11 +1498,116 @@
dependencies:
"@spectrum-css/vars" "^3.0.1"
+"@spectrum-css/pagination@^3.0.3":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/pagination/-/pagination-3.0.8.tgz#4ffcc93c55221196ac9283759df0a1233c2f9cde"
+ integrity sha512-eRNaLjSmQ7xE7WKd2jGQPu4LewvvKIddTL33KXAOMlzoq49PAMwoil7GT4oozwlAguyZGQUbbao0oQCQsXH1Uw==
+
+"@spectrum-css/picker@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/picker/-/picker-1.1.2.tgz#717c5175ffbf021243170b3832c396c652571d50"
+ integrity sha512-5iKZaHvfhwMTAQndWgE6QIOuIqpldQuOUm1F0MJtatiOfFbGcCaNxkgSRls880UwZDb5A528qh7LllCUQ5ejsQ==
+
+"@spectrum-css/popover@^3.0.1":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/popover/-/popover-3.0.8.tgz#c43969a3b6277c60f6e0edda99f88ef7fa3343ad"
+ integrity sha512-6iKtubtANDg99vSuHPpgRA9UBqS9FrU6C0WQMw9p7QIJl+9Z/tah7jExMzi1R4OBsHvlSQy+rf7RAq+qtnjhng==
+
+"@spectrum-css/progressbar@^1.0.2":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/progressbar/-/progressbar-1.0.8.tgz#33a7a646caa874a67ea88fea61a7277d50490911"
+ integrity sha512-maFAEPsSaCJ++TEZSmnZMZORvRN+exdQhUDbFHXQ6cM4PILHQ3ig1MtPtBKvSk1klyFcLZuvQY+/l9sfRAg4jA==
+
+"@spectrum-css/progresscircle@^1.0.2":
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/progresscircle/-/progresscircle-1.0.7.tgz#b45ba1ebd151730faad3ea658c2c70554ddfcf1f"
+ integrity sha512-99ZpedzVxQBYTuxOvwq5AGcSnGwrDyq5GCnybrK60PlovyFzTtP3GNEvZEaQftQ5Wl/96HrjoQin/eosyDy3hQ==
+
+"@spectrum-css/radio@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/radio/-/radio-3.0.8.tgz#be1cf33ab5e4c619ac649b7db223db131272f128"
+ integrity sha512-+QCfSo0NS20tqIM34aY80fkwpvbtzDZ9lRCBwFq3tY4D8FzzAwt5h0MSh7BFscZGQG8FT5ZFkx4bdjnQGKByDg==
+
+"@spectrum-css/search@^3.0.2":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/search/-/search-3.1.2.tgz#8d43f35f884f7c190e7694c8d26a3f2cfed01ef0"
+ integrity sha512-8cMK1QB07dbReZ/ECyTyoT2dELZ7hK1b3jEDiWSeLBbXcKirR1OI24sZEnewQY/XWFd/62Z1YdNaaA8S6UuXWQ==
+
+"@spectrum-css/sidenav@^3.0.2":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/sidenav/-/sidenav-3.0.8.tgz#d32d081461860f7aeb988d02bebbdd475637b2b1"
+ integrity sha512-tG7DIvBiYG0kFyIMZtNp/qbSWJD4HSjzYQDVMZs5d87XnrfwncNSTW12+/rHskanlCS6WiOzSOxzHd8KlzaRtw==
+
+"@spectrum-css/statuslight@^3.0.2":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/statuslight/-/statuslight-3.0.7.tgz#2bcc63885f13009a3a7e8466ba6d9398f3db697f"
+ integrity sha512-nR5laz06SkvUxl3YU6k96OpXYXbekhgAKZTdyWQyAFVivYvOx3B1mgSMQGkYXyXzTrWouOmSaIWtErfJQkT0xg==
+
+"@spectrum-css/stepper@^3.0.3":
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/stepper/-/stepper-3.0.8.tgz#551b6b4ed99bbb414a3ce9e3ae7a9565acebfc45"
+ integrity sha512-5lMEQzqYPAOqkxIFNGmHOKIIXBL2NoebZFYFSdyC0Rv6dRJz+hO2BuaVRSuDLiq0EkNJv/JAI78wX99/qbzrZw==
+
+"@spectrum-css/switch@^1.0.2":
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/switch/-/switch-1.0.7.tgz#4996990ed1c265565b8660d20b50fe16e431fff1"
+ integrity sha512-ig88HDNFrz97afSdbH4v0u/6nM45KD0npeTMrqk5MdiL2diMAugy+SeEG7T6s5k1wCDkQQhl60RFIn4+n7qNmw==
+
+"@spectrum-css/table@^3.0.1":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/table/-/table-3.0.3.tgz#7f7f19905ef3275cbf907ce3a5818e63c30b2caf"
+ integrity sha512-nxwzVjLPsXoY/v4sdxOVYLcC+cEbGgJyLcLclT5LT9MGSbngFeUMJzzVR4EvehzuN4dH7hrATG7Mbuq29Mf0Hg==
+
+"@spectrum-css/tabs@^3.0.1":
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/tabs/-/tabs-3.1.4.tgz#3facac0ec62c9864caddf4b8bbd343023d03e1ec"
+ integrity sha512-8S9nJgf6TFGIa6nfn+TC6cbI+d6cxr4kc+6ICt9YPmuUditlcuwRc6bdscm+q7KzS9USoq9zFq9ya5xG2wQkGg==
+
+"@spectrum-css/tags@^3.0.2":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/tags/-/tags-3.0.3.tgz#fc76d2735cdc442de91b7eb3bee49a928c0767ac"
+ integrity sha512-SL8vPxVDfWcY5VdIuyl0TImEXcOU1I7yCyXkk7MudMwfnYs81FaIyY32hFV9OHj0Tz/36UzRzc7AVMSuRQ53pw==
+
+"@spectrum-css/textfield@^3.0.1":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/textfield/-/textfield-3.0.7.tgz#8009621d7e3b95fa3af985f6f2952c1cc3f54703"
+ integrity sha512-SZiaGmouT0X/CdipngAfewSoKk4w3JNEVsVIiDzZM2xc46UQgV1xe/IGr2ox183omFghatxDUMTX7z//gt8gRg==
+
+"@spectrum-css/toast@^3.0.1":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/toast/-/toast-3.0.3.tgz#97c1527384707600832ecda35643ed304615250f"
+ integrity sha512-CjLeaMs+cjUXojCCRtbj0YkD2BoZW16kjj2o5omkEpUTjA34IJ8xJ1a+CCtDILWekhXvN0MBN4sbumcnwcnx8w==
+
+"@spectrum-css/tooltip@^3.0.3":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/tooltip/-/tooltip-3.1.2.tgz#2b32c7c639a9a6a5bb420d4bf32a8f0fbf242273"
+ integrity sha512-m1oW1ER7wfXpou82F+4X93Ls6OT/pNb3e0uJZYYwYQZUV6+0QipEf2Xixi7kFgCyLbGHVIWQAoFDugg4U27Lew==
+
+"@spectrum-css/treeview@^3.0.2":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/treeview/-/treeview-3.0.3.tgz#aeda5175158b9f8d7529cb2b394428eb2a428046"
+ integrity sha512-D5gGzZC/KtRArdx86Mesc9+99W9nTbUOeyYGqoJoAfJSOttoT6Tk5CrDvlCmAqjKf5rajemAkGri1ChqvUIwkw==
+
+"@spectrum-css/typography@^3.0.1", "@spectrum-css/typography@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/typography/-/typography-3.0.2.tgz#ea3ca0a60e18064527819d48c8c4364cab4fcd38"
+ integrity sha512-5ZOLmQe0edzsDMyhghUd4hBb5uxGsFrxzf+WasfcUw9klSfTsRZ09n1BsaaWbgrLjlMQ+EEHS46v5VNo0Ms2CA==
+
+"@spectrum-css/underlay@^2.0.9":
+ version "2.0.16"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/underlay/-/underlay-2.0.16.tgz#df96227e6a94442ae8e23707de45096fa5c63c20"
+ integrity sha512-uEByMR/LytJLC3gckgJ+usp0krI8UwenD904azzZ0cLydoaJeN9ZtNJlphiXlKvz+QRjth2Vb6VJr2zwR7wxCQ==
+
"@spectrum-css/vars@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@spectrum-css/vars/-/vars-3.0.1.tgz#561fd69098f896a647242dd8d6108af603bfa31e"
integrity sha512-l4oRcCOqInChYXZN6OQhpe3isk6l4OE6Ys8cgdlsiKp53suNoQxyyd9p/eGRbCjZgH3xQ8nK0t4DHa7QYC0S6w==
+"@spectrum-css/vars@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/vars/-/vars-4.2.0.tgz#989a1a247d7c15437681829454f281bb36b9fe2f"
+ integrity sha512-ufu/1sTywZmIoXeva5+Po5/3yrAX9wFjM0RJN/aaMFPfmkZ2fIV8RPnFsDUMXPizPzg+DKZA/818YUtYrbi16g==
+
"@sveltejs/vite-plugin-svelte@^1.0.0-next.5":
version "1.0.0-next.5"
resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.5.tgz#8cf608f7a3c33dfa5b648397aae1ba90e6a4883f"
@@ -1457,6 +1764,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.7.tgz#1cb61fd0c85cb87e728c43107b5fd82b69bc9ef8"
integrity sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==
+"@types/node@^14.14.31":
+ version "14.17.33"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz#011ee28e38dc7aee1be032ceadf6332a0ab15b12"
+ integrity sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g==
+
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
@@ -1472,10 +1784,10 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"
integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==
-"@types/sinonjs__fake-timers@^6.0.1":
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae"
- integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg==
+"@types/sinonjs__fake-timers@^6.0.2":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz#0ecc1b9259b76598ef01942f547904ce61a6a77d"
+ integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==
"@types/sizzle@^2.3.2":
version "2.3.2"
@@ -1506,6 +1818,13 @@
dependencies:
"@types/yargs-parser" "*"
+"@types/yauzl@^2.9.1":
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a"
+ integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==
+ dependencies:
+ "@types/node" "*"
+
abab@^2.0.3, abab@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
@@ -1534,6 +1853,14 @@ acorn@^8.1.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe"
integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
ajv@^6.12.3:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@@ -1544,38 +1871,23 @@ ajv@^6.12.3:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ansi-escapes@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
- integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-ansi-escapes@^4.2.1:
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
dependencies:
type-fest "^0.21.3"
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
ansi-regex@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
- integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
-
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -1590,11 +1902,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
-any-observable@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
- integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
-
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@@ -1611,12 +1918,24 @@ anymatch@^3.0.3:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-arch@^2.1.2:
+apexcharts@^3.19.2, apexcharts@^3.22.1:
+ version "3.29.0"
+ resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.29.0.tgz#1ffb940f293b21e20830ca0567bb37c29894e832"
+ integrity sha512-PhI17VayidYAbLb5/g+7WOeirgFrVopzt0qGwLq8V+cd6NXx4CeHYq3S0pDZiUGO7UFQ4YIrT8+ie9/Fnler+w==
+ dependencies:
+ svg.draggable.js "^2.2.2"
+ svg.easing.js "^2.0.0"
+ svg.filter.js "^2.0.2"
+ svg.pathmorphing.js "^0.1.3"
+ svg.resize.js "^1.4.3"
+ svg.select.js "^3.0.1"
+
+arch@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
-argparse@^1.0.7:
+argparse@^1.0.10, argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@@ -1646,6 +1965,15 @@ arr-union@^3.1.0:
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+array-sort@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
+ integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
+ dependencies:
+ default-compare "^1.0.0"
+ get-value "^2.0.6"
+ kind-of "^5.0.2"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -1673,6 +2001,11 @@ assign-symbols@^1.0.0:
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+astral-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+ integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
async@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
@@ -1693,6 +2026,13 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+autolinker@~0.28.0:
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
+ integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
+ dependencies:
+ gulp-header "^1.7.1"
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -1827,7 +2167,7 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-blob-util@2.0.2:
+blob-util@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb"
integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==
@@ -1968,18 +2308,7 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@^1.0.0, chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2024,6 +2353,11 @@ ci-info@^2.0.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+ci-info@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6"
+ integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==
+
cjs-module-lexer@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f"
@@ -2039,19 +2373,17 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-cli-cursor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
- integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=
- dependencies:
- restore-cursor "^1.0.1"
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
-cli-cursor@^2.0.0, cli-cursor@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
- integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
dependencies:
- restore-cursor "^2.0.0"
+ restore-cursor "^3.1.0"
cli-table3@~0.6.0:
version "0.6.0"
@@ -2063,13 +2395,13 @@ cli-table3@~0.6.0:
optionalDependencies:
colors "^1.1.2"
-cli-truncate@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
- integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
+cli-truncate@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
dependencies:
- slice-ansi "0.0.4"
- string-width "^1.0.1"
+ slice-ansi "^3.0.0"
+ string-width "^4.2.0"
cliui@^6.0.0:
version "6.0.0"
@@ -2080,16 +2412,16 @@ cliui@^6.0.0:
strip-ansi "^6.0.0"
wrap-ansi "^6.2.0"
+clone@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
- integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
codemirror@^5.59.0:
version "5.60.0"
resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.60.0.tgz#00a8cfd287d5d8737ceb73987f04aee2fe5860da"
@@ -2137,6 +2469,11 @@ colorette@^1.1.0, colorette@^1.2.2:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+colorette@^2.0.16:
+ version "2.0.16"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
+ integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+
colors@^1.1.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
@@ -2174,15 +2511,12 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-stream@^1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+concat-with-sourcemaps@*:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
+ integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
+ source-map "^0.6.1"
configent@^2.1.4:
version "2.2.0"
@@ -2291,45 +2625,48 @@ cypress-terminal-report@^1.4.1:
chalk "^3.0.0"
methods "^1.1.2"
-cypress@^5.1.0:
- version "5.6.0"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.6.0.tgz#6781755c3ddfd644ce3179fcd7389176c0c82280"
- integrity sha512-cs5vG3E2JLldAc16+5yQxaVRLLqMVya5RlrfPWkC72S5xrlHFdw7ovxPb61s4wYweROKTyH01WQc2PFzwwVvyQ==
+cypress@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.0.0.tgz#8c496f7f350e611604cc2f77b663fb81d0c235d2"
+ integrity sha512-/93SWBZTw7BjFZ+I9S8SqkFYZx7VhedDjTtRBmXO0VzTeDbmxgK/snMJm/VFjrqk/caWbI+XY4Qr80myDMQvYg==
dependencies:
- "@cypress/listr-verbose-renderer" "^0.4.1"
- "@cypress/request" "^2.88.5"
+ "@cypress/request" "^2.88.7"
"@cypress/xvfb" "^1.2.4"
- "@types/sinonjs__fake-timers" "^6.0.1"
+ "@types/node" "^14.14.31"
+ "@types/sinonjs__fake-timers" "^6.0.2"
"@types/sizzle" "^2.3.2"
- arch "^2.1.2"
- blob-util "2.0.2"
+ arch "^2.2.0"
+ blob-util "^2.0.2"
bluebird "^3.7.2"
cachedir "^2.3.0"
chalk "^4.1.0"
check-more-types "^2.24.0"
+ cli-cursor "^3.1.0"
cli-table3 "~0.6.0"
commander "^5.1.0"
common-tags "^1.8.0"
- debug "^4.1.1"
- eventemitter2 "^6.4.2"
- execa "^4.0.2"
+ dayjs "^1.10.4"
+ debug "^4.3.2"
+ enquirer "^2.3.6"
+ eventemitter2 "^6.4.3"
+ execa "4.1.0"
executable "^4.1.1"
- extract-zip "^1.7.0"
- fs-extra "^9.0.1"
+ extract-zip "2.0.1"
+ figures "^3.2.0"
+ fs-extra "^9.1.0"
getos "^3.2.1"
- is-ci "^2.0.0"
- is-installed-globally "^0.3.2"
+ is-ci "^3.0.0"
+ is-installed-globally "~0.4.0"
lazy-ass "^1.6.0"
- listr "^0.14.3"
- lodash "^4.17.19"
+ listr2 "^3.8.3"
+ lodash "^4.17.21"
log-symbols "^4.0.0"
minimist "^1.2.5"
- moment "^2.27.0"
ospath "^1.2.2"
- pretty-bytes "^5.4.1"
- ramda "~0.26.1"
+ pretty-bytes "^5.6.0"
+ proxy-from-env "1.0.0"
request-progress "^3.0.0"
- supports-color "^7.2.0"
+ supports-color "^8.1.1"
tmp "~0.2.1"
untildify "^4.0.0"
url "^0.11.0"
@@ -2351,10 +2688,17 @@ data-urls@^2.0.0:
whatwg-mimetype "^2.3.0"
whatwg-url "^8.0.0"
-date-fns@^1.27.2:
- version "1.30.1"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
- integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+date.js@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda"
+ integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw==
+ dependencies:
+ debug "~3.1.0"
+
+dayjs@^1.10.4, dayjs@^1.10.5:
+ version "1.10.7"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
+ integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==
debug@4.3.1, debug@^4.1.0, debug@^4.1.1:
version "4.3.1"
@@ -2363,7 +2707,7 @@ debug@4.3.1, debug@^4.1.0, debug@^4.1.1:
dependencies:
ms "2.1.2"
-debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
+debug@^2.2.0, debug@^2.3.3:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -2384,6 +2728,13 @@ debug@^4.3.2:
dependencies:
ms "2.1.2"
+debug@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -2409,6 +2760,13 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+default-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
+ integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
+ dependencies:
+ kind-of "^5.0.2"
+
define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -2500,11 +2858,6 @@ electron-to-chromium@^1.3.723:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a"
integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==
-elegant-spinner@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
- integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
-
emittery@^0.7.1:
version "0.7.2"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82"
@@ -2522,6 +2875,18 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
+enquirer@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+ dependencies:
+ ansi-colors "^4.1.1"
+
+ent@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
+ integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -2539,7 +2904,7 @@ escalade@^3.1.1:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
@@ -2609,10 +2974,10 @@ event-stream@=3.3.4:
stream-combiner "~0.0.4"
through "~2.3.1"
-eventemitter2@^6.4.2:
- version "6.4.4"
- resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b"
- integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==
+eventemitter2@^6.4.3:
+ version "6.4.5"
+ resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655"
+ integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==
exec-sh@^0.3.2:
version "0.3.6"
@@ -2635,20 +3000,7 @@ execa@3.4.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
-execa@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
- integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
- dependencies:
- cross-spawn "^6.0.0"
- get-stream "^4.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-execa@^4.0.0, execa@^4.0.2:
+execa@4.1.0, execa@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
@@ -2663,6 +3015,19 @@ execa@^4.0.0, execa@^4.0.2:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
executable@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c"
@@ -2670,11 +3035,6 @@ executable@^4.1.1:
dependencies:
pify "^2.2.0"
-exit-hook@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
- integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=
-
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -2739,15 +3099,16 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-extract-zip@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
- integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
+extract-zip@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
dependencies:
- concat-stream "^1.6.2"
- debug "^2.6.9"
- mkdirp "^0.5.4"
+ debug "^4.1.1"
+ get-stream "^5.1.0"
yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.1"
extsprintf@1.3.0:
version "1.3.0"
@@ -2807,18 +3168,10 @@ fd-slicer@~1.1.0:
dependencies:
pend "~1.2.0"
-figures@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
-figures@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
- integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
+figures@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
dependencies:
escape-string-regexp "^1.0.5"
@@ -2847,6 +3200,11 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
+flatpickr@^4.5.2:
+ version "4.6.9"
+ resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz#9a13383e8a6814bda5d232eae3fcdccb97dc1499"
+ integrity sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==
+
fn-name@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-3.0.0.tgz#0596707f635929634d791f452309ab41558e3c5c"
@@ -2888,6 +3246,11 @@ from@~0:
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
+fs-exists-sync@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
+ integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=
+
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -2897,7 +3260,7 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@^9.0.1:
+fs-extra@^9.0.1, fs-extra@^9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
@@ -2941,6 +3304,14 @@ get-intrinsic@^1.0.2:
has "^1.0.3"
has-symbols "^1.0.1"
+get-object@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c"
+ integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw=
+ dependencies:
+ is-number "^2.0.2"
+ isobject "^0.2.0"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -2953,7 +3324,7 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"
-get-stream@^5.0.0:
+get-stream@^5.0.0, get-stream@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
@@ -2965,6 +3336,13 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+get-value@^3.0.0, get-value@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
+ integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
+ dependencies:
+ isobject "^3.0.1"
+
getos@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
@@ -2998,12 +3376,12 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global-dirs@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
- integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
+global-dirs@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
+ integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==
dependencies:
- ini "1.3.7"
+ ini "2.0.0"
globals@^11.1.0:
version "11.12.0"
@@ -3034,6 +3412,35 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+gulp-header@^1.7.1:
+ version "1.8.12"
+ resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
+ integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
+ dependencies:
+ concat-with-sourcemaps "*"
+ lodash.template "^4.4.0"
+ through2 "^2.0.0"
+
+handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9"
+ integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw==
+ dependencies:
+ kind-of "^6.0.0"
+ typeof-article "^0.1.1"
+
+handlebars@^4.7.6, handlebars@^4.7.7:
+ version "4.7.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+ integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.0"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -3052,13 +3459,6 @@ harmony-reflect@^1.4.6:
resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9"
integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
- dependencies:
- ansi-regex "^2.0.0"
-
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -3092,6 +3492,14 @@ has-value@^1.0.0:
has-values "^1.0.0"
isobject "^3.0.0"
+has-value@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
+ integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
+ dependencies:
+ get-value "^3.0.0"
+ has-values "^2.0.1"
+
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
@@ -3105,6 +3513,13 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
+has-values@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
+ integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
+ dependencies:
+ kind-of "^6.0.2"
+
has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -3117,6 +3532,39 @@ hash-sum@^2.0.0:
resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
+helper-date@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb"
+ integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w==
+ dependencies:
+ date.js "^0.3.1"
+ handlebars-utils "^1.0.4"
+ moment "^2.18.1"
+
+helper-markdown@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10"
+ integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA==
+ dependencies:
+ handlebars-utils "^1.0.2"
+ highlight.js "^9.12.0"
+ remarkable "^1.7.1"
+
+helper-md@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f"
+ integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8=
+ dependencies:
+ ent "^2.2.0"
+ extend-shallow "^2.0.1"
+ fs-exists-sync "^0.1.0"
+ remarkable "^1.6.2"
+
+highlight.js@^9.12.0:
+ version "9.18.5"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
+ integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -3134,6 +3582,14 @@ html-escaper@^2.0.0:
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+html-tag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed"
+ integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g==
+ dependencies:
+ is-self-closing "^1.0.1"
+ kind-of "^6.0.0"
+
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
@@ -3188,11 +3644,6 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-indent-string@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
- integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
-
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
@@ -3206,15 +3657,15 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
+inherits@2, inherits@^2.0.4, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-ini@1.3.7:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
- integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+ integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
is-accessor-descriptor@^0.1.6:
version "0.1.6"
@@ -3247,6 +3698,13 @@ is-ci@^2.0.0:
dependencies:
ci-info "^2.0.0"
+is-ci@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
+ integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
+ dependencies:
+ ci-info "^3.2.0"
+
is-core-module@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
@@ -3291,6 +3749,13 @@ is-docker@^2.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
+is-even@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06"
+ integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY=
+ dependencies:
+ is-odd "^0.1.2"
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -3308,18 +3773,6 @@ is-extglob@^2.1.1:
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
@@ -3337,13 +3790,20 @@ is-glob@^4.0.1:
dependencies:
is-extglob "^2.1.1"
-is-installed-globally@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
- integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
+is-installed-globally@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
+ integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
dependencies:
- global-dirs "^2.0.1"
- is-path-inside "^3.0.1"
+ global-dirs "^3.0.0"
+ is-path-inside "^3.0.2"
+
+is-number@^2.0.2:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+ dependencies:
+ kind-of "^3.0.2"
is-number@^3.0.0:
version "3.0.0"
@@ -3357,14 +3817,14 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-observable@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
- integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
+is-odd@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
+ integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
dependencies:
- symbol-observable "^1.1.0"
+ is-number "^3.0.0"
-is-path-inside@^3.0.1:
+is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
@@ -3386,10 +3846,12 @@ is-potential-custom-element-name@^1.0.0:
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
-is-promise@^2.1.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
- integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
+is-self-closing@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
+ integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
+ dependencies:
+ self-closing-tags "^1.0.1"
is-stream@^1.1.0:
version "1.1.0"
@@ -3433,6 +3895,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+isobject@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e"
+ integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4=
+
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@@ -3988,7 +4455,7 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -4002,12 +4469,12 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
-kind-of@^5.0.0:
+kind-of@^5.0.0, kind-of@^5.0.2:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-kind-of@^6.0.0, kind-of@^6.0.2:
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@@ -4040,49 +4507,19 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-listr-silent-renderer@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
- integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
-
-listr-update-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
- integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
+listr2@^3.8.3:
+ version "3.13.3"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.3.tgz#d8f6095c9371b382c9b1c2bc33c5941d8e177f11"
+ integrity sha512-VqAgN+XVfyaEjSaFewGPcDs5/3hBbWVaX1VgWv2f52MF7US45JuARlArULctiB44IIcEk3JF7GtoFCLqEdeuPA==
dependencies:
- chalk "^1.1.3"
- cli-truncate "^0.2.1"
- elegant-spinner "^1.0.1"
- figures "^1.7.0"
- indent-string "^3.0.0"
- log-symbols "^1.0.2"
- log-update "^2.3.0"
- strip-ansi "^3.0.1"
-
-listr-verbose-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
- integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
- dependencies:
- chalk "^2.4.1"
- cli-cursor "^2.1.0"
- date-fns "^1.27.2"
- figures "^2.0.0"
-
-listr@^0.14.3:
- version "0.14.3"
- resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
- integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
- dependencies:
- "@samverschueren/stream-to-observable" "^0.3.0"
- is-observable "^1.1.0"
- is-promise "^2.1.0"
- is-stream "^1.1.0"
- listr-silent-renderer "^1.1.1"
- listr-update-renderer "^0.5.0"
- listr-verbose-renderer "^0.5.0"
- p-map "^2.0.0"
- rxjs "^6.3.3"
+ cli-truncate "^2.1.0"
+ clone "^2.1.2"
+ colorette "^2.0.16"
+ log-update "^4.0.0"
+ p-map "^4.0.0"
+ rxjs "^7.4.0"
+ through "^2.3.8"
+ wrap-ansi "^7.0.0"
locate-path@^5.0.0:
version "5.0.0"
@@ -4096,6 +4533,11 @@ lodash-es@^4.17.11:
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+lodash._reinterpolate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -4106,18 +4548,26 @@ lodash.once@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
-lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0:
+lodash.template@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
+ integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+
+lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
- integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
- dependencies:
- chalk "^1.0.0"
-
log-symbols@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
@@ -4133,14 +4583,15 @@ log-symbols@^4.0.0:
chalk "^4.1.0"
is-unicode-supported "^0.1.0"
-log-update@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
- integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+log-update@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
+ integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
dependencies:
- ansi-escapes "^3.0.0"
- cli-cursor "^2.0.0"
- wrap-ansi "^3.0.1"
+ ansi-escapes "^4.3.0"
+ cli-cursor "^3.1.0"
+ slice-ansi "^4.0.0"
+ wrap-ansi "^6.2.0"
lru-cache@^6.0.0:
version "6.0.0"
@@ -4207,7 +4658,7 @@ methods@^1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^3.1.4:
+micromatch@^3.1.4, micromatch@^3.1.5:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -4246,11 +4697,6 @@ mime-types@^2.1.12, mime-types@~2.1.19:
dependencies:
mime-db "1.46.0"
-mimic-fn@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
- integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
@@ -4281,14 +4727,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5.4:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
- integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
- dependencies:
- minimist "^1.2.5"
-
-moment@^2.27.0:
+moment@^2.18.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -4345,6 +4784,11 @@ ncp@^2.0.0:
resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
+neo-async@^2.6.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -4423,11 +4867,6 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
nwsapi@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
@@ -4488,18 +4927,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
- integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=
-
-onetime@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
- dependencies:
- mimic-fn "^1.0.0"
-
onetime@^5.1.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
@@ -4553,10 +4980,12 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
-p-map@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
- integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
p-try@^2.0.0:
version "2.2.0"
@@ -4685,7 +5114,7 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-pretty-bytes@^5.4.1:
+pretty-bytes@^5.6.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
@@ -4718,6 +5147,11 @@ property-expr@^2.0.2:
resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910"
integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg==
+proxy-from-env@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
+ integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=
+
ps-tree@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
@@ -4763,11 +5197,6 @@ queue-microtask@^1.2.2:
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-ramda@~0.26.1:
- version "0.26.1"
- resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
- integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
-
react-is@^17.0.1:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
@@ -4792,7 +5221,7 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
-readable-stream@^2.2.2:
+readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -4845,6 +5274,16 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexparam@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c"
+ integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==
+
+regexparam@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
+ integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
+
regexpu-core@^4.7.1:
version "4.7.1"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
@@ -4869,6 +5308,21 @@ regjsparser@^0.6.4:
dependencies:
jsesc "~0.5.0"
+relative@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
+ integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
+ dependencies:
+ isobject "^2.0.0"
+
+remarkable@^1.6.2, remarkable@^1.7.1:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
+ integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
+ dependencies:
+ argparse "^1.0.10"
+ autolinker "~0.28.0"
+
remixicon@2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/remixicon/-/remixicon-2.5.0.tgz#b5e245894a1550aa23793f95daceadbf96ad1a41"
@@ -4983,20 +5437,12 @@ resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.19.0:
is-core-module "^2.2.0"
path-parse "^1.0.6"
-restore-cursor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
- integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
dependencies:
- exit-hook "^1.0.0"
- onetime "^1.0.0"
-
-restore-cursor@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
- dependencies:
- onetime "^2.0.0"
+ onetime "^5.1.0"
signal-exit "^3.0.2"
ret@~0.1.10:
@@ -5053,13 +5499,20 @@ run-parallel@^1.1.9:
dependencies:
queue-microtask "^1.2.2"
-rxjs@^6.3.3, rxjs@^6.6.3:
+rxjs@^6.6.3:
version "6.6.7"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
dependencies:
tslib "^1.9.0"
+rxjs@^7.4.0:
+ version "7.4.0"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68"
+ integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==
+ dependencies:
+ tslib "~2.1.0"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -5104,6 +5557,11 @@ saxes@^5.0.1:
dependencies:
xmlchars "^2.2.0"
+self-closing-tags@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d"
+ integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==
+
"semver@2 || 3 || 4 || 5", semver@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -5177,6 +5635,13 @@ shortid@2.2.15:
dependencies:
nanoid "^2.1.0"
+shortid@^2.2.15:
+ version "2.2.16"
+ resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
+ integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
+ dependencies:
+ nanoid "^2.1.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
@@ -5192,10 +5657,23 @@ slash@^3.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
- integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+slice-ansi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
+ integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
+slice-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+ integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
snapdragon-node@^2.0.1:
version "2.1.1"
@@ -5392,23 +5870,6 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-string-width@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
string-width@^4.1.0, string-width@^4.2.0:
version "4.2.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
@@ -5425,20 +5886,6 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
strip-ansi@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
@@ -5468,10 +5915,10 @@ strip-indent@^3.0.0:
dependencies:
min-indent "^1.0.0"
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
- integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+striptags@^3.1.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
+ integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
supports-color@^5.3.0:
version "5.5.0"
@@ -5480,13 +5927,20 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0:
+supports-color@^7.0.0, supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
has-flag "^4.0.0"
+supports-color@^8.1.1:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
supports-hyperlinks@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
@@ -5495,11 +5949,25 @@ supports-hyperlinks@^2.0.0:
has-flag "^4.0.0"
supports-color "^7.0.0"
+svelte-apexcharts@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/svelte-apexcharts/-/svelte-apexcharts-1.0.2.tgz#4e000f8b8f7c901c05658c845457dfc8314d54c1"
+ integrity sha512-6qlx4rE+XsonZ0FZudfwqOQ34Pq+3wpxgAD75zgEmGoYhYBJcwmikTuTf3o8ZBsZue9U/pAwhNy3ed1Bkq1gmA==
+ dependencies:
+ apexcharts "^3.19.2"
+
svelte-dnd-action@^0.9.8:
version "0.9.8"
resolved "https://registry.yarnpkg.com/svelte-dnd-action/-/svelte-dnd-action-0.9.8.tgz#d8e6813aba64148b38ac65ec5df7b153568b5cfa"
integrity sha512-EWzxSpgNRkD6t8oHWcY4hqMoDJ16nkeFTza3V5K1r8GDqCJwK32zhpNv9ETDwfQiy2V2bJJMrH7io9xdlkYadg==
+svelte-flatpickr@^3.1.0, svelte-flatpickr@^3.2.3:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/svelte-flatpickr/-/svelte-flatpickr-3.2.4.tgz#1824e26a5dc151d14906cfc7dfd100aefd1b072d"
+ integrity sha512-EE2wbFfpZ3iCBOXRRW52w436Jv5lqFoJkd/1vB8XmkfASJgF9HrrZ6Er11NWSmmpaV1nPywwDYFXdWHCB+Wi9Q==
+ dependencies:
+ flatpickr "^4.5.2"
+
svelte-hmr@^0.13.3:
version "0.13.3"
resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.13.3.tgz#fba5739b477ea44caf70e542a24a4352bee2b897"
@@ -5522,15 +5990,77 @@ svelte-portal@0.1.0:
resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-0.1.0.tgz#cc2821cc84b05ed5814e0218dcdfcbebc53c1742"
integrity sha512-kef+ksXVKun224mRxat+DdO4C+cGHla+fEcZfnBAvoZocwiaceOfhf5azHYOPXSSB1igWVFTEOF3CDENPnuWxg==
+svelte-portal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3"
+ integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q==
+
+svelte-spa-router@^3.0.5:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee"
+ integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==
+ dependencies:
+ regexparam "2.0.0"
+
svelte@^3.38.2:
version "3.38.2"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.38.2.tgz#55e5c681f793ae349b5cc2fe58e5782af4275ef5"
integrity sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==
-symbol-observable@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
- integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+svg.draggable.js@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba"
+ integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==
+ dependencies:
+ svg.js "^2.0.1"
+
+svg.easing.js@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12"
+ integrity sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=
+ dependencies:
+ svg.js ">=2.3.x"
+
+svg.filter.js@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203"
+ integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=
+ dependencies:
+ svg.js "^2.2.5"
+
+svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d"
+ integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==
+
+svg.pathmorphing.js@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65"
+ integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==
+ dependencies:
+ svg.js "^2.4.0"
+
+svg.resize.js@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332"
+ integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==
+ dependencies:
+ svg.js "^2.6.5"
+ svg.select.js "^2.1.2"
+
+svg.select.js@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73"
+ integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==
+ dependencies:
+ svg.js "^2.2.5"
+
+svg.select.js@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917"
+ integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==
+ dependencies:
+ svg.js "^2.6.5"
symbol-tree@^3.2.4:
version "3.2.4"
@@ -5569,7 +6099,15 @@ throttleit@^1.0.0:
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-through@2, through@~2.3, through@~2.3.1:
+through2@^2.0.0:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+through@2, through@^2.3.8, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@@ -5591,6 +6129,11 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+to-gfm-code-block@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
+ integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
+
to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
@@ -5657,6 +6200,11 @@ tslib@^1.9.0, tslib@^1.9.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+tslib@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+ integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -5703,10 +6251,17 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+typeof-article@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
+ integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
+ dependencies:
+ kind-of "^3.1.0"
+
+uglify-js@^3.1.4:
+ version "3.14.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
+ integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
@@ -5811,7 +6366,7 @@ uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-uuid@^8.3.0:
+uuid@^8.3.0, uuid@^8.3.2:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
@@ -5854,6 +6409,11 @@ vite@^2.1.5:
optionalDependencies:
fsevents "~2.3.1"
+vm2@^3.9.4:
+ version "3.9.5"
+ resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
+ integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
+
w3c-hr-time@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
@@ -5941,13 +6501,10 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-wrap-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
- integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
- dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
wrap-ansi@^6.2.0:
version "6.2.0"
@@ -5958,6 +6515,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -5988,6 +6554,11 @@ xmlchars@^2.2.0:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
y18n@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
@@ -6036,6 +6607,11 @@ yauzl@^2.10.0:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
+year@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
+ integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
+
yup@0.29.2:
version "0.29.2"
resolved "https://registry.yarnpkg.com/yup/-/yup-0.29.2.tgz#5302abd9024cca335b987793f8df868e410b7b67"
From 348c4ed75b23ed55e20cb714a953dd430568f6c5 Mon Sep 17 00:00:00 2001
From: Mitch-Budibase
Date: Mon, 15 Nov 2021 15:40:48 +0000
Subject: [PATCH 0002/1026] Update commands.js
A few formatting based changes for this file
---
packages/builder/cypress/support/commands.js | 194 +++++++++++--------
1 file changed, 113 insertions(+), 81 deletions(-)
diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js
index 1004f84c39..799e252357 100644
--- a/packages/builder/cypress/support/commands.js
+++ b/packages/builder/cypress/support/commands.js
@@ -35,11 +35,13 @@ Cypress.Commands.add("login", () => {
Cypress.Commands.add("createApp", name => {
cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
cy.wait(500)
- cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`).its('body').then((body) => {
- if( body.length > 0) {
- cy.get(".spectrum-Button").contains("Create app").click({ force: true })
- }
- })
+ cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ .its("body")
+ .then(body => {
+ if (body.length > 0) {
+ cy.get(".spectrum-Button").contains("Create app").click({ force: true })
+ }
+ })
cy.contains(/Start from scratch/).dblclick()
cy.get(".spectrum-Modal").within(() => {
cy.get("input").eq(0).type(name).should("have.value", name).blur()
@@ -53,48 +55,55 @@ Cypress.Commands.add("deleteApp", name => {
cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
cy.wait(2000)
cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
- .its("body")
- .then(val => {
- if (val.length > 0) {
- cy.searchForApplication(name)
- cy.get(".appGrid").children().within(() => {
- cy.get(".title").children().within(() => {
- cy.get(".spectrum-Icon").click()
+ .its("body")
+ .then(val => {
+ if (val.length > 0) {
+ cy.searchForApplication(name)
+ cy.get(".appGrid")
+ .children()
+ .within(() => {
+ cy.get(".title")
+ .children()
+ .within(() => {
+ cy.get(".spectrum-Icon").click()
+ })
+ })
+ cy.get(".spectrum-Menu").contains("Delete").click()
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get("input").type(name)
})
- })
- cy.get(".spectrum-Menu").contains("Delete").click()
- cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get("input").type(name)
- })
- cy.get(".spectrum-Button--warning").click()
- }
- else {
- return
- }
- })
- })
+ cy.get(".spectrum-Button--warning").click()
+ } else {
+ return
+ }
+ })
+})
Cypress.Commands.add("deleteAllApps", () => {
cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
cy.wait(500)
cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
- .its("body")
- .then(val => {
- for (let i = 0; i < val.length; i++) {
- cy.get(".spectrum-Heading").eq(1).then((app) => {
- const name = app.text()
- cy.get(".title").children().within(() => {
- cy.get(".spectrum-Icon").eq(0).click()
- })
- cy.get(".spectrum-Menu").contains("Delete").click()
- cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get("input").type(name)
- cy.get(".spectrum-Button--warning").click()
- })
- cy.reload()
- })
- }
- })
+ .its("body")
+ .then(val => {
+ for (let i = 0; i < val.length; i++) {
+ cy.get(".spectrum-Heading")
+ .eq(1)
+ .then(app => {
+ const name = app.text()
+ cy.get(".title")
+ .children()
+ .within(() => {
+ cy.get(".spectrum-Icon").eq(0).click()
+ })
+ cy.get(".spectrum-Menu").contains("Delete").click()
+ cy.get(".spectrum-Dialog-grid").within(() => {
+ cy.get("input").type(name)
+ cy.get(".spectrum-Button--warning").click()
+ })
+ cy.reload()
+ })
+ }
+ })
})
Cypress.Commands.add("createTestApp", () => {
@@ -114,9 +123,12 @@ Cypress.Commands.add("createTable", (tableName, initialTable) => {
cy.get(".add-button").click()
}
cy.wait(7000)
- cy.get(".spectrum-Modal").contains("Budibase DB").click().then(() => {
- cy.get(".spectrum-Button").contains("Continue").click({ force: true })
- })
+ cy.get(".spectrum-Modal")
+ .contains("Budibase DB")
+ .click()
+ .then(() => {
+ cy.get(".spectrum-Button").contains("Continue").click({ force: true })
+ })
cy.get(".spectrum-Modal").within(() => {
cy.wait(1000)
cy.get("input").first().type(tableName).blur()
@@ -280,7 +292,7 @@ Cypress.Commands.add("searchForApplication", appName => {
cy.get(".filter").then(() => {
cy.get(".spectrum-Textfield").within(() => {
cy.get("input").eq(0).type(appName)
- })
+ })
})
// Confirms app exists after search
cy.get(".appGrid").contains(appName)
@@ -290,7 +302,7 @@ Cypress.Commands.add("selectExternalDatasource", datasourceName => {
// Navigates to Data Section
cy.navigateToDataSection()
// Open Data Source modal
- cy.get('.nav').within(() => {
+ cy.get(".nav").within(() => {
cy.get(".add-button").click()
})
// Clicks specified datasource & continue
@@ -306,55 +318,73 @@ Cypress.Commands.add("addSqlDatasourceConfig", (sqlType, noFetch) => {
// Host IP Address
cy.wait(500)
cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get(".form-row").contains("Host").parent().children().within(() => {
- cy.get(".spectrum-Textfield").within(() => {
- cy.get("input").clear().type("3.251.63.170")
+ cy.get(".form-row")
+ .contains("Host")
+ .parent()
+ .children()
+ .within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ cy.get("input").clear().type("3.251.63.170")
+ })
})
- })
})
// Database Name
cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get(".form-row").contains("Database").parent().children().within(() => {
- cy.get(".spectrum-Textfield").within(() => {
- if (sqlType == "PostgreSQL") {
- cy.get("input").clear().type("test")
- }
- if (sqlType == "MySQL") {
- cy.get("input").clear().type("mysql")
- }
+ cy.get(".form-row")
+ .contains("Database")
+ .parent()
+ .children()
+ .within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ if (sqlType == "PostgreSQL") {
+ cy.get("input").clear().type("test")
+ }
+ if (sqlType == "MySQL") {
+ cy.get("input").clear().type("mysql")
+ }
+ })
})
- })
})
- // User
+ // User
cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get(".form-row").contains("User").parent().children().within(() => {
- cy.get(".spectrum-Textfield").within(() => {
- if (sqlType == "PostgreSQL") {
- cy.get("input").clear().type("admin")
- }
- if (sqlType == "MySQL") {
- cy.get("input").clear().type("root")
- }
+ cy.get(".form-row")
+ .contains("User")
+ .parent()
+ .children()
+ .within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ if (sqlType == "PostgreSQL") {
+ cy.get("input").clear().type("admin")
+ }
+ if (sqlType == "MySQL") {
+ cy.get("input").clear().type("root")
+ }
+ })
})
- })
})
// Password
cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get(".form-row").contains("Password").parent().children().within(() => {
- cy.get(".spectrum-Textfield").within(() => {
- if (sqlType == "PostgreSQL") {
- cy.get("input").clear().type("8cb2b6f4-4b33-4e86-b790-74eee608a4e9")
- }
- if (sqlType == "MySQL") {
- cy.get("input").clear().type("abdc321d-4d21-4fc7-8d20-f40ab9fe6db0")
- }
+ cy.get(".form-row")
+ .contains("Password")
+ .parent()
+ .children()
+ .within(() => {
+ cy.get(".spectrum-Textfield").within(() => {
+ if (sqlType == "PostgreSQL") {
+ cy.get("input").clear().type("8cb2b6f4-4b33-4e86-b790-74eee608a4e9")
+ }
+ if (sqlType == "MySQL") {
+ cy.get("input").clear().type("abdc321d-4d21-4fc7-8d20-f40ab9fe6db0")
+ }
+ })
})
- })
})
// Click to fetch tables
- if (!noFetch){
+ if (!noFetch) {
cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get(".spectrum-Button").contains("Fetch tables from database").click({ force: true })
+ cy.get(".spectrum-Button")
+ .contains("Fetch tables from database")
+ .click({ force: true })
cy.wait(1000)
})
}
@@ -370,7 +400,9 @@ Cypress.Commands.add("addRestDatasourceConfig", restUrl => {
})
// Click Save and continue to query
cy.get(".spectrum-Dialog-grid").within(() => {
- cy.get(".spectrum-Button").contains("Save and continue to query").click({ force: true })
+ cy.get(".spectrum-Button")
+ .contains("Save and continue to query")
+ .click({ force: true })
cy.wait(500)
})
})
From 7ba79a8982f28269c353f28fcc54f06b55742e70 Mon Sep 17 00:00:00 2001
From: Mitch-Budibase
Date: Thu, 18 Nov 2021 13:47:41 +0000
Subject: [PATCH 0003/1026] Env variables & data files
Changes as per PR
-Created files for transformer queries - tests updated accordingly
-Updates for Env variables and usage
-Changes surrounding App Rename testing
---
packages/builder/cypress.json | 6 +-
.../cypress/integration/createApp.spec.js | 2 +-
.../integration/createUserAndRoles.spec.js | 11 +--
...addAndConfigureExternalDataSources.spec.js | 47 ++++++------
.../queryLevelTransformers.spec.js | 74 +++++--------------
.../integration/renameAnApplication.spec.js | 43 ++++++++---
packages/builder/cypress/support/commands.js | 16 ++--
.../support/queryLevelTransformerFunction.js | 11 +++
.../queryLevelTransformerFunctionWithData.js | 27 +++++++
9 files changed, 134 insertions(+), 103 deletions(-)
create mode 100644 packages/builder/cypress/support/queryLevelTransformerFunction.js
create mode 100644 packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js
diff --git a/packages/builder/cypress.json b/packages/builder/cypress.json
index 0908f2c839..647fcd04b6 100644
--- a/packages/builder/cypress.json
+++ b/packages/builder/cypress.json
@@ -1,9 +1,11 @@
{
- "baseUrl": "http://localhost:10001/builder/",
+ "baseUrl": "http://localhost:10001",
"video": true,
"projectId": "bmbemn",
"env": {
"PORT": "10001",
- "JWT_SECRET": "test"
+ "JWT_SECRET": "test",
+ "HOST_IP": "",
+ "TEST_ENV" : true
}
}
diff --git a/packages/builder/cypress/integration/createApp.spec.js b/packages/builder/cypress/integration/createApp.spec.js
index 34f152b540..d5d56d1ddc 100644
--- a/packages/builder/cypress/integration/createApp.spec.js
+++ b/packages/builder/cypress/integration/createApp.spec.js
@@ -2,7 +2,7 @@ context("Create an Application", () => {
it("should create a new application", () => {
cy.login()
cy.createTestApp()
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.contains("Cypress Tests").should("exist")
})
})
diff --git a/packages/builder/cypress/integration/createUserAndRoles.spec.js b/packages/builder/cypress/integration/createUserAndRoles.spec.js
index 55dbbb3c4d..0c8c32b224 100644
--- a/packages/builder/cypress/integration/createUserAndRoles.spec.js
+++ b/packages/builder/cypress/integration/createUserAndRoles.spec.js
@@ -19,7 +19,7 @@ context("Create a User and Assign Roles", () => {
it("should assign role types", () => {
// 3 apps minimum required - to assign an app to each role type
- cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
.its("body")
.then(val => {
if (val.length < 3) {
@@ -31,7 +31,7 @@ context("Create a User and Assign Roles", () => {
}
})
// Navigate back to the user
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.wait(1000)
cy.get(".spectrum-SideNav").contains("Users").click()
cy.get(".spectrum-Table").contains("bbuser").click()
@@ -54,6 +54,7 @@ context("Create a User and Assign Roles", () => {
})
}
// Confirm roles exist within Configure roles table
+ cy.wait(500)
cy.get(".spectrum-Table-body").eq(0).within((assginedRoles) => {
expect(assginedRoles).to.contain("Admin")
expect(assginedRoles).to.contain("Power")
@@ -83,11 +84,12 @@ context("Create a User and Assign Roles", () => {
it("should enable Developer access", () => {
// Enable Developer access
cy.get(".field").eq(4).within(() => {
- cy.get(".spectrum-Form-item").click()
+ cy.get(".spectrum-Switch-input").click({ force: true })
})
// No Access table should now be empty
cy.get(".container").contains("No Access").parent().within(() => {
cy.get(".spectrum-Table").contains("No rows found")
+ })
// Each app within Configure roles should have Admin access
cy.get(".spectrum-Table-body").eq(0).find('tr').its('length').then((len) => {
@@ -97,12 +99,11 @@ context("Create a User and Assign Roles", () => {
}
})
})
-})
it("should disable Developer access", () => {
// Disable Developer access
cy.get(".field").eq(4).within(() => {
- cy.get(".spectrum-Form-item").click()
+ cy.get(".spectrum-Switch-input").click({ force: true })
})
// Configure roles table should now be empty
cy.get(".container").contains("Configure roles").parent().within(() => {
diff --git a/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js b/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js
index f07ed5d4d9..149c55b02f 100644
--- a/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js
+++ b/packages/builder/cypress/integration/datasources/addAndConfigureExternalDataSources.spec.js
@@ -1,32 +1,35 @@
context("Add and Configure External Data Sources", () => {
before(() => {
- cy.login()
- cy.createTestApp()
+ cy.login()
+ cy.createTestApp()
})
- it("should add and configure a PostgreSQL data source", () => {
- // Select PostgreSQL datasource and add config
- const datasource = "PostgreSQL"
- cy.selectExternalDatasource(datasource)
- cy.addSqlDatasourceConfig(datasource)
-
- // Confirm fetch tables was successful
- cy.get(".query-list").then(() => {
- cy.get(".query-list-item").should('exist')
+ // PostgreSQL/MySQL tests currently only run in TEST environment
+ if (Cypress.env("TEST_ENV")) {
+ it("should add and configure a PostgreSQL data source", () => {
+ // Select PostgreSQL datasource and add config
+ const datasource = "PostgreSQL"
+ cy.selectExternalDatasource(datasource)
+ cy.addSqlDatasourceConfig(datasource)
+
+ // Confirm fetch tables was successful
+ cy.get(".query-list").then(() => {
+ cy.get(".query-list-item").should('exist')
+ })
})
- })
-
- it("should add and configure a MySQL data source", () => {
- // Select MySQL datasource and add config
- const datasource = "MySQL"
- cy.selectExternalDatasource(datasource)
- cy.addSqlDatasourceConfig(datasource)
- // Confirm fetch tables was successful
- cy.get(".query-list").then(() => {
- cy.get(".query-list-item").should('exist')
+ it("should add and configure a MySQL data source", () => {
+ // Select MySQL datasource and add config
+ const datasource = "MySQL"
+ cy.selectExternalDatasource(datasource)
+ cy.addSqlDatasourceConfig(datasource)
+
+ // Confirm fetch tables was successful
+ cy.get(".query-list").then(() => {
+ cy.get(".query-list-item").should('exist')
+ })
})
- })
+ }
it("should add and configure a REST data source", () => {
// Select REST datasource and add config
diff --git a/packages/builder/cypress/integration/queryLevelTransformers.spec.js b/packages/builder/cypress/integration/queryLevelTransformers.spec.js
index d34c2740a5..23accece79 100644
--- a/packages/builder/cypress/integration/queryLevelTransformers.spec.js
+++ b/packages/builder/cypress/integration/queryLevelTransformers.spec.js
@@ -13,7 +13,15 @@ context("Query Level Transformers", () => {
// Add Query
cy.get(".spectrum-Button").contains("Add Query").click({ force: true })
cy.wait(500)
- addTransformerQuery()
+
+ // Get Transformer Function from file
+ cy.readFile("cypress/support/queryLevelTransformerFunction.js").then((transformerFunction) => {
+ console.log(transformerFunction[1])
+ cy.get(".CodeMirror textarea")
+ // Highlight current text and overwrite with file contents
+ .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true })
+ .type(transformerFunction, { parseSpecialCharSequences: false })
+ })
// Run Query
cy.get(".spectrum-Button").contains("Run Query").click({ force: true })
cy.wait(500)
@@ -30,7 +38,14 @@ context("Query Level Transformers", () => {
// Add Query
cy.get(".spectrum-Button").contains("Add Query").click({ force: true })
cy.wait(500)
- addTransformerQuery(true)
+ // Get Transformer Function with Data from file
+ cy.readFile("cypress/support/queryLevelTransformerFunctionWithData.js").then((transformerFunction) => {
+ console.log(transformerFunction[1])
+ cy.get(".CodeMirror textarea")
+ // Highlight current text and overwrite with file contents
+ .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true })
+ .type(transformerFunction, { parseSpecialCharSequences: false })
+ })
// Run Query
cy.get(".spectrum-Button").contains("Run Query").click({ force: true })
cy.wait(500)
@@ -43,7 +58,7 @@ context("Query Level Transformers", () => {
it("should run an invalid query via POST request", () => {
// POST request with transformer as null
cy.request({method: 'POST',
- url: 'https://test.budi.live/api/queries/',
+ url: `${Cypress.config().baseUrl}/api/queries/`,
body: {fields : {"headers":{},"queryString":null,"path":null},
parameters : [],
schema : {},
@@ -61,7 +76,7 @@ context("Query Level Transformers", () => {
it("should run an empty query", () => {
// POST request with Transformer as an empty string
cy.request({method: 'POST',
- url: 'https://test.budi.live/api/queries/preview',
+ url: `${Cypress.config().baseUrl}/api/queries/preview`,
body: {fields : {"headers":{},"queryString":null,"path":null},
queryVerb : "read",
transformer : "",
@@ -70,55 +85,6 @@ context("Query Level Transformers", () => {
failOnStatusCode: false}).then((response) => {
expect(response.status).to.equal(400)
expect(response.body.message).to.include('Invalid body - "transformer" is not allowed to be empty')
+ })
})
})
-
- const addTransformerQuery = (addData = false) => {
- // Adds query within the Transformer section of Query REST API
- cy.get(".CodeMirror textarea")
- // Highlight current text within CodeMirror
- .type(Cypress.platform === 'darwin' ? '{cmd}a' : '{ctrl}a', { force: true })
- // Overwrite current text with function
- .type("const breweries = data\n" +
- "const totals = {}\n" +
- "for (let brewery of breweries) {")
- // Delete key in place to remove extra brackets that are added
- .type('{del}')
- .type("\n const state = brewery.state\n" +
- " if (totals[state] == null) {")
- .type('{del}')
- .type("\n totals[state] = 1\n" +
- "} else {")
- .type('{del}')
- .type("\n totals[state]++\n" +
- "}}\n", { parseSpecialCharSequences: false })
-
- if (addData) {
- cy.get(".CodeMirror textarea")
- .type('const stateCodes = {"texas":"tx",\n' +
- '"colorado":"co",\n' +
- '"florida":"fl",\n' +
- '"iwoa":"ia",\n' +
- '"louisiana":"la",\n' +
- '"california":"ca",\n' +
- '"pennsylvania":"pa",\n' +
- '"georgia":"ga",\n' +
- '"new hampshire":"nh",\n' +
- '"virginia":"va",\n' +
- '"michigan":"mi",\n' +
- '"maryland":"md",\n' +
- '"ohio":"oh"}\n')
- .type('const entries = Object.entries(totals)\n' +
- "return entries.map(([state, count]) => \n" +
- "{ const stateCode = stateCodes[state.toLowerCase()]\n" +
- "return {state, count, flag: 'http://flags.ox3.in/svg/us/${stateCode}.svg'",
- { parseSpecialCharSequences: false })
- }
- else{
- cy.get(".CodeMirror textarea")
- .type("const entries = Object.entries(totals)\n" +
- "return entries.map(([state, count]) => ({state, count}))",
- { parseSpecialCharSequences: false })
- }
- }
-})
diff --git a/packages/builder/cypress/integration/renameAnApplication.spec.js b/packages/builder/cypress/integration/renameAnApplication.spec.js
index 95a152c017..968d00c349 100644
--- a/packages/builder/cypress/integration/renameAnApplication.spec.js
+++ b/packages/builder/cypress/integration/renameAnApplication.spec.js
@@ -5,17 +5,24 @@ context("Rename an App", () => {
})
it("should rename an unpublished application", () => {
+ const appName = "Cypress Tests"
const appRename = "Cypress Renamed"
// Rename app, Search for app, Confirm name was changed
cy.get(".home-logo").click()
- renameApp(appRename)
+ renameApp(appName, appRename)
+ cy.reload()
+ cy.wait(1000)
cy.searchForApplication(appRename)
cy.get(".appGrid").find(".wrapper").should("have.length", 1)
- cy.deleteApp(appRename)
+ // Set app name back to Cypress Tests
+ cy.reload()
+ cy.wait(1000)
+ renameApp(appRename, appName)
})
xit("Should rename a published application", () => {
// It is not possible to rename a published application
+ const appName = "Cypress Tests"
const appRename = "Cypress Renamed"
// Publish the app
cy.get(".toprightnav")
@@ -27,24 +34,28 @@ xit("Should rename a published application", () => {
})
// Rename app, Search for app, Confirm name was changed
cy.get(".home-logo").click()
- renameApp(appRename, true)
+ renameApp(appName, appRename, true)
cy.searchForApplication(appRename)
cy.get(".appGrid").find(".wrapper").should("have.length", 1)
})
it("Should try to rename an application to have no name", () => {
+ const appName = "Cypress Tests"
cy.get(".home-logo").click()
- renameApp(" ", false, true)
+ renameApp(appName, " ", false, true)
+ cy.wait(500)
// Close modal and confirm name has not been changed
cy.get(".spectrum-Dialog-grid").contains("Cancel").click()
- cy.searchForApplication("Cypress Tests")
+ cy.reload()
+ cy.wait(1000)
+ cy.searchForApplication(appName)
cy.get(".appGrid").find(".wrapper").should("have.length", 1)
})
xit("Should create two applications with the same name", () => {
// It is not possible to have applications with the same name
const appName = "Cypress Tests"
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.wait(500)
cy.get(".spectrum-Button").contains("Create app").click({force: true})
cy.contains(/Start from scratch/).click()
@@ -59,18 +70,28 @@ xit("Should create two applications with the same name", () => {
it("should validate application names", () => {
// App name must be letters, numbers and spaces only
// This test checks numbers and special characters specifically
+ const appName = "Cypress Tests"
const numberName = 12345
const specialCharName = "£$%^"
cy.get(".home-logo").click()
- renameApp(numberName)
+ renameApp(appName, numberName)
+ cy.reload()
+ cy.wait(1000)
cy.searchForApplication(numberName)
cy.get(".appGrid").find(".wrapper").should("have.length", 1)
- renameApp(specialCharName)
+ cy.reload()
+ cy.wait(1000)
+ renameApp(numberName, specialCharName)
cy.get(".error").should("have.text", "App name must be letters, numbers and spaces only")
+ // Set app name back to Cypress Tests
+ cy.reload()
+ cy.wait(1000)
+ renameApp(numberName, appName)
})
- const renameApp = (appName, published, noName) => {
- cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ const renameApp = (originalName, changedName, published, noName) => {
+ cy.searchForApplication(originalName)
+ cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
.its("body")
.then(val => {
if (val.length > 0) {
@@ -93,7 +114,7 @@ it("should validate application names", () => {
return cy
}
cy.get("input").clear()
- cy.get("input").eq(0).type(appName).should("have.value", appName).blur()
+ cy.get("input").eq(0).type(changedName).should("have.value", changedName).blur()
cy.get(".spectrum-ButtonGroup").contains("Save").click({force: true})
cy.wait(500)
})
diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js
index 799e252357..88a2965d0e 100644
--- a/packages/builder/cypress/support/commands.js
+++ b/packages/builder/cypress/support/commands.js
@@ -10,7 +10,7 @@ Cypress.on("uncaught:exception", () => {
})
Cypress.Commands.add("login", () => {
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.wait(2000)
cy.url().then(url => {
if (url.includes("builder/admin")) {
@@ -33,9 +33,9 @@ Cypress.Commands.add("login", () => {
})
Cypress.Commands.add("createApp", name => {
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.wait(500)
- cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
.its("body")
.then(body => {
if (body.length > 0) {
@@ -52,9 +52,9 @@ Cypress.Commands.add("createApp", name => {
})
Cypress.Commands.add("deleteApp", name => {
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.wait(2000)
- cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
.its("body")
.then(val => {
if (val.length > 0) {
@@ -80,9 +80,9 @@ Cypress.Commands.add("deleteApp", name => {
})
Cypress.Commands.add("deleteAllApps", () => {
- cy.visit(`localhost:${Cypress.env("PORT")}/builder`)
+ cy.visit(`${Cypress.config().baseUrl}/builder`)
cy.wait(500)
- cy.request(`localhost:${Cypress.env("PORT")}/api/applications?status=all`)
+ cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
.its("body")
.then(val => {
for (let i = 0; i < val.length; i++) {
@@ -324,7 +324,7 @@ Cypress.Commands.add("addSqlDatasourceConfig", (sqlType, noFetch) => {
.children()
.within(() => {
cy.get(".spectrum-Textfield").within(() => {
- cy.get("input").clear().type("3.251.63.170")
+ cy.get("input").clear().type(Cypress.env("HOST_IP"))
})
})
})
diff --git a/packages/builder/cypress/support/queryLevelTransformerFunction.js b/packages/builder/cypress/support/queryLevelTransformerFunction.js
new file mode 100644
index 0000000000..7a38a2bae1
--- /dev/null
+++ b/packages/builder/cypress/support/queryLevelTransformerFunction.js
@@ -0,0 +1,11 @@
+const breweries = data
+const totals = {}
+
+for (let brewery of breweries)
+ {const state = brewery.state
+ if (totals[state] == null)
+ {totals[state] = 1}
+ else
+ {totals[state]++}}
+const entries = Object.entries(totals)
+return entries.map(([state, count]) => ({state, count}))
\ No newline at end of file
diff --git a/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js b/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js
new file mode 100644
index 0000000000..29c240e9ef
--- /dev/null
+++ b/packages/builder/cypress/support/queryLevelTransformerFunctionWithData.js
@@ -0,0 +1,27 @@
+const breweries = data
+const totals = {}
+for (let brewery of breweries)
+ {const state = brewery.state
+ if (totals[state] == null)
+ {totals[state] = 1
+ } else
+ {totals[state]++
+ }}
+const stateCodes =
+{"texas":"tx",
+"colorado":"co",
+"florida":"fl",
+"iwoa":"ia",
+"louisiana":"la",
+"california":"ca",
+"pennsylvania":"pa",
+"georgia":"ga",
+"new hampshire":"nh",
+"virginia":"va",
+"michigan":"mi",
+"maryland":"md",
+"ohio":"oh"}
+const entries = Object.entries(totals)
+return entries.map(([state, count]) =>
+{const stateCode = stateCodes[state.toLowerCase()]
+ return {state, count, flag: 'http://flags.ox3.in/svg/us/${stateCode}.svg'}})
\ No newline at end of file
From f5e8c6f559b93367575f4a2bf1fa0ca5539a8a71 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Tue, 23 Nov 2021 18:20:12 +0000
Subject: [PATCH 0004/1026] Adding some basic UI around the key/value data
type.
---
.../DataTable/modals/CreateEditColumn.svelte | 16 +++
.../DataTable/modals/JSONSchemaModal.svelte | 97 +++++++++++++++++++
.../builder/src/constants/backend/index.js | 8 ++
3 files changed, 121 insertions(+)
create mode 100644 packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte
diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
index 841e781cf2..32a2d1f659 100644
--- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
@@ -9,6 +9,7 @@
DatePicker,
ModalContent,
Context,
+ Modal,
} from "@budibase/bbui"
import { createEventDispatcher } from "svelte"
import { cloneDeep } from "lodash/fp"
@@ -32,12 +33,14 @@
import ModalBindableInput from "components/common/bindings/ModalBindableInput.svelte"
import { getBindings } from "components/backend/DataTable/formula"
import { getContext } from "svelte"
+ import JSONSchemaModal from "./JSONSchemaModal.svelte"
const AUTO_TYPE = "auto"
const FORMULA_TYPE = FIELDS.FORMULA.type
const LINK_TYPE = FIELDS.LINK.type
const STRING_TYPE = FIELDS.STRING.type
const NUMBER_TYPE = FIELDS.NUMBER.type
+ const JSON_TYPE = FIELDS.JSON.type
const dispatch = createEventDispatcher()
const PROHIBITED_COLUMN_NAMES = ["type", "_id", "_rev", "tableId"]
@@ -63,6 +66,7 @@
let confirmDeleteDialog
let deletion
let deleteColName
+ let jsonSchemaModal
$: checkConstraints(field)
$: required = !!field?.constraints?.presence || primaryDisplay
@@ -83,6 +87,7 @@
// used to select what different options can be displayed for column type
$: canBeSearched =
field.type !== LINK_TYPE &&
+ field.type !== JSON_TYPE &&
field.subtype !== AUTO_COLUMN_SUB_TYPES.CREATED_BY &&
field.subtype !== AUTO_COLUMN_SUB_TYPES.UPDATED_BY &&
field.type !== FORMULA_TYPE
@@ -173,6 +178,10 @@
}
}
+ function openJsonSchemaEditor() {
+ jsonSchemaModal.show()
+ }
+
function confirmDelete() {
confirmDeleteDialog.show()
deletion = true
@@ -400,6 +409,10 @@
getOptionLabel={option => option[1].name}
getOptionValue={option => option[0]}
/>
+ {:else if field.type === JSON_TYPE}
+
{/if}
@@ -408,6 +421,9 @@
{/if}
+
+ console.log(detail)} />
+
+ import Editor from "../../../integration/QueryEditor.svelte"
+ import {
+ ModalContent,
+ Tabs,
+ Tab,
+ Button,
+ Input,
+ Select,
+ } from "@budibase/bbui"
+ import { onMount, createEventDispatcher } from "svelte"
+
+ export let onConfirm = undefined
+ export let schema = {}
+
+ let dispatcher = createEventDispatcher()
+ let mode = "Key/Value"
+ let json
+ let fieldCount = 0
+ let fieldKeys = {},
+ fieldTypes = {}
+ let keyValueOptions = ["String", "Number", "Boolean", "Object", "Array"]
+
+ $: invalid = false
+
+ function onJsonUpdate({ detail }) {
+ // TODO: make request
+ const input = detail.value
+ console.log(input)
+ }
+
+ function saveSchema() {
+ for (let i of Object.keys(fieldKeys)) {
+ const key = fieldKeys[i]
+ schema[key] = {
+ type: fieldTypes[i],
+ }
+ }
+ dispatcher("save", schema)
+ }
+
+ onMount(() => {
+ if (!schema) {
+ schema = {}
+ }
+ let i = 0
+ for (let [key, value] of Object.entries(schema)) {
+ fieldKeys[i] = key
+ fieldTypes[i] = value.type
+ i++
+ }
+ fieldCount = i
+ })
+
+
+
+
+
+ {#each Array(fieldCount) as _, i}
+
+
+
+ {/each}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/builder/src/constants/backend/index.js b/packages/builder/src/constants/backend/index.js
index a0aaa22963..b9cb572552 100644
--- a/packages/builder/src/constants/backend/index.js
+++ b/packages/builder/src/constants/backend/index.js
@@ -89,6 +89,14 @@ export const FIELDS = {
presence: false,
},
},
+ JSON: {
+ name: "Key/Value",
+ type: "json",
+ constraints: {
+ type: "object",
+ presence: false,
+ },
+ },
}
export const AUTO_COLUMN_SUB_TYPES = {
From f1b715e844e7f416f3d1521a261234cfbc6c5ee1 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Tue, 23 Nov 2021 18:38:05 +0000
Subject: [PATCH 0005/1026] Fixing warning.
---
.../components/backend/DataTable/modals/JSONSchemaModal.svelte | 1 -
1 file changed, 1 deletion(-)
diff --git a/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte b/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte
index 7ae2d6f013..055e8bf045 100644
--- a/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/JSONSchemaModal.svelte
@@ -10,7 +10,6 @@
} from "@budibase/bbui"
import { onMount, createEventDispatcher } from "svelte"
- export let onConfirm = undefined
export let schema = {}
let dispatcher = createEventDispatcher()
From 5695827f861e9eb61d7f54b0a04033dec864a96e Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Thu, 25 Nov 2021 10:29:09 +0100
Subject: [PATCH 0006/1026] auto app creation from template E2E, added warning
to automations that they can't run in dev
---
.../CreateAutomationModal.svelte | 13 +-
.../components/start/CreateAppModal.svelte | 15 +-
.../pages/builder/portal/apps/index.svelte | 71 +-
packages/builder/yarn.lock | 787 +-----------------
packages/server/scripts/qa/testScript.js | 46 +
packages/server/src/integrations/index.ts | 4 +-
packages/server/src/integrations/oracle.ts | 29 +-
packages/server/src/integrations/utils.ts | 8 +-
packages/server/yarn.lock | 787 +-----------------
9 files changed, 187 insertions(+), 1573 deletions(-)
create mode 100644 packages/server/scripts/qa/testScript.js
diff --git a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte
index cf3dc8f314..36723d7726 100644
--- a/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte
+++ b/packages/builder/src/components/automation/AutomationPanel/CreateAutomationModal.svelte
@@ -3,7 +3,14 @@
import { database } from "stores/backend"
import { automationStore } from "builderStore"
import { notifications } from "@budibase/bbui"
- import { Input, ModalContent, Layout, Body, Icon } from "@budibase/bbui"
+ import {
+ Input,
+ InlineAlert,
+ ModalContent,
+ Layout,
+ Body,
+ Icon,
+ } from "@budibase/bbui"
import analytics, { Events } from "analytics"
let name
@@ -56,6 +63,10 @@
onConfirm={createAutomation}
disabled={!selectedTrigger || !name}
>
+
Please name your automation, then select a trigger. Every automation must
start with a trigger.
diff --git a/packages/builder/src/components/start/CreateAppModal.svelte b/packages/builder/src/components/start/CreateAppModal.svelte
index 68845e075b..75df17e532 100644
--- a/packages/builder/src/components/start/CreateAppModal.svelte
+++ b/packages/builder/src/components/start/CreateAppModal.svelte
@@ -83,12 +83,11 @@
}
async function createNewApp() {
- const letTemplateToUse =
- Object.keys(template).length === 0 ? null : template
+ const templateToUse = Object.keys(template).length === 0 ? null : template
submitting = true
// Check a template exists if we are important
- if (letTemplateToUse?.fromFile && !$values.file) {
+ if (templateToUse?.fromFile && !$values.file) {
$errors.file = "Please choose a file to import"
valid = false
submitting = false
@@ -99,10 +98,10 @@
// Create form data to create app
let data = new FormData()
data.append("name", $values.name.trim())
- data.append("useTemplate", letTemplateToUse != null)
- if (letTemplateToUse) {
- data.append("templateName", letTemplateToUse.name)
- data.append("templateKey", letTemplateToUse.key)
+ data.append("useTemplate", templateToUse != null)
+ if (templateToUse) {
+ data.append("templateName", templateToUse.name)
+ data.append("templateKey", templateToUse.key)
data.append("templateFile", $values.file)
}
@@ -116,7 +115,7 @@
analytics.captureEvent(Events.APP.CREATED, {
name: $values.name,
appId: appJson.instance._id,
- letTemplateToUse,
+ templateToUse,
})
// Select Correct Application/DB in prep for creating user
diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte
index da0d977a42..7c2d7723d2 100644
--- a/packages/builder/src/pages/builder/portal/apps/index.svelte
+++ b/packages/builder/src/pages/builder/portal/apps/index.svelte
@@ -13,9 +13,11 @@
notifications,
Search,
} from "@budibase/bbui"
+ import Spinner from "components/common/Spinner.svelte"
import CreateAppModal from "components/start/CreateAppModal.svelte"
import UpdateAppModal from "components/start/UpdateAppModal.svelte"
- import { del } from "builderStore/api"
+ import { store, automationStore } from "builderStore"
+ import api, { del, post, get } from "builderStore/api"
import { onMount } from "svelte"
import { apps, auth, admin } from "stores/portal"
import download from "downloadjs"
@@ -24,6 +26,7 @@
import AppCard from "components/start/AppCard.svelte"
import AppRow from "components/start/AppRow.svelte"
import { AppStatus } from "constants"
+ import analytics, { Events } from "analytics"
let layout = "grid"
let sortBy = "name"
@@ -38,6 +41,7 @@
let searchTerm = ""
let cloud = $admin.cloud
let appName = ""
+ let creatingFromTemplate = false
$: enrichedApps = enrichApps($apps, $auth.user, sortBy)
$: filteredApps = enrichedApps.filter(app =>
@@ -92,6 +96,59 @@
creatingApp = true
}
+ const autoCreateApp = async () => {
+ try {
+ // TODO: Iterate App Names and append a number
+ const appName = template.key + Math.floor(Math.random() * 100)
+
+ console.log("APP NAME", appName)
+
+ // Create form data to create app
+ let data = new FormData()
+ data.append("name", appName)
+ data.append("useTemplate", true)
+ data.append("templateKey", template.key)
+
+ // Create App
+ const appResp = await post("/api/applications", data, {})
+ const appJson = await appResp.json()
+ if (!appResp.ok) {
+ throw new Error(appJson.message)
+ }
+
+ analytics.captureEvent(Events.APP.CREATED, {
+ name: appName,
+ appId: appJson.instance._id,
+ template,
+ })
+
+ // Select Correct Application/DB in prep for creating user
+ const applicationPkg = await get(
+ `/api/applications/${appJson.instance._id}/appPackage`
+ )
+ const pkg = await applicationPkg.json()
+ if (applicationPkg.ok) {
+ await store.actions.initialise(pkg)
+ await automationStore.actions.fetch()
+ // update checklist - incase first app
+ await admin.init()
+ } else {
+ throw new Error(pkg)
+ }
+
+ // Create user
+ const userResp = await api.post(`/api/users/metadata/self`, {
+ roleId: "BASIC",
+ })
+ await userResp.json()
+ await auth.setInitInfo({})
+ $goto(`/builder/app/${appJson.instance._id}`)
+ } catch (error) {
+ console.error(error)
+ notifications.error(error)
+ }
+ }
+
const stopAppCreation = () => {
template = null
creatingApp = false
@@ -194,7 +251,7 @@
template = {
key: templateKey,
}
- initiateAppCreation()
+ autoCreateApp()
} else {
notifications.error("Your Template URL is invalid. Please try another.")
}
@@ -202,12 +259,14 @@
onMount(async () => {
await apps.load()
- loaded = true
// if the portal is loaded from an external URL with a template param
const initInfo = await auth.getInitInfo()
if (initInfo.init_template) {
+ creatingFromTemplate = true
createAppFromTemplateUrl(initInfo.init_template)
+ return
}
+ loaded = true
})
@@ -285,6 +344,12 @@
{/if}
+ {#if creatingFromTemplate}
+
+
Creating your Budibase app from your selected template...
+
+
+ {/if}
=2.3.x"
-
-svg.filter.js@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203"
- integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=
- dependencies:
- svg.js "^2.2.5"
-
-svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d"
- integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==
-
-svg.pathmorphing.js@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65"
- integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==
- dependencies:
- svg.js "^2.4.0"
-
-svg.resize.js@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332"
- integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==
- dependencies:
- svg.js "^2.6.5"
- svg.select.js "^2.1.2"
-
-svg.select.js@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73"
- integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==
- dependencies:
- svg.js "^2.2.5"
-
-svg.select.js@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917"
- integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==
- dependencies:
- svg.js "^2.6.5"
-
symbol-observable@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@@ -6474,14 +5748,6 @@ throttleit@^1.0.0:
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-through2@^2.0.0:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- dependencies:
- readable-stream "~2.3.6"
- xtend "~4.0.1"
-
through@2, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -6504,11 +5770,6 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
-to-gfm-code-block@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
- integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
-
to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
@@ -6636,18 +5897,6 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-typeof-article@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
- integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
- dependencies:
- kind-of "^3.1.0"
-
-uglify-js@^3.1.4:
- version "3.14.3"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
- integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
-
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
@@ -6789,11 +6038,6 @@ vite@^2.1.5:
optionalDependencies:
fsevents "~2.3.2"
-vm2@^3.9.4:
- version "3.9.5"
- resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
- integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
-
w3c-hr-time@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
@@ -6894,11 +6138,6 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-wordwrap@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
- integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
-
wrap-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
@@ -6946,11 +6185,6 @@ xmlchars@^2.2.0:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
y18n@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
@@ -6994,11 +6228,6 @@ yauzl@^2.10.0:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
-year@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
- integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
-
yup@0.29.2:
version "0.29.2"
resolved "https://registry.yarnpkg.com/yup/-/yup-0.29.2.tgz#5302abd9024cca335b987793f8df868e410b7b67"
diff --git a/packages/server/scripts/qa/testScript.js b/packages/server/scripts/qa/testScript.js
new file mode 100644
index 0000000000..8e4648d8ee
--- /dev/null
+++ b/packages/server/scripts/qa/testScript.js
@@ -0,0 +1,46 @@
+#!/usr/bin/env node
+const { Client } = require("pg")
+
+let client
+
+// Connect
+async function connect() {
+ client = new Client({
+ host: "localhost",
+ port: 5432,
+ database: "test",
+ user: "postgres",
+ password: "root",
+ })
+ await client.connect()
+}
+
+async function insertData() {
+ const data = [{ id: 1 }, { id: 3 }]
+ let sql = ""
+ for (let item of data) {
+ sql += `INSERT INTO test(id) VALUES(${item.id}); \n`
+ }
+ console.log(sql)
+ await client.query(sql)
+}
+
+// Fills up a postgres database
+async function run() {
+ await connect()
+
+ // Drops table
+ await client.query("DROP TABLE IF EXISTS test")
+
+ // Creates new table
+ await client.query(`CREATE TABLE "test" ("id" serial, PRIMARY KEY ("id"))`)
+
+ // Insert some data
+ await insertData()
+
+ const res = await client.query("SELECT * from test")
+ console.log(res.rows)
+ await client.end()
+}
+
+run()
diff --git a/packages/server/src/integrations/index.ts b/packages/server/src/integrations/index.ts
index eff499f978..8f2f083fc5 100644
--- a/packages/server/src/integrations/index.ts
+++ b/packages/server/src/integrations/index.ts
@@ -40,9 +40,9 @@ const INTEGRATIONS = {
}
// optionally add oracle integration if the oracle binary can be installed
-if (!(process.arch === 'arm64' && process.platform === 'darwin')) {
+if (!(process.arch === "arm64" && process.platform === "darwin")) {
const oracle = require("./oracle")
- DEFINITIONS[SourceNames.ORACLE] = oracle.schema
+ DEFINITIONS[SourceNames.ORACLE] = oracle.schema
INTEGRATIONS[SourceNames.ORACLE] = oracle.integration
}
diff --git a/packages/server/src/integrations/oracle.ts b/packages/server/src/integrations/oracle.ts
index c74977bece..13658399db 100644
--- a/packages/server/src/integrations/oracle.ts
+++ b/packages/server/src/integrations/oracle.ts
@@ -352,14 +352,23 @@ module OracleModule {
* Knex default returning behaviour does not work with oracle
* Manually add the behaviour for the return column
*/
- private addReturning(query: SqlQuery, bindings: BindParameters, returnColumn: string) {
+ private addReturning(
+ query: SqlQuery,
+ bindings: BindParameters,
+ returnColumn: string
+ ) {
if (bindings instanceof Array) {
bindings.push({ dir: oracledb.BIND_OUT })
- query.sql = query.sql + ` returning \"${returnColumn}\" into :${bindings.length}`
+ query.sql =
+ query.sql + ` returning \"${returnColumn}\" into :${bindings.length}`
}
}
- private async internalQuery(query: SqlQuery, returnColum?: string, operation?: string): Promise> {
+ private async internalQuery(
+ query: SqlQuery,
+ returnColum?: string,
+ operation?: string
+ ): Promise> {
let connection
try {
connection = await this.getConnection()
@@ -367,7 +376,10 @@ module OracleModule {
const options: ExecuteOptions = { autoCommit: true }
const bindings: BindParameters = query.bindings || []
- if (returnColum && (operation === Operation.CREATE || operation === Operation.UPDATE)) {
+ if (
+ returnColum &&
+ (operation === Operation.CREATE || operation === Operation.UPDATE)
+ ) {
this.addReturning(query, bindings, returnColum)
}
@@ -414,14 +426,14 @@ module OracleModule {
return response.rows ? response.rows : []
}
- async update(query: SqlQuery | string): Promise {
+ async update(query: SqlQuery | string): Promise {
const response = await this.internalQuery(getSqlQuery(query))
return response.rows && response.rows.length
? response.rows
: [{ updated: true }]
}
- async delete(query: SqlQuery | string): Promise {
+ async delete(query: SqlQuery | string): Promise {
const response = await this.internalQuery(getSqlQuery(query))
return response.rows && response.rows.length
? response.rows
@@ -431,8 +443,9 @@ module OracleModule {
async query(json: QueryJson) {
const primaryKeys = json.meta!.table!.primary
const primaryKey = primaryKeys ? primaryKeys[0] : undefined
- const queryFn = (query: any, operation: string) => this.internalQuery(query, primaryKey, operation)
- const processFn = (response: any) => response.rows ? response.rows : []
+ const queryFn = (query: any, operation: string) =>
+ this.internalQuery(query, primaryKey, operation)
+ const processFn = (response: any) => (response.rows ? response.rows : [])
const output = await this.queryWithReturning(json, queryFn, processFn)
return output
}
diff --git a/packages/server/src/integrations/utils.ts b/packages/server/src/integrations/utils.ts
index 07cf0505bf..97380b1b5b 100644
--- a/packages/server/src/integrations/utils.ts
+++ b/packages/server/src/integrations/utils.ts
@@ -2,7 +2,11 @@ import { SqlQuery } from "../definitions/datasource"
import { Datasource, Table } from "../definitions/common"
import { SourceNames } from "../definitions/datasource"
const { DocumentTypes, SEPARATOR } = require("../db/utils")
-const { FieldTypes, BuildSchemaErrors, InvalidColumns } = require("../constants")
+const {
+ FieldTypes,
+ BuildSchemaErrors,
+ InvalidColumns,
+} = require("../constants")
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
const ROW_ID_REGEX = /^\[.*]$/g
@@ -42,7 +46,7 @@ export enum SqlClients {
MS_SQL = "mssql",
POSTGRES = "pg",
MY_SQL = "mysql",
- ORACLE = "oracledb"
+ ORACLE = "oracledb",
}
export function isExternalTable(tableId: string) {
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index 18f89f9269..f609651afa 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -951,30 +951,6 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@budibase/auth@^0.9.185-alpha.12":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-0.9.188.tgz#82df2fc6e6e3100679a19ced8bab6fe6625f8744"
- integrity sha512-U/7MfxbSrsQGGFyTdAicPDafxGeR8zsuh0I17ZujcIiZUoi1eWbLz4/ODITlTj9zxiXojMf+/u68YAF1ABdxDw==
- dependencies:
- "@techpass/passport-openidconnect" "^0.3.0"
- aws-sdk "^2.901.0"
- bcryptjs "^2.4.3"
- cls-hooked "^4.2.2"
- ioredis "^4.27.1"
- jsonwebtoken "^8.5.1"
- koa-passport "^4.1.4"
- lodash "^4.17.21"
- lodash.isarguments "^3.1.0"
- node-fetch "^2.6.1"
- passport-google-auth "^1.0.2"
- passport-google-oauth "^2.0.0"
- passport-jwt "^4.0.0"
- passport-local "^1.0.0"
- sanitize-s3-objectkey "^0.0.1"
- tar-fs "^2.1.1"
- uuid "^8.3.2"
- zlib "^1.0.5"
-
"@budibase/bbui@^0.9.139":
version "0.9.187"
resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.187.tgz#84f0a37301cfa41f50eaa335243ac08923d9e34f"
@@ -1024,94 +1000,6 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
-"@budibase/bbui@^0.9.188":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.188.tgz#82c108172fbf81a84378e0ef4ca7cba61ea8d0ba"
- integrity sha512-KevJxHdASITX9RzLvm+b2K3VMwqYFTumvrlpStAP6UIoyPkls0xaAc2KiJJ7Kkq48UkkBtAbOYaMxsFbAaTsbQ==
- dependencies:
- "@adobe/spectrum-css-workflow-icons" "^1.2.1"
- "@spectrum-css/actionbutton" "^1.0.1"
- "@spectrum-css/actiongroup" "^1.0.1"
- "@spectrum-css/avatar" "^3.0.2"
- "@spectrum-css/button" "^3.0.1"
- "@spectrum-css/buttongroup" "^3.0.2"
- "@spectrum-css/checkbox" "^3.0.2"
- "@spectrum-css/dialog" "^3.0.1"
- "@spectrum-css/divider" "^1.0.3"
- "@spectrum-css/dropzone" "^3.0.2"
- "@spectrum-css/fieldgroup" "^3.0.2"
- "@spectrum-css/fieldlabel" "^3.0.1"
- "@spectrum-css/icon" "^3.0.1"
- "@spectrum-css/illustratedmessage" "^3.0.2"
- "@spectrum-css/inputgroup" "^3.0.2"
- "@spectrum-css/label" "^2.0.10"
- "@spectrum-css/link" "^3.1.1"
- "@spectrum-css/menu" "^3.0.1"
- "@spectrum-css/modal" "^3.0.1"
- "@spectrum-css/pagination" "^3.0.3"
- "@spectrum-css/picker" "^1.0.1"
- "@spectrum-css/popover" "^3.0.1"
- "@spectrum-css/progressbar" "^1.0.2"
- "@spectrum-css/progresscircle" "^1.0.2"
- "@spectrum-css/radio" "^3.0.2"
- "@spectrum-css/search" "^3.0.2"
- "@spectrum-css/sidenav" "^3.0.2"
- "@spectrum-css/statuslight" "^3.0.2"
- "@spectrum-css/stepper" "^3.0.3"
- "@spectrum-css/switch" "^1.0.2"
- "@spectrum-css/table" "^3.0.1"
- "@spectrum-css/tabs" "^3.0.1"
- "@spectrum-css/tags" "^3.0.2"
- "@spectrum-css/textfield" "^3.0.1"
- "@spectrum-css/toast" "^3.0.1"
- "@spectrum-css/tooltip" "^3.0.3"
- "@spectrum-css/treeview" "^3.0.2"
- "@spectrum-css/typography" "^3.0.1"
- "@spectrum-css/underlay" "^2.0.9"
- "@spectrum-css/vars" "^3.0.1"
- dayjs "^1.10.4"
- svelte-flatpickr "^3.2.3"
- svelte-portal "^1.0.0"
-
-"@budibase/client@^0.9.185-alpha.12":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.188.tgz#c5bf6f3bccdb370b236b9e69e0118334ad3eccfd"
- integrity sha512-yP2WLWb2yQAwPBxVzpNGjSHpATMZMzcxl2gK6vw662F7YC8xGFHNfZZqEwPvrVwnx+d7LFZR/kJxJOvvk7YCVw==
- dependencies:
- "@budibase/bbui" "^0.9.188"
- "@budibase/standard-components" "^0.9.139"
- "@budibase/string-templates" "^0.9.188"
- regexparam "^1.3.0"
- shortid "^2.2.15"
- svelte-spa-router "^3.0.5"
-
-"@budibase/handlebars-helpers@^0.11.7":
- version "0.11.7"
- resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46"
- integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw==
- dependencies:
- array-sort "^1.0.0"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- for-in "^1.0.2"
- get-object "^0.2.0"
- get-value "^3.0.1"
- handlebars "^4.7.7"
- handlebars-utils "^1.0.6"
- has-value "^2.0.2"
- helper-date "^1.0.1"
- helper-markdown "^1.0.0"
- helper-md "^0.2.2"
- html-tag "^2.0.0"
- is-even "^1.0.0"
- is-glob "^4.0.1"
- kind-of "^6.0.3"
- micromatch "^3.1.5"
- relative "^3.0.2"
- striptags "^3.1.1"
- to-gfm-code-block "^0.1.1"
- year "^0.2.1"
-
"@budibase/standard-components@^0.9.139":
version "0.9.139"
resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3"
@@ -1130,18 +1018,6 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
-"@budibase/string-templates@^0.9.185-alpha.12", "@budibase/string-templates@^0.9.188":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.188.tgz#f37836ed23dbd2217cb157030ada7cd59f6a2165"
- integrity sha512-O/bL0I5OJO9W2OizIe9vBHowCLwwASPBrsGiAIB8L0x6AivYMq8j1mvNRwLXZjpHTjv86bU/LyG/3CP837oDsg==
- dependencies:
- "@budibase/handlebars-helpers" "^0.11.7"
- dayjs "^1.10.4"
- handlebars "^4.7.6"
- handlebars-utils "^1.0.6"
- lodash "^4.17.20"
- vm2 "^3.9.4"
-
"@bull-board/api@3.7.0", "@bull-board/api@^3.7.0":
version "3.7.0"
resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af"
@@ -2177,17 +2053,6 @@
dependencies:
defer-to-connect "^1.0.1"
-"@techpass/passport-openidconnect@^0.3.0":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/@techpass/passport-openidconnect/-/passport-openidconnect-0.3.2.tgz#f8fd5d97256286665dbf26dac92431f977ab1e63"
- integrity sha512-fnCtEiexXSHA029B//hJcCJlLJrT3lhpNCyA0rnz58Qttz0BLGCVv6yMT8HmOnGThH6vcDOVwdgKM3kbCQtEhw==
- dependencies:
- base64url "^3.0.1"
- oauth "^0.9.15"
- passport-strategy "^1.0.0"
- request "^2.88.0"
- webfinger "^0.4.2"
-
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -2830,7 +2695,7 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-argparse@^1.0.10, argparse@^1.0.7:
+argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@@ -2872,15 +2737,6 @@ array-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
-array-sort@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
- integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
- dependencies:
- default-compare "^1.0.0"
- get-value "^2.0.6"
- kind-of "^5.0.2"
-
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -2923,13 +2779,6 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
-async-hook-jl@^1.7.6:
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68"
- integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==
- dependencies:
- stack-chain "^1.3.7"
-
async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@@ -2947,13 +2796,6 @@ async@^2.6.3:
dependencies:
lodash "^4.17.14"
-async@~2.1.4:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
- integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=
- dependencies:
- lodash "^4.14.0"
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -2969,13 +2811,6 @@ atomic-sleep@^1.0.0:
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
-autolinker@~0.28.0:
- version "0.28.1"
- resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
- integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
- dependencies:
- gulp-header "^1.7.1"
-
aws-sdk@^2.767.0:
version "2.1030.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1030.0.tgz#24a856af3d2b8b37c14a8f59974993661c66fd82"
@@ -2991,21 +2826,6 @@ aws-sdk@^2.767.0:
uuid "3.3.2"
xml2js "0.4.19"
-aws-sdk@^2.901.0:
- version "2.1033.0"
- resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1033.0.tgz#8bd0084142b15cc2ca427483c36c86b27abc046b"
- integrity sha512-cgcjiuR82bhfBWTffqt6e9+Cn/UgeC6QPQTrlJy3GxwPxChthyrt/h5pekj2l4PLFvETsG10Y6CqQysJEMsncw==
- dependencies:
- buffer "4.9.2"
- events "1.1.1"
- ieee754 "1.1.13"
- jmespath "0.15.0"
- querystring "0.2.0"
- sax "1.2.1"
- url "0.10.3"
- uuid "3.3.2"
- xml2js "0.4.19"
-
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -3188,11 +3008,6 @@ base64-js@^1.0.2, base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-base64url@3.x.x, base64url@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
- integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==
-
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -3213,7 +3028,7 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-bcryptjs@2.4.3, bcryptjs@^2.4.3:
+bcryptjs@2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb"
integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=
@@ -3253,15 +3068,6 @@ bl@^3.0.0:
dependencies:
readable-stream "^3.0.1"
-bl@^4.0.3:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
- integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
- dependencies:
- buffer "^5.5.0"
- inherits "^2.0.4"
- readable-stream "^3.4.0"
-
bluebird@^3.5.1, bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -3599,11 +3405,6 @@ chokidar@^3.5.2:
optionalDependencies:
fsevents "~2.3.2"
-chownr@^1.1.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
- integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
@@ -3676,15 +3477,6 @@ clone-response@1.0.2, clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
-cls-hooked@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908"
- integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==
- dependencies:
- async-hook-jl "^1.7.6"
- emitter-listener "^1.0.1"
- semver "^5.4.1"
-
cluster-key-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -3801,13 +3593,6 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-with-sourcemaps@*:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
- integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
- dependencies:
- source-map "^0.6.1"
-
condense-newlines@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
@@ -4041,13 +3826,6 @@ date-utils@*:
resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=
-date.js@^0.3.1:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda"
- integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw==
- dependencies:
- debug "~3.1.0"
-
dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
@@ -4191,13 +3969,6 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
-default-compare@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
- integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
- dependencies:
- kind-of "^5.0.2"
-
default-shell@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc"
@@ -4457,13 +4228,6 @@ electron-to-chromium@^1.3.896:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5"
integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ==
-emitter-listener@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
- integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==
- dependencies:
- shimmer "^1.2.0"
-
emittery@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
@@ -4494,7 +4258,7 @@ encoding-down@^6.3.0:
level-codec "^9.0.0"
level-errors "^2.0.0"
-end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -4508,11 +4272,6 @@ end-stream@~0.1.0:
dependencies:
write-stream "~0.4.3"
-ent@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
- integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
-
errno@~0.1.1, errno@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@@ -5272,11 +5031,6 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
-fs-exists-sync@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
- integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=
-
fs-extra@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -5340,14 +5094,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
-get-object@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c"
- integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw=
- dependencies:
- is-number "^2.0.2"
- isobject "^0.2.0"
-
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -5410,13 +5156,6 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-get-value@^3.0.0, get-value@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
- integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
- dependencies:
- isobject "^3.0.1"
-
getopts@2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
@@ -5506,32 +5245,6 @@ globby@^11.0.3:
merge2 "^1.3.0"
slash "^3.0.0"
-google-auth-library@~0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e"
- integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24=
- dependencies:
- gtoken "^1.2.1"
- jws "^3.1.4"
- lodash.noop "^3.0.1"
- request "^2.74.0"
-
-google-p12-pem@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177"
- integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=
- dependencies:
- node-forge "^0.7.1"
-
-googleapis@^16.0.0:
- version "16.1.0"
- resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576"
- integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY=
- dependencies:
- async "~2.1.4"
- google-auth-library "~0.10.0"
- string-template "~1.0.0"
-
got@^8.3.1:
version "8.3.2"
resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937"
@@ -5577,45 +5290,6 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
-gtoken@^1.2.1:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8"
- integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w==
- dependencies:
- google-p12-pem "^0.1.0"
- jws "^3.0.0"
- mime "^1.4.1"
- request "^2.72.0"
-
-gulp-header@^1.7.1:
- version "1.8.12"
- resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
- integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
- dependencies:
- concat-with-sourcemaps "*"
- lodash.template "^4.4.0"
- through2 "^2.0.0"
-
-handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9"
- integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw==
- dependencies:
- kind-of "^6.0.0"
- typeof-article "^0.1.1"
-
-handlebars@^4.7.6, handlebars@^4.7.7:
- version "4.7.7"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
- integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
- dependencies:
- minimist "^1.2.5"
- neo-async "^2.6.0"
- source-map "^0.6.1"
- wordwrap "^1.0.0"
- optionalDependencies:
- uglify-js "^3.1.4"
-
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -5686,14 +5360,6 @@ has-value@^1.0.0:
has-values "^1.0.0"
isobject "^3.0.0"
-has-value@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
- integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
- dependencies:
- get-value "^3.0.0"
- has-values "^2.0.1"
-
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
@@ -5707,13 +5373,6 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has-values@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
- integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
- dependencies:
- kind-of "^6.0.2"
-
has-yarn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@@ -5726,39 +5385,6 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-helper-date@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb"
- integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w==
- dependencies:
- date.js "^0.3.1"
- handlebars-utils "^1.0.4"
- moment "^2.18.1"
-
-helper-markdown@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10"
- integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA==
- dependencies:
- handlebars-utils "^1.0.2"
- highlight.js "^9.12.0"
- remarkable "^1.7.1"
-
-helper-md@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f"
- integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8=
- dependencies:
- ent "^2.2.0"
- extend-shallow "^2.0.1"
- fs-exists-sync "^0.1.0"
- remarkable "^1.6.2"
-
-highlight.js@^9.12.0:
- version "9.18.5"
- resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
- integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
-
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -5788,14 +5414,6 @@ html-escaper@^2.0.0:
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-html-tag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed"
- integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g==
- dependencies:
- is-self-closing "^1.0.1"
- kind-of "^6.0.0"
-
http-assert@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
@@ -6042,7 +5660,7 @@ invert-kv@^2.0.0:
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
-ioredis@^4.27.0, ioredis@^4.27.1:
+ioredis@^4.27.0:
version "4.28.0"
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.0.tgz#5a2be3f37ff2075e2332f280eaeb02ab4d9ff0d3"
integrity sha512-I+zkeeWp3XFgPT2CtJKxvaF5FjGBGt4yGYljRjQecdQKteThuAsKqffeF1lgHVlYnuNeozRbPOCDNZ7tDWPeig==
@@ -6178,13 +5796,6 @@ is-docker@^2.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
-is-even@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06"
- integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY=
- dependencies:
- is-odd "^0.1.2"
-
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -6274,13 +5885,6 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
-is-number@^2.0.2:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
- dependencies:
- kind-of "^3.0.2"
-
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -6303,13 +5907,6 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
-is-odd@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
- integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
- dependencies:
- is-number "^3.0.0"
-
is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -6355,13 +5952,6 @@ is-retry-allowed@^2.2.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
-is-self-closing@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
- integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
- dependencies:
- self-closing-tags "^1.0.1"
-
is-shared-array-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
@@ -6454,11 +6044,6 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-isobject@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e"
- integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4=
-
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@@ -7479,22 +7064,6 @@ jsonschema@1.4.0:
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2"
integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==
-jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1:
- version "8.5.1"
- resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
- integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
- dependencies:
- jws "^3.2.2"
- lodash.includes "^4.3.0"
- lodash.isboolean "^3.0.3"
- lodash.isinteger "^4.0.4"
- lodash.isnumber "^3.0.3"
- lodash.isplainobject "^4.0.6"
- lodash.isstring "^4.0.1"
- lodash.once "^4.0.0"
- ms "^2.1.1"
- semver "^5.6.0"
-
jsprim@^1.2.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
@@ -7534,7 +7103,7 @@ jwa@^1.4.1:
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
-jws@3.x.x, jws@^3.0.0, jws@^3.1.4, jws@^3.2.2:
+jws@3.x.x:
version "3.2.2"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
@@ -7561,7 +7130,7 @@ keyv@3.0.0, keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -7575,12 +7144,12 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
-kind-of@^5.0.0, kind-of@^5.0.2:
+kind-of@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
+kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@@ -7675,13 +7244,6 @@ koa-mount@^4.0.0:
debug "^4.0.1"
koa-compose "^4.1.0"
-koa-passport@^4.1.4:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa"
- integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg==
- dependencies:
- passport "^0.4.0"
-
koa-pino-logger@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba"
@@ -7998,11 +7560,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
-lodash._reinterpolate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
- integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -8018,46 +7575,16 @@ lodash.flatten@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
-lodash.includes@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
- integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
-
lodash.isarguments@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
-lodash.isboolean@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
- integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
-
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
-lodash.isinteger@^4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
- integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
-
-lodash.isnumber@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
- integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
-
-lodash.isplainobject@^4.0.6:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
- integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
-
-lodash.isstring@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
- integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
-
lodash.keys@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
@@ -8073,21 +7600,11 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash.noop@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c"
- integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=
-
lodash.omit@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
-lodash.once@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
- integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
-
lodash.pick@^4.0.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -8098,21 +7615,6 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
-lodash.template@^4.4.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
- integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
- dependencies:
- lodash._reinterpolate "^3.0.0"
- lodash.templatesettings "^4.0.0"
-
-lodash.templatesettings@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
- integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
- dependencies:
- lodash._reinterpolate "^3.0.0"
-
lodash.without@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
@@ -8123,7 +7625,7 @@ lodash.xor@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6"
integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=
-lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
+lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -8293,7 +7795,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5:
+micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -8394,11 +7896,6 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp-classic@^0.5.2:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
- integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
-
mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -8418,7 +7915,7 @@ moment-timezone@^0.5.31:
dependencies:
moment ">= 2.9.0"
-"moment@>= 2.9.0", moment@^2.18.1:
+"moment@>= 2.9.0":
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -8518,11 +8015,6 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
-nanoid@^2.1.0:
- version "2.1.11"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
- integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
-
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -8570,11 +8062,6 @@ negotiator@0.6.2:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.6.0:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
- integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -8597,11 +8084,6 @@ node-fetch@^2.6.1:
dependencies:
whatwg-url "^5.0.0"
-node-forge@^0.7.1:
- version "0.7.6"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
- integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
-
node-gyp-build@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
@@ -8720,11 +8202,6 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-oauth@0.9.x, oauth@^0.9.15:
- version "0.9.15"
- resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
- integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE=
-
object-assign@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
@@ -9022,84 +8499,6 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
-passport-google-auth@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/passport-google-auth/-/passport-google-auth-1.0.2.tgz#8b300b5aa442ef433de1d832ed3112877d0b2938"
- integrity sha1-izALWqRC70M94dgy7TESh30LKTg=
- dependencies:
- googleapis "^16.0.0"
- passport-strategy "1.x"
-
-passport-google-oauth1@1.x.x:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz#af74a803df51ec646f66a44d82282be6f108e0cc"
- integrity sha1-r3SoA99R7GRvZqRNgigr5vEI4Mw=
- dependencies:
- passport-oauth1 "1.x.x"
-
-passport-google-oauth20@2.x.x:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef"
- integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==
- dependencies:
- passport-oauth2 "1.x.x"
-
-passport-google-oauth@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/passport-google-oauth/-/passport-google-oauth-2.0.0.tgz#f6eb4bc96dd6c16ec0ecfdf4e05ec48ca54d4dae"
- integrity sha512-JKxZpBx6wBQXX1/a1s7VmdBgwOugohH+IxCy84aPTZNq/iIPX6u7Mqov1zY7MKRz3niFPol0KJz8zPLBoHKtYA==
- dependencies:
- passport-google-oauth1 "1.x.x"
- passport-google-oauth20 "2.x.x"
-
-passport-jwt@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065"
- integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==
- dependencies:
- jsonwebtoken "^8.2.0"
- passport-strategy "^1.0.0"
-
-passport-local@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee"
- integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=
- dependencies:
- passport-strategy "1.x.x"
-
-passport-oauth1@1.x.x:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9"
- integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==
- dependencies:
- oauth "0.9.x"
- passport-strategy "1.x.x"
- utils-merge "1.x.x"
-
-passport-oauth2@1.x.x:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
- integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
- dependencies:
- base64url "3.x.x"
- oauth "0.9.x"
- passport-strategy "1.x.x"
- uid2 "0.0.x"
- utils-merge "1.x.x"
-
-passport-strategy@1.x, passport-strategy@1.x.x, passport-strategy@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
- integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=
-
-passport@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270"
- integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==
- dependencies:
- passport-strategy "1.x.x"
- pause "0.0.1"
-
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -9154,11 +8553,6 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-pause@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
- integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
-
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -9855,7 +9249,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -9989,16 +9383,6 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexparam@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c"
- integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==
-
-regexparam@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
- integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
-
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
@@ -10042,21 +9426,6 @@ regjsparser@^0.7.0:
dependencies:
jsesc "~0.5.0"
-relative@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
- integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
- dependencies:
- isobject "^2.0.0"
-
-remarkable@^1.6.2, remarkable@^1.7.1:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
- integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
- dependencies:
- argparse "^1.0.10"
- autolinker "~0.28.0"
-
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -10093,7 +9462,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0:
+request@^2.87.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -10295,11 +9664,6 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
-sanitize-s3-objectkey@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e"
- integrity sha512-ZTk7aqLxy4sD40GWcYWoLfbe05XLmkKvh6vGKe13ADlei24xlezcvjgKy1qRArlaIbIMYaqK7PCalvZtulZlaQ==
-
saslprep@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
@@ -10312,7 +9676,7 @@ sax@1.2.1:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o=
-sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4:
+sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -10336,11 +9700,6 @@ seek-bzip@^1.0.5:
dependencies:
commander "^2.8.1"
-self-closing-tags@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d"
- integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==
-
semver-diff@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
@@ -10348,7 +9707,7 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -10445,18 +9804,6 @@ shell-path@^2.1.0:
dependencies:
shell-env "^0.3.0"
-shimmer@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
- integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
-
-shortid@^2.2.15:
- version "2.2.16"
- resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
- integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
- dependencies:
- nanoid "^2.1.0"
-
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -10706,11 +10053,6 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
-stack-chain@^1.3.7:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
- integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
-
stack-utils@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
@@ -10753,11 +10095,6 @@ stealthy-require@^1.1.1:
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
-step@0.0.x:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/step/-/step-0.0.6.tgz#143e7849a5d7d3f4a088fe29af94915216eeede2"
- integrity sha1-FD54SaXX0/SgiP4pr5SRUhbu7eI=
-
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -10771,11 +10108,6 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-string-template@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96"
- integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=
-
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -10901,11 +10233,6 @@ strip-outer@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
-striptags@^3.1.1:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
- integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
-
sublevel-pouchdb@7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz#49e46cd37883bf7ff5006d7c5b9bcc7bcc1f422f"
@@ -10995,13 +10322,6 @@ svelte-portal@^1.0.0:
resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3"
integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q==
-svelte-spa-router@^3.0.5:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee"
- integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==
- dependencies:
- regexparam "2.0.0"
-
svelte@^3.38.2:
version "3.44.1"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63"
@@ -11077,16 +10397,6 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
-tar-fs@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
- integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
- dependencies:
- chownr "^1.1.1"
- mkdirp-classic "^0.5.2"
- pump "^3.0.0"
- tar-stream "^2.1.4"
-
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
@@ -11100,17 +10410,6 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
-tar-stream@^2.1.4:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
- integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
- dependencies:
- bl "^4.0.3"
- end-of-stream "^1.4.1"
- fs-constants "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^3.1.1"
-
tarn@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d"
@@ -11277,11 +10576,6 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
-to-gfm-code-block@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
- integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
-
to-json-schema@0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f"
@@ -11508,28 +10802,11 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typeof-article@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
- integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
- dependencies:
- kind-of "^3.1.0"
-
typescript@^4.3.5:
version "4.3.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
-uglify-js@^3.1.4:
- version "3.14.3"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
- integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
-
-uid2@0.0.x:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44"
- integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==
-
unbox-primitive@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
@@ -11720,11 +10997,6 @@ util.promisify@^1.0.0, util.promisify@^1.0.1:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
-utils-merge@1.x.x:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
- integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-
uuid@3.3.2, uuid@^3.1.0, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@@ -11784,7 +11056,7 @@ verror@1.3.6:
dependencies:
extsprintf "1.0.2"
-vm2@^3.9.3, vm2@^3.9.4:
+vm2@^3.9.3:
version "3.9.5"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
@@ -11815,14 +11087,6 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.12"
-webfinger@^0.4.2:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/webfinger/-/webfinger-0.4.2.tgz#3477a6d97799461896039fcffc650b73468ee76d"
- integrity sha1-NHem2XeZRhiWA5/P/GULc0aO520=
- dependencies:
- step "0.0.x"
- xml2js "0.1.x"
-
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -11932,11 +11196,6 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-wordwrap@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
- integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
-
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -12042,13 +11301,6 @@ xml-parse-from-string@^1.0.0:
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
-xml2js@0.1.x:
- version "0.1.14"
- resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c"
- integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=
- dependencies:
- sax ">=0.1.1"
-
xml2js@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -12182,11 +11434,6 @@ yauzl@^2.4.2:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
-year@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
- integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
-
ylru@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
@@ -12197,7 +11444,7 @@ yn@3.1.1:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-zlib@1.0.5, zlib@^1.0.5:
+zlib@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0"
integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=
From 90934c547f42fe7b5de38b11d5a9d5f1785025ad Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Thu, 25 Nov 2021 12:20:20 +0100
Subject: [PATCH 0007/1026] allow type editing on custom query datasource
schemas
---
.../components/integration/QueryViewer.svelte | 43 ++++++++++++-------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/packages/builder/src/components/integration/QueryViewer.svelte b/packages/builder/src/components/integration/QueryViewer.svelte
index 54e455b92f..550da98d6b 100644
--- a/packages/builder/src/components/integration/QueryViewer.svelte
+++ b/packages/builder/src/components/integration/QueryViewer.svelte
@@ -32,31 +32,22 @@
import { onMount } from "svelte"
export let query
- export let fields = []
+ let fields = query.schema ? schemaToFields(query.schema) : []
let parameters
let data = []
let roleId
const transformerDocs =
"https://docs.budibase.com/building-apps/data/transformers"
const typeOptions = [
- { label: "Text", value: "STRING" },
- { label: "Number", value: "NUMBER" },
- { label: "Boolean", value: "BOOLEAN" },
- { label: "Datetime", value: "DATETIME" },
+ { label: "Text", value: "string" },
+ { label: "Number", value: "number" },
+ { label: "Boolean", value: "boolean" },
+ { label: "Datetime", value: "datetime" },
]
$: datasource = $datasources.list.find(ds => ds._id === query.datasourceId)
- $: query.schema = fields.reduce(
- (acc, next) => ({
- ...acc,
- [next.name]: {
- name: next.name,
- type: "string",
- },
- }),
- {}
- )
+ $: query.schema = fieldsToSchema(fields)
$: datasourceType = datasource?.source
$: integrationInfo = $integrations[datasourceType]
$: queryConfig = integrationInfo?.query
@@ -135,7 +126,7 @@
// unique fields returned by the server
fields = json.schemaFields.map(field => ({
name: field,
- type: "STRING",
+ type: "string",
}))
} catch (err) {
notifications.error(`Query Error: ${err.message}`)
@@ -155,6 +146,26 @@
}
}
+ function schemaToFields(schema) {
+ return Object.keys(schema).map(key => ({
+ name: key,
+ type: query.schema[key].type,
+ }))
+ }
+
+ function fieldsToSchema(fieldsToConvert) {
+ return fieldsToConvert.reduce(
+ (acc, next) => ({
+ ...acc,
+ [next.name]: {
+ name: next.name,
+ type: next.type,
+ },
+ }),
+ {}
+ )
+ }
+
onMount(async () => {
if (!query || !query._id) {
roleId = Roles.BASIC
From 38219f0ea386d4857be920a86106d30594a37c13 Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Thu, 25 Nov 2021 11:21:54 +0000
Subject: [PATCH 0008/1026] Fix issue with determining when to hide sensitive
fields from query definitions and never delete the query schema
---
packages/server/src/api/controllers/query.js | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/packages/server/src/api/controllers/query.js b/packages/server/src/api/controllers/query.js
index 502ef5e67b..80da246166 100644
--- a/packages/server/src/api/controllers/query.js
+++ b/packages/server/src/api/controllers/query.js
@@ -1,6 +1,10 @@
const { processString } = require("@budibase/string-templates")
const CouchDB = require("../../db")
-const { generateQueryID, getQueryParams } = require("../../db/utils")
+const {
+ generateQueryID,
+ getQueryParams,
+ isProdAppID,
+} = require("../../db/utils")
const { BaseQueryVerbs } = require("../../constants")
const env = require("../../environment")
const { Thread, ThreadType } = require("../../threads")
@@ -90,10 +94,9 @@ exports.find = async function (ctx) {
const db = new CouchDB(ctx.appId)
const query = enrichQueries(await db.get(ctx.params.queryId))
// remove properties that could be dangerous in real app
- if (env.isProd()) {
+ if (isProdAppID(ctx.appId)) {
delete query.fields
delete query.parameters
- delete query.schema
}
ctx.body = query
}
From 63fac77ad193894f2d6856a55120d3a669b1772e Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Thu, 25 Nov 2021 11:35:19 +0000
Subject: [PATCH 0009/1026] Ensure horizontal cards in the card block don't
exceed the width of the screen
---
packages/client/src/components/app/blocks/CardsBlock.svelte | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/client/src/components/app/blocks/CardsBlock.svelte b/packages/client/src/components/app/blocks/CardsBlock.svelte
index d5a5f064b6..ec631ede36 100644
--- a/packages/client/src/components/app/blocks/CardsBlock.svelte
+++ b/packages/client/src/components/app/blocks/CardsBlock.svelte
@@ -182,7 +182,7 @@
}}
styles={{
display: "grid",
- "grid-template-columns": `repeat(auto-fill, minmax(${cardWidth}px, 1fr))`,
+ "grid-template-columns": `repeat(auto-fill, minmax(min(${cardWidth}px, 100%), 1fr))`,
}}
>
Date: Thu, 25 Nov 2021 11:42:46 +0000
Subject: [PATCH 0010/1026] Lint
---
packages/server/src/api/controllers/query.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/packages/server/src/api/controllers/query.js b/packages/server/src/api/controllers/query.js
index 80da246166..cf6f03f00f 100644
--- a/packages/server/src/api/controllers/query.js
+++ b/packages/server/src/api/controllers/query.js
@@ -6,7 +6,6 @@ const {
isProdAppID,
} = require("../../db/utils")
const { BaseQueryVerbs } = require("../../constants")
-const env = require("../../environment")
const { Thread, ThreadType } = require("../../threads")
const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
From 3abaded20abde824cc8dda9f0d243751557d78c7 Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Thu, 25 Nov 2021 11:52:02 +0000
Subject: [PATCH 0011/1026] Update tests
---
packages/server/src/api/routes/tests/query.spec.js | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/packages/server/src/api/routes/tests/query.spec.js b/packages/server/src/api/routes/tests/query.spec.js
index 6b9be7447f..f5ba497d1b 100644
--- a/packages/server/src/api/routes/tests/query.spec.js
+++ b/packages/server/src/api/routes/tests/query.spec.js
@@ -19,10 +19,12 @@ describe("/queries", () => {
})
async function createInvalidIntegration() {
- const datasource = await config.createDatasource({datasource: {
- ...basicDatasource().datasource,
- source: "INVALID_INTEGRATION",
- }})
+ const datasource = await config.createDatasource({
+ datasource: {
+ ...basicDatasource().datasource,
+ source: "INVALID_INTEGRATION",
+ },
+ })
const query = await config.createQuery()
return { datasource, query }
}
@@ -98,7 +100,6 @@ describe("/queries", () => {
.expect("Content-Type", /json/)
expect(res.body.fields).toBeUndefined()
expect(res.body.parameters).toBeUndefined()
- expect(res.body.schema).toBeUndefined()
})
})
})
From 5313e277973eb298f5efcf7bf60a357fa77ea232 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Thu, 25 Nov 2021 13:00:21 +0100
Subject: [PATCH 0012/1026] auto name template based apps
---
.../src/pages/builder/portal/apps/index.svelte | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte
index 7c2d7723d2..15076a9a53 100644
--- a/packages/builder/src/pages/builder/portal/apps/index.svelte
+++ b/packages/builder/src/pages/builder/portal/apps/index.svelte
@@ -98,10 +98,12 @@
const autoCreateApp = async () => {
try {
- // TODO: Iterate App Names and append a number
- const appName = template.key + Math.floor(Math.random() * 100)
-
- console.log("APP NAME", appName)
+ // Auto name app if has same name
+ let appName = template.key
+ const appsWithSameName = $apps.filter(app =>
+ app.name?.startsWith(appName)
+ )
+ appName = `${appName}-${appsWithSameName.length + 1}`
// Create form data to create app
let data = new FormData()
@@ -120,6 +122,7 @@
name: appName,
appId: appJson.instance._id,
template,
+ fromTemplateMarketplace: true,
})
// Select Correct Application/DB in prep for creating user
From 3040613b53050657c47f91117341e456b32bb004 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Thu, 25 Nov 2021 13:08:39 +0100
Subject: [PATCH 0013/1026] removing script dir
---
packages/server/scripts/qa/testScript.js | 46 ------------------------
1 file changed, 46 deletions(-)
delete mode 100644 packages/server/scripts/qa/testScript.js
diff --git a/packages/server/scripts/qa/testScript.js b/packages/server/scripts/qa/testScript.js
deleted file mode 100644
index 8e4648d8ee..0000000000
--- a/packages/server/scripts/qa/testScript.js
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env node
-const { Client } = require("pg")
-
-let client
-
-// Connect
-async function connect() {
- client = new Client({
- host: "localhost",
- port: 5432,
- database: "test",
- user: "postgres",
- password: "root",
- })
- await client.connect()
-}
-
-async function insertData() {
- const data = [{ id: 1 }, { id: 3 }]
- let sql = ""
- for (let item of data) {
- sql += `INSERT INTO test(id) VALUES(${item.id}); \n`
- }
- console.log(sql)
- await client.query(sql)
-}
-
-// Fills up a postgres database
-async function run() {
- await connect()
-
- // Drops table
- await client.query("DROP TABLE IF EXISTS test")
-
- // Creates new table
- await client.query(`CREATE TABLE "test" ("id" serial, PRIMARY KEY ("id"))`)
-
- // Insert some data
- await insertData()
-
- const res = await client.query("SELECT * from test")
- console.log(res.rows)
- await client.end()
-}
-
-run()
From 0b239a5bec0529a0dfb3e4c8d6e2fe09cd43049d Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Thu, 25 Nov 2021 13:00:43 +0000
Subject: [PATCH 0014/1026] Add test to ensure query schema is correctly
cleared for prod app IDs
---
.../server/src/api/routes/tests/query.spec.js | 35 +++++++++++++++++--
1 file changed, 32 insertions(+), 3 deletions(-)
diff --git a/packages/server/src/api/routes/tests/query.spec.js b/packages/server/src/api/routes/tests/query.spec.js
index f5ba497d1b..37c969aba8 100644
--- a/packages/server/src/api/routes/tests/query.spec.js
+++ b/packages/server/src/api/routes/tests/query.spec.js
@@ -1,6 +1,13 @@
-// mock out postgres for this
+// Mock out postgres for this
jest.mock("pg")
+// Mock isProdAppID to we can later mock the implementation and pretend we are
+// using prod app IDs
+const authDb = require("@budibase/auth/db")
+const { isProdAppID } = authDb
+const mockIsProdAppID = jest.fn(isProdAppID)
+authDb.isProdAppID = mockIsProdAppID
+
const setup = require("./utilities")
const { checkBuilderEndpoint } = require("./utilities/TestFunctions")
const { basicQuery, basicDatasource } = setup.structures
@@ -98,10 +105,32 @@ describe("/queries", () => {
.set(await config.defaultHeaders())
.expect(200)
.expect("Content-Type", /json/)
- expect(res.body.fields).toBeUndefined()
- expect(res.body.parameters).toBeUndefined()
+ expect(res.body.fields).toBeDefined()
+ expect(res.body.parameters).toBeDefined()
+ expect(res.body.schema).toBeDefined()
})
})
+
+ it("should remove sensitive info for prod apps", async () => {
+ // Mock isProdAppID to pretend we are using a prod app
+ mockIsProdAppID.mockClear()
+ mockIsProdAppID.mockImplementation(() => true)
+
+ const query = await config.createQuery()
+ const res = await request
+ .get(`/api/queries/${query._id}`)
+ .set(await config.defaultHeaders())
+ .expect("Content-Type", /json/)
+ .expect(200)
+ expect(res.body._id).toEqual(query._id)
+ expect(res.body.fields).toBeUndefined()
+ expect(res.body.parameters).toBeUndefined()
+ expect(res.body.schema).toBeDefined()
+
+ // Reset isProdAppID mock
+ expect(mockIsProdAppID).toHaveBeenCalledTimes(1)
+ mockIsProdAppID.mockImplementation(isProdAppID)
+ })
})
describe("destroy", () => {
From 0c60a56a3a38b62d2a40a92384a664337ebb10c1 Mon Sep 17 00:00:00 2001
From: Peter Clement
Date: Thu, 25 Nov 2021 14:45:36 +0000
Subject: [PATCH 0015/1026] remove initial screen creation
---
packages/server/src/api/controllers/application.js | 6 ------
1 file changed, 6 deletions(-)
diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js
index ef2913e812..6f55834a49 100644
--- a/packages/server/src/api/controllers/application.js
+++ b/packages/server/src/api/controllers/application.js
@@ -15,14 +15,12 @@ const {
generateAppID,
getLayoutParams,
getScreenParams,
- generateScreenID,
generateDevAppID,
DocumentTypes,
AppStatus,
} = require("../../db/utils")
const { BUILTIN_ROLE_IDS, AccessController } = require("@budibase/auth/roles")
const { BASE_LAYOUTS } = require("../../constants/layouts")
-const { createHomeScreen } = require("../../constants/screens")
const { cloneDeep } = require("lodash/fp")
const { processObject } = require("@budibase/string-templates")
const {
@@ -409,9 +407,5 @@ const createEmptyAppPackage = async (ctx, app) => {
screensAndLayouts.push(await processObject(cloned, app))
}
- const homeScreen = createHomeScreen(app)
- homeScreen._id = generateScreenID()
- screensAndLayouts.push(homeScreen)
-
await db.bulkDocs(screensAndLayouts)
}
From d42df03f25ac47a96ad5d6a346f5337e62c55238 Mon Sep 17 00:00:00 2001
From: Peter Clement
Date: Thu, 25 Nov 2021 15:29:35 +0000
Subject: [PATCH 0016/1026] fix appPackage unit tests
---
packages/server/src/api/routes/tests/application.spec.js | 2 --
packages/server/src/api/routes/tests/screen.spec.js | 2 +-
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/packages/server/src/api/routes/tests/application.spec.js b/packages/server/src/api/routes/tests/application.spec.js
index 05e0bc231b..ce1cb80435 100644
--- a/packages/server/src/api/routes/tests/application.spec.js
+++ b/packages/server/src/api/routes/tests/application.spec.js
@@ -75,7 +75,6 @@ describe("/applications", () => {
.expect("Content-Type", /json/)
.expect(200)
// should have empty packages
- expect(res.body.screens.length).toEqual(1)
expect(res.body.layouts.length).toEqual(2)
})
})
@@ -88,7 +87,6 @@ describe("/applications", () => {
.expect("Content-Type", /json/)
.expect(200)
expect(res.body.application).toBeDefined()
- expect(res.body.screens.length).toEqual(1)
expect(res.body.layouts.length).toEqual(2)
})
})
diff --git a/packages/server/src/api/routes/tests/screen.spec.js b/packages/server/src/api/routes/tests/screen.spec.js
index 6a47b78853..c2d60ec006 100644
--- a/packages/server/src/api/routes/tests/screen.spec.js
+++ b/packages/server/src/api/routes/tests/screen.spec.js
@@ -21,7 +21,7 @@ describe("/screens", () => {
.set(config.defaultHeaders())
.expect("Content-Type", /json/)
.expect(200)
- expect(res.body.length).toEqual(2)
+ expect(res.body.length).toEqual(1)
expect(res.body.some(s => s._id === screen._id)).toEqual(true)
})
From 88f31bcf34017b9785c3681b539ae07b8c661a10 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Thu, 25 Nov 2021 16:13:19 +0000
Subject: [PATCH 0017/1026] Basic work for generating.
---
packages/server/package.json | 4 +-
packages/server/scripts/docs/generate.js | 59 +
packages/server/src/api/routes/row.js | 56 +
packages/server/yarn.lock | 1682 +++++++++++++++++++++-
4 files changed, 1766 insertions(+), 35 deletions(-)
create mode 100644 packages/server/scripts/docs/generate.js
diff --git a/packages/server/package.json b/packages/server/package.json
index 0fce8a3759..7712c7c748 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -3,7 +3,7 @@
"email": "hi@budibase.com",
"version": "0.9.190-alpha.0",
"description": "Budibase Web Server",
- "main": "src/index.js",
+ "main": "src/index.ts",
"repository": {
"type": "git",
"url": "https://github.com/Budibase/budibase.git"
@@ -130,6 +130,7 @@
"@babel/preset-env": "^7.14.4",
"@budibase/standard-components": "^0.9.139",
"@jest/test-sequencer": "^24.8.0",
+ "@types/apidoc": "^0.50.0",
"@types/bull": "^3.15.1",
"@types/jest": "^26.0.23",
"@types/koa": "^2.13.3",
@@ -137,6 +138,7 @@
"@types/node": "^15.12.4",
"@types/oracledb": "^5.2.1",
"@typescript-eslint/parser": "4.28.0",
+ "apidoc": "^0.50.2",
"babel-jest": "^27.0.2",
"copyfiles": "^2.4.1",
"docker-compose": "^0.23.6",
diff --git a/packages/server/scripts/docs/generate.js b/packages/server/scripts/docs/generate.js
new file mode 100644
index 0000000000..f5b9c00fa5
--- /dev/null
+++ b/packages/server/scripts/docs/generate.js
@@ -0,0 +1,59 @@
+const fs = require("fs")
+const { join } = require("path")
+const { createDoc } = require("apidoc")
+const packageJson = require("../../package.json")
+
+const config = {
+ name: "Budibase API",
+ version: packageJson.version,
+ description:
+ "Documentation for the various API endpoints of the Budibase backend.",
+ title: "Budibase app service API",
+}
+
+const disallowed = []
+
+function filter(parsedRouteFiles) {
+ const tagToSearch = "url"
+ for (let routeFile of parsedRouteFiles) {
+ for (let route of routeFile) {
+ let routeInfo = route["local"]
+ if (disallowed.includes(routeInfo[tagToSearch])) {
+ const idx = routeFile.indexOf(route)
+ routeFile.splice(idx, 1)
+ }
+ }
+ }
+}
+
+function generate() {
+ // start by writing a config file
+ const configPath = join(__dirname, "config.json")
+ fs.writeFileSync(configPath, JSON.stringify(config))
+ const mainPath = join(__dirname, "..", "..")
+ const srcPath = join(mainPath, "src", "api", "routes")
+ const assetsPath = join(mainPath, "builder", "assets", "docs")
+ if (!fs.existsSync(assetsPath)) {
+ fs.mkdirSync(assetsPath, { recursive: true })
+ }
+ const doc = createDoc({
+ src: srcPath,
+ dest: assetsPath,
+ silent: true,
+ filters: {
+ main: {
+ postFilter: filter,
+ },
+ },
+ config: configPath,
+ })
+ if (typeof doc !== "boolean") {
+ console.log("Docs generated successfully.")
+ } else {
+ console.error("Unable to generate docs.")
+ }
+ // delete the temporary config file
+ fs.unlinkSync(configPath)
+}
+
+generate()
diff --git a/packages/server/src/api/routes/row.js b/packages/server/src/api/routes/row.js
index 44f71ad545..7c2c42be14 100644
--- a/packages/server/src/api/routes/row.js
+++ b/packages/server/src/api/routes/row.js
@@ -14,24 +14,80 @@ const {
const router = Router()
router
+ /**
+ * @api {get} /api/:tableId/:rowId/enrich Get an enriched row
+ * @apiName /api/:tableId/:rowId/enrich
+ * @apiGroup rows
+ * @apiPermission table read access
+ * @apiDescription This API is only useful when dealing with rows that have relationships.
+ * Normally when a row is a returned from the API relationships will only have the structure
+ * `{ primaryDisplay: "name", _id: ... }` but this call will return the full related rows
+ * for each relationship instead.
+ *
+ * @apiParam {string} rowId The ID of the row which is to be retrieved and enriched.
+ *
+ * @apiSuccess {object} row The response body will be the enriched row.
+ * @apiError {string} message If the table or row could not be found then an error will be thrown.
+ */
.get(
"/api/:tableId/:rowId/enrich",
paramSubResource("tableId", "rowId"),
authorized(PermissionTypes.TABLE, PermissionLevels.READ),
rowController.fetchEnrichedRow
)
+ /**
+ * @api {get} /api/:tableId/rows Get all rows in a table
+ * @apiName /api/:tableId/rows
+ * @apiGroup rows
+ * @apiPermission table read access
+ * @apiDescription This is a deprecated endpoint that should not be used anymore, instead use the search endpoint.
+ * This endpoint gets all of the rows within the specified table - it is not heavily used
+ * due to its lack of support for pagination. With SQL tables this will retrieve up to a limit and then
+ * will simply stop.
+ *
+ * @apiParam {string} tableId The ID of the table to retrieve all rows within.
+ *
+ * @apiSuccess {object[]} rows The response body will be an array of all rows found.
+ * @apiError {string} message If the table could not be found then an error will be thrown.
+ */
.get(
"/api/:tableId/rows",
paramResource("tableId"),
authorized(PermissionTypes.TABLE, PermissionLevels.READ),
rowController.fetch
)
+ /**
+ * @api {get} /api/:tableId/rows/:rowId Retrieve a single row
+ * @apiName /api/:tableId/rows/:rowId
+ * @apiGroup rows
+ * @apiPermission table read access
+ * @apiDescription This endpoint retrieves only the specified row. If you wish to retrieve
+ * a row by anything other than its _id field, use the search endpoint.
+ *
+ * @apiParam {string} tableId The ID of the table to retrieve a row from.
+ * @apiParam {string} rowId The ID of the row to retrieve.
+ *
+ * @apiSuccess {object} row The response body will be the row that was found.
+ * @apiError {string} message If the table or row could not be found then an error will be thrown.
+ */
.get(
"/api/:tableId/rows/:rowId",
paramSubResource("tableId", "rowId"),
authorized(PermissionTypes.TABLE, PermissionLevels.READ),
rowController.find
)
+ /**
+ * @api {post} /api/:tableId/search Search for rows in a table
+ * @apiName /api/:tableId/search
+ * @apiGroup rows
+ * @apiPermission table read access
+ * @apiDescription This is the primary method of accessing rows in Budibase, the data provider
+ * and data UI in the builder are built atop this. All filtering, sorting and pagination is
+ * handled through this, for internal and external (datasource plus, e.g. SQL) tables.
+ *
+ * @apiBody
+ *
+ */
.post(
"/api/:tableId/search",
paramResource("tableId"),
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index f609651afa..1686e38a40 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -951,6 +951,30 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@budibase/auth@^0.9.190-alpha.0":
+ version "0.9.190-alpha.1"
+ resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-0.9.190-alpha.1.tgz#b00c1db33a800dcb6c2ba321ee8a06e353c623e0"
+ integrity sha512-GXWyb69ueIGkEzwS2wm+JhJi9w5vFe82fUdXRkV3QeTwFwyKuYnwCiulIvVDfi1yBhyGF1CpbsZRS1zkHD1rZA==
+ dependencies:
+ "@techpass/passport-openidconnect" "^0.3.0"
+ aws-sdk "^2.901.0"
+ bcryptjs "^2.4.3"
+ cls-hooked "^4.2.2"
+ ioredis "^4.27.1"
+ jsonwebtoken "^8.5.1"
+ koa-passport "^4.1.4"
+ lodash "^4.17.21"
+ lodash.isarguments "^3.1.0"
+ node-fetch "^2.6.1"
+ passport-google-auth "^1.0.2"
+ passport-google-oauth "^2.0.0"
+ passport-jwt "^4.0.0"
+ passport-local "^1.0.0"
+ sanitize-s3-objectkey "^0.0.1"
+ tar-fs "^2.1.1"
+ uuid "^8.3.2"
+ zlib "^1.0.5"
+
"@budibase/bbui@^0.9.139":
version "0.9.187"
resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.187.tgz#84f0a37301cfa41f50eaa335243ac08923d9e34f"
@@ -1000,6 +1024,95 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
+"@budibase/bbui@^0.9.190-alpha.1":
+ version "0.9.190-alpha.1"
+ resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.190-alpha.1.tgz#b7056840a63231d507cd4bfe915647c7727d8fc5"
+ integrity sha512-Vt6PwV0gmHcCPslZk8aScHsky3bh82XyRGZnbbbeABkhRdh6Bj/gqBpkDjBPevsOYWXc+xI/Hrq9pJrj+lHxpQ==
+ dependencies:
+ "@adobe/spectrum-css-workflow-icons" "^1.2.1"
+ "@spectrum-css/actionbutton" "^1.0.1"
+ "@spectrum-css/actiongroup" "^1.0.1"
+ "@spectrum-css/avatar" "^3.0.2"
+ "@spectrum-css/button" "^3.0.1"
+ "@spectrum-css/buttongroup" "^3.0.2"
+ "@spectrum-css/checkbox" "^3.0.2"
+ "@spectrum-css/dialog" "^3.0.1"
+ "@spectrum-css/divider" "^1.0.3"
+ "@spectrum-css/dropzone" "^3.0.2"
+ "@spectrum-css/fieldgroup" "^3.0.2"
+ "@spectrum-css/fieldlabel" "^3.0.1"
+ "@spectrum-css/icon" "^3.0.1"
+ "@spectrum-css/illustratedmessage" "^3.0.2"
+ "@spectrum-css/inlinealert" "^2.0.1"
+ "@spectrum-css/inputgroup" "^3.0.2"
+ "@spectrum-css/label" "^2.0.10"
+ "@spectrum-css/link" "^3.1.1"
+ "@spectrum-css/menu" "^3.0.1"
+ "@spectrum-css/modal" "^3.0.1"
+ "@spectrum-css/pagination" "^3.0.3"
+ "@spectrum-css/picker" "^1.0.1"
+ "@spectrum-css/popover" "^3.0.1"
+ "@spectrum-css/progressbar" "^1.0.2"
+ "@spectrum-css/progresscircle" "^1.0.2"
+ "@spectrum-css/radio" "^3.0.2"
+ "@spectrum-css/search" "^3.0.2"
+ "@spectrum-css/sidenav" "^3.0.2"
+ "@spectrum-css/statuslight" "^3.0.2"
+ "@spectrum-css/stepper" "^3.0.3"
+ "@spectrum-css/switch" "^1.0.2"
+ "@spectrum-css/table" "^3.0.1"
+ "@spectrum-css/tabs" "^3.0.1"
+ "@spectrum-css/tags" "^3.0.2"
+ "@spectrum-css/textfield" "^3.0.1"
+ "@spectrum-css/toast" "^3.0.1"
+ "@spectrum-css/tooltip" "^3.0.3"
+ "@spectrum-css/treeview" "^3.0.2"
+ "@spectrum-css/typography" "^3.0.1"
+ "@spectrum-css/underlay" "^2.0.9"
+ "@spectrum-css/vars" "^3.0.1"
+ dayjs "^1.10.4"
+ svelte-flatpickr "^3.2.3"
+ svelte-portal "^1.0.0"
+
+"@budibase/client@^0.9.190-alpha.0":
+ version "0.9.190-alpha.1"
+ resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.190-alpha.1.tgz#e0a4eaead10b6fc9027e2e72c305404a7d787e75"
+ integrity sha512-llrwbsog/4iomSjuhx+vj0wfeIIzQEOEq07kalwb2vqyPFRU6PN4vTZNBr7Qt63L3z59pJ/vUb8zs9SGdkNp7g==
+ dependencies:
+ "@budibase/bbui" "^0.9.190-alpha.1"
+ "@budibase/standard-components" "^0.9.139"
+ "@budibase/string-templates" "^0.9.190-alpha.1"
+ regexparam "^1.3.0"
+ shortid "^2.2.15"
+ svelte-spa-router "^3.0.5"
+
+"@budibase/handlebars-helpers@^0.11.7":
+ version "0.11.7"
+ resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46"
+ integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw==
+ dependencies:
+ array-sort "^1.0.0"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ for-in "^1.0.2"
+ get-object "^0.2.0"
+ get-value "^3.0.1"
+ handlebars "^4.7.7"
+ handlebars-utils "^1.0.6"
+ has-value "^2.0.2"
+ helper-date "^1.0.1"
+ helper-markdown "^1.0.0"
+ helper-md "^0.2.2"
+ html-tag "^2.0.0"
+ is-even "^1.0.0"
+ is-glob "^4.0.1"
+ kind-of "^6.0.3"
+ micromatch "^3.1.5"
+ relative "^3.0.2"
+ striptags "^3.1.1"
+ to-gfm-code-block "^0.1.1"
+ year "^0.2.1"
+
"@budibase/standard-components@^0.9.139":
version "0.9.139"
resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3"
@@ -1018,6 +1131,18 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
+"@budibase/string-templates@^0.9.190-alpha.0", "@budibase/string-templates@^0.9.190-alpha.1":
+ version "0.9.190-alpha.1"
+ resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.190-alpha.1.tgz#243f674f448225317b565933630c20b76dd16794"
+ integrity sha512-hXe4Hh2oFwWhqm4b/bFM82r6rr1ng1vb99ZdUkCPVWbBLUJKU+Hjnnt9bfsuupx+Ngw+TFT1N6GMZMsti5ySoQ==
+ dependencies:
+ "@budibase/handlebars-helpers" "^0.11.7"
+ dayjs "^1.10.4"
+ handlebars "^4.7.6"
+ handlebars-utils "^1.0.6"
+ lodash "^4.17.20"
+ vm2 "^3.9.4"
+
"@bull-board/api@3.7.0", "@bull-board/api@^3.7.0":
version "3.7.0"
resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af"
@@ -1066,6 +1191,20 @@
dependencies:
"@cspotcode/source-map-consumer" "0.8.0"
+"@dabh/diagnostics@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31"
+ integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==
+ dependencies:
+ colorspace "1.1.x"
+ enabled "2.0.x"
+ kuler "^2.0.0"
+
+"@discoveryjs/json-ext@^0.5.0":
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3"
+ integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==
+
"@elastic/elasticsearch@7.10.0":
version "7.10.0"
resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.10.0.tgz#da105a9c1f14146f9f2cab4e7026cb7949121b8d"
@@ -1904,6 +2043,11 @@
resolved "https://registry.yarnpkg.com/@spectrum-css/illustratedmessage/-/illustratedmessage-3.0.8.tgz#69ef0c935bcc5027f233a78de5aeb0064bf033cb"
integrity sha512-HvC4dywDi11GdrXQDCvKQ0vFlrXLTyJuc9UKf7meQLCGoJbGYDBwe+tHXNK1c6gPMD9BoL6pPMP1K/vRzR4EBQ==
+"@spectrum-css/inlinealert@^2.0.1":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@spectrum-css/inlinealert/-/inlinealert-2.0.5.tgz#76b50495c0ad0cd675d7df2f73fb0e9cd5cff4e9"
+ integrity sha512-Z37CDhoFX0cePjoyi5igRCi4/rIU7ETDpV8cwHjbTYj4IXpHmOCllxftncE8SJ3PZrQW2gB9mmXvfg+TBy3g2Q==
+
"@spectrum-css/inputgroup@^3.0.2":
version "3.0.8"
resolved "https://registry.yarnpkg.com/@spectrum-css/inputgroup/-/inputgroup-3.0.8.tgz#fc23afc8a73c24d17249c9d2337e8b42085b298b"
@@ -2053,6 +2197,17 @@
dependencies:
defer-to-connect "^1.0.1"
+"@techpass/passport-openidconnect@^0.3.0":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@techpass/passport-openidconnect/-/passport-openidconnect-0.3.2.tgz#f8fd5d97256286665dbf26dac92431f977ab1e63"
+ integrity sha512-fnCtEiexXSHA029B//hJcCJlLJrT3lhpNCyA0rnz58Qttz0BLGCVv6yMT8HmOnGThH6vcDOVwdgKM3kbCQtEhw==
+ dependencies:
+ base64url "^3.0.1"
+ oauth "^0.9.15"
+ passport-strategy "^1.0.0"
+ request "^2.88.0"
+ webfinger "^0.4.2"
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -2085,6 +2240,11 @@
dependencies:
"@types/node" "*"
+"@types/apidoc@^0.50.0":
+ version "0.50.0"
+ resolved "https://registry.yarnpkg.com/@types/apidoc/-/apidoc-0.50.0.tgz#9ac8ea6944ca647fcd3c0ba51199e4001f063cb5"
+ integrity sha512-hQdhX7WcVKi9rRzTME01MD/TPBRQH51n2nW3XdUv6wWvvGt6sctWEyjUgH555A5N80zXFH3Ug0rpO4RLvT59JA==
+
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.0", "@types/babel__core@^7.1.14":
version "7.1.16"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702"
@@ -2155,6 +2315,27 @@
"@types/keygrip" "*"
"@types/node" "*"
+"@types/eslint-scope@^3.7.0":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e"
+ integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==
+ dependencies:
+ "@types/eslint" "*"
+ "@types/estree" "*"
+
+"@types/eslint@*":
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.2.0.tgz#afd0519223c29c347087542cbaee2fedc0873b16"
+ integrity sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==
+ dependencies:
+ "@types/estree" "*"
+ "@types/json-schema" "*"
+
+"@types/estree@*", "@types/estree@^0.0.50":
+ version "0.0.50"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
+ integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
+
"@types/express-serve-static-core@^4.17.18":
version "4.17.25"
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.25.tgz#e42f7046adc65ece2eb6059b77aecfbe9e9f82e0"
@@ -2240,6 +2421,11 @@
jest-diff "^26.0.0"
pretty-format "^26.0.0"
+"@types/json-schema@*", "@types/json-schema@^7.0.8":
+ version "7.0.9"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
+ integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
+
"@types/keygrip@*":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72"
@@ -2417,11 +2603,159 @@
"@typescript-eslint/types" "4.28.0"
eslint-visitor-keys "^2.0.0"
+"@webassemblyjs/ast@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
+ integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
+ dependencies:
+ "@webassemblyjs/helper-numbers" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+
+"@webassemblyjs/floating-point-hex-parser@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
+ integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
+
+"@webassemblyjs/helper-api-error@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
+ integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
+
+"@webassemblyjs/helper-buffer@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
+ integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
+
+"@webassemblyjs/helper-numbers@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
+ integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
+ dependencies:
+ "@webassemblyjs/floating-point-hex-parser" "1.11.1"
+ "@webassemblyjs/helper-api-error" "1.11.1"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/helper-wasm-bytecode@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
+ integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
+
+"@webassemblyjs/helper-wasm-section@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
+ integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-buffer" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+
+"@webassemblyjs/ieee754@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
+ integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
+ integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
+ integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
+
+"@webassemblyjs/wasm-edit@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
+ integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-buffer" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/helper-wasm-section" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+ "@webassemblyjs/wasm-opt" "1.11.1"
+ "@webassemblyjs/wasm-parser" "1.11.1"
+ "@webassemblyjs/wast-printer" "1.11.1"
+
+"@webassemblyjs/wasm-gen@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
+ integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/ieee754" "1.11.1"
+ "@webassemblyjs/leb128" "1.11.1"
+ "@webassemblyjs/utf8" "1.11.1"
+
+"@webassemblyjs/wasm-opt@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
+ integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-buffer" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+ "@webassemblyjs/wasm-parser" "1.11.1"
+
+"@webassemblyjs/wasm-parser@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
+ integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-api-error" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/ieee754" "1.11.1"
+ "@webassemblyjs/leb128" "1.11.1"
+ "@webassemblyjs/utf8" "1.11.1"
+
+"@webassemblyjs/wast-printer@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
+ integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@xtuc/long" "4.2.2"
+
+"@webpack-cli/configtest@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.0.tgz#8342bef0badfb7dfd3b576f2574ab80c725be043"
+ integrity sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==
+
+"@webpack-cli/info@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.0.tgz#b9179c3227ab09cbbb149aa733475fcf99430223"
+ integrity sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==
+ dependencies:
+ envinfo "^7.7.3"
+
+"@webpack-cli/serve@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.0.tgz#2c275aa05c895eccebbfc34cfb223c6e8bd591a2"
+ integrity sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==
+
"@xmldom/xmldom@^0.7.0":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d"
integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==
+"@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
abab@^2.0.0, abab@^2.0.3, abab@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
@@ -2494,6 +2828,11 @@ acorn-globals@^6.0.0:
acorn "^7.1.1"
acorn-walk "^7.1.1"
+acorn-import-assertions@^1.7.6:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
+ integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
+
acorn-jsx@^5.2.0:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
@@ -2571,7 +2910,12 @@ airtable@0.10.1:
lodash "^4.17.19"
node-fetch "^2.6.1"
-ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3:
+ajv-keywords@^3.5.2:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.5:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -2672,6 +3016,34 @@ apexcharts@^3.19.2, apexcharts@^3.22.1:
svg.resize.js "^1.4.3"
svg.select.js "^3.0.1"
+apidoc@^0.50.2:
+ version "0.50.2"
+ resolved "https://registry.yarnpkg.com/apidoc/-/apidoc-0.50.2.tgz#84cbd4d37d8a8c60ac49b34f34b6092f6d04281f"
+ integrity sha512-y0o+gW77U2Q9+BebITTv3Z4G6YEZ6y3OxFmjAJeak9NHwxzxFEYYKqSYlzQX8X+BJTw9AlqlHXwAio8CKyLaaQ==
+ dependencies:
+ bootstrap "3.4.1"
+ commander "^8.3.0"
+ diff-match-patch "^1.0.5"
+ esbuild-loader "^2.16.0"
+ expose-loader "^3.1.0"
+ fs-extra "^10.0.0"
+ glob "^7.2.0"
+ handlebars "^4.7.7"
+ iconv-lite "^0.6.3"
+ jquery "^3.6.0"
+ klaw-sync "^6.0.0"
+ lodash "^4.17.21"
+ markdown-it "^12.2.0"
+ nodemon "^2.0.15"
+ path-to-regexp "^6.2.0"
+ prismjs "^1.25.0"
+ semver "^7.3.5"
+ style-loader "^3.3.1"
+ url-parse "^1.5.3"
+ webpack "^5.64.2"
+ webpack-cli "^4.9.1"
+ winston "^3.3.3"
+
arangojs@7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/arangojs/-/arangojs-7.2.0.tgz#e576926b4b3469c5a130cceba45fada8b5f015d1"
@@ -2695,13 +3067,18 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-argparse@^1.0.7:
+argparse@^1.0.10, argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
args@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/args/-/args-5.0.1.tgz#4bf298df90a4799a09521362c579278cc2fdd761"
@@ -2737,6 +3114,15 @@ array-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
+array-sort@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
+ integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
+ dependencies:
+ default-compare "^1.0.0"
+ get-value "^2.0.6"
+ kind-of "^5.0.2"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -2779,6 +3165,13 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+async-hook-jl@^1.7.6:
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68"
+ integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==
+ dependencies:
+ stack-chain "^1.3.7"
+
async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@@ -2796,6 +3189,18 @@ async@^2.6.3:
dependencies:
lodash "^4.17.14"
+async@^3.1.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd"
+ integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==
+
+async@~2.1.4:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
+ integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=
+ dependencies:
+ lodash "^4.14.0"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -2811,6 +3216,13 @@ atomic-sleep@^1.0.0:
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+autolinker@~0.28.0:
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
+ integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
+ dependencies:
+ gulp-header "^1.7.1"
+
aws-sdk@^2.767.0:
version "2.1030.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1030.0.tgz#24a856af3d2b8b37c14a8f59974993661c66fd82"
@@ -2826,6 +3238,21 @@ aws-sdk@^2.767.0:
uuid "3.3.2"
xml2js "0.4.19"
+aws-sdk@^2.901.0:
+ version "2.1036.0"
+ resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1036.0.tgz#47f0d0a38b5bfbd4a7a382a6756a6aa7af627aad"
+ integrity sha512-K0f4uXL32ZdoPmWiuSQEAC5ae5v7gNmhjzoEB7VonE5E8l2umWsoU0Ahm8WPr14LgsvtkeyBuqBjphbxLz6hIw==
+ dependencies:
+ buffer "4.9.2"
+ events "1.1.1"
+ ieee754 "1.1.13"
+ jmespath "0.15.0"
+ querystring "0.2.0"
+ sax "1.2.1"
+ url "0.10.3"
+ uuid "3.3.2"
+ xml2js "0.4.19"
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -3008,6 +3435,11 @@ base64-js@^1.0.2, base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+base64url@3.x.x, base64url@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
+ integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==
+
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -3028,11 +3460,16 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-bcryptjs@2.4.3:
+bcryptjs@2.4.3, bcryptjs@^2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb"
integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
@@ -3068,6 +3505,15 @@ bl@^3.0.0:
dependencies:
readable-stream "^3.0.1"
+bl@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
bluebird@^3.5.1, bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -3078,6 +3524,11 @@ bmp-js@^0.1.0:
resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233"
integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM=
+bootstrap@3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
+ integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
+
boxen@^5.0.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"
@@ -3135,7 +3586,7 @@ browser-resolve@^1.11.3:
dependencies:
resolve "1.1.7"
-browserslist@^4.17.5, browserslist@^4.17.6:
+browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.17.6:
version "4.18.1"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f"
integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==
@@ -3405,6 +3856,16 @@ chokidar@^3.5.2:
optionalDependencies:
fsevents "~2.3.2"
+chownr@^1.1.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+chrome-trace-event@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+ integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
@@ -3470,6 +3931,15 @@ clone-buffer@1.0.0:
resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
clone-response@1.0.2, clone-response@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
@@ -3477,6 +3947,15 @@ clone-response@1.0.2, clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
+cls-hooked@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908"
+ integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==
+ dependencies:
+ async-hook-jl "^1.7.6"
+ emitter-listener "^1.0.1"
+ semver "^5.4.1"
+
cluster-key-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -3510,7 +3989,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -3529,16 +4008,45 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-colorette@2.0.16:
+color-string@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
+ integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.3:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+ integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+ dependencies:
+ color-convert "^1.9.3"
+ color-string "^1.6.0"
+
+colorette@2.0.16, colorette@^2.0.14:
version "2.0.16"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+colors@^1.2.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+
+colorspace@1.1.x:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
+ integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
+ dependencies:
+ color "^3.1.3"
+ text-hex "1.0.x"
+
combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -3546,16 +4054,21 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.19.0, commander@^2.5.0, commander@^2.8.1:
+commander@^2.19.0, commander@^2.20.0, commander@^2.5.0, commander@^2.8.1:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-commander@^7.1.0:
+commander@^7.0.0, commander@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+commander@^8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+ integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+
commoner@^0.10.1:
version "0.10.8"
resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5"
@@ -3593,6 +4106,13 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+concat-with-sourcemaps@*:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
+ integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
+ dependencies:
+ source-map "^0.6.1"
+
condense-newlines@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
@@ -3826,6 +4346,13 @@ date-utils@*:
resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=
+date.js@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda"
+ integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw==
+ dependencies:
+ debug "~3.1.0"
+
dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
@@ -3969,6 +4496,13 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+default-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
+ integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
+ dependencies:
+ kind-of "^5.0.2"
+
default-shell@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc"
@@ -4082,6 +4616,11 @@ detective@^4.3.1:
acorn "^5.2.1"
defined "^1.0.0"
+diff-match-patch@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37"
+ integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==
+
diff-sequences@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
@@ -4228,6 +4767,13 @@ electron-to-chromium@^1.3.896:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5"
integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ==
+emitter-listener@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
+ integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==
+ dependencies:
+ shimmer "^1.2.0"
+
emittery@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
@@ -4243,6 +4789,16 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+enabled@2.0.x:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
+ integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
+
encodeurl@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -4258,7 +4814,7 @@ encoding-down@^6.3.0:
level-codec "^9.0.0"
level-errors "^2.0.0"
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -4272,6 +4828,29 @@ end-stream@~0.1.0:
dependencies:
write-stream "~0.4.3"
+enhanced-resolve@^5.8.3:
+ version "5.8.3"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
+ integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
+ dependencies:
+ graceful-fs "^4.2.4"
+ tapable "^2.2.0"
+
+ent@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
+ integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
+
+entities@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
+ integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
+
+envinfo@^7.7.3:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
+ integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
+
errno@~0.1.1, errno@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@@ -4317,6 +4896,11 @@ es-abstract@^1.19.1:
string.prototype.trimstart "^1.0.4"
unbox-primitive "^1.0.1"
+es-module-lexer@^0.9.0:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
+ integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
+
es-to-primitive@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
@@ -4354,6 +4938,127 @@ es6-error@^4.0.1:
resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
+esbuild-android-arm64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
+ integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
+
+esbuild-darwin-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
+ integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
+
+esbuild-darwin-arm64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
+ integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
+
+esbuild-freebsd-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
+ integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
+
+esbuild-freebsd-arm64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
+ integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
+
+esbuild-linux-32@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
+ integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
+
+esbuild-linux-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
+ integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
+
+esbuild-linux-arm64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
+ integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
+
+esbuild-linux-arm@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
+ integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
+
+esbuild-linux-mips64le@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
+ integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
+
+esbuild-linux-ppc64le@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
+ integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
+
+esbuild-loader@^2.16.0:
+ version "2.16.0"
+ resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.16.0.tgz#a44a57a77ed2810d6b278579271f77d739aa7bc9"
+ integrity sha512-LCJEwkf+nMJbNmVYNgg/0PaIZDdr5OcHw1qbWAZLkrmBRX+KwHY/yAS6ia98UBtwzk/WhsftUBNB6tfPHgFIxw==
+ dependencies:
+ esbuild "^0.13.4"
+ joycon "^3.0.1"
+ json5 "^2.2.0"
+ loader-utils "^2.0.0"
+ tapable "^2.2.0"
+ type-fest "^1.4.0"
+ webpack-sources "^2.2.0"
+
+esbuild-netbsd-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
+ integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
+
+esbuild-openbsd-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
+ integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
+
+esbuild-sunos-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
+ integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
+
+esbuild-windows-32@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
+ integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
+
+esbuild-windows-64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
+ integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
+
+esbuild-windows-arm64@0.13.15:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
+ integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
+
+esbuild@^0.13.4:
+ version "0.13.15"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
+ integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
+ optionalDependencies:
+ esbuild-android-arm64 "0.13.15"
+ esbuild-darwin-64 "0.13.15"
+ esbuild-darwin-arm64 "0.13.15"
+ esbuild-freebsd-64 "0.13.15"
+ esbuild-freebsd-arm64 "0.13.15"
+ esbuild-linux-32 "0.13.15"
+ esbuild-linux-64 "0.13.15"
+ esbuild-linux-arm "0.13.15"
+ esbuild-linux-arm64 "0.13.15"
+ esbuild-linux-mips64le "0.13.15"
+ esbuild-linux-ppc64le "0.13.15"
+ esbuild-netbsd-64 "0.13.15"
+ esbuild-openbsd-64 "0.13.15"
+ esbuild-sunos-64 "0.13.15"
+ esbuild-windows-32 "0.13.15"
+ esbuild-windows-64 "0.13.15"
+ esbuild-windows-arm64 "0.13.15"
+
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -4403,7 +5108,7 @@ escodegen@^2.0.0:
optionalDependencies:
source-map "~0.6.1"
-eslint-scope@^5.0.0:
+eslint-scope@5.1.1, eslint-scope@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -4559,6 +5264,11 @@ events@1.1.1:
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
+events@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
exec-sh@^0.3.2:
version "0.3.6"
resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc"
@@ -4652,6 +5362,11 @@ expect@^27.3.1:
jest-message-util "^27.3.1"
jest-regex-util "^27.0.6"
+expose-loader@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-3.1.0.tgz#7a0bdecb345b921ca238a8c4715a4ea7e227213f"
+ integrity sha512-2RExSo0yJiqP+xiUue13jQa2IHE8kLDzTI7b6kn+vUlBVvlzNSiLDzo4e5Pp5J039usvTUnxZ8sUOhv0Kg15NA==
+
ext-list@^2.0.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37"
@@ -4768,6 +5483,11 @@ fast-url-parser@^1.1.3:
dependencies:
punycode "^1.3.2"
+fastest-levenshtein@^1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
+ integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+
fastify-warning@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/fastify-warning/-/fastify-warning-0.2.0.tgz#e717776026a4493dc9a2befa44db6d17f618008f"
@@ -4794,6 +5514,11 @@ fd-slicer@~1.1.0:
dependencies:
pend "~1.2.0"
+fecha@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
+ integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==
+
fetch-cookie@0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.10.1.tgz#5ea88f3d36950543c87997c27ae2aeafb4b5c4d4"
@@ -4947,6 +5672,11 @@ flatted@^2.0.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+fn.name@1.x.x:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
+ integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
+
follow-redirects@^1.14.0, follow-redirects@^1.14.4:
version "1.14.5"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381"
@@ -5031,6 +5761,11 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+fs-exists-sync@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
+ integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=
+
fs-extra@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -5040,6 +5775,15 @@ fs-extra@8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
+ integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -5094,6 +5838,14 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
+get-object@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c"
+ integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw=
+ dependencies:
+ is-number "^2.0.2"
+ isobject "^0.2.0"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -5156,6 +5908,13 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+get-value@^3.0.0, get-value@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
+ integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
+ dependencies:
+ isobject "^3.0.1"
+
getopts@2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
@@ -5183,6 +5942,11 @@ glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2:
dependencies:
is-glob "^4.0.1"
+glob-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
glob@^5.0.15:
version "5.0.15"
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
@@ -5194,7 +5958,7 @@ glob@^5.0.15:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -5245,6 +6009,32 @@ globby@^11.0.3:
merge2 "^1.3.0"
slash "^3.0.0"
+google-auth-library@~0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e"
+ integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24=
+ dependencies:
+ gtoken "^1.2.1"
+ jws "^3.1.4"
+ lodash.noop "^3.0.1"
+ request "^2.74.0"
+
+google-p12-pem@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177"
+ integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=
+ dependencies:
+ node-forge "^0.7.1"
+
+googleapis@^16.0.0:
+ version "16.1.0"
+ resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576"
+ integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY=
+ dependencies:
+ async "~2.1.4"
+ google-auth-library "~0.10.0"
+ string-template "~1.0.0"
+
got@^8.3.1:
version "8.3.2"
resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937"
@@ -5290,6 +6080,45 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
+gtoken@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8"
+ integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w==
+ dependencies:
+ google-p12-pem "^0.1.0"
+ jws "^3.0.0"
+ mime "^1.4.1"
+ request "^2.72.0"
+
+gulp-header@^1.7.1:
+ version "1.8.12"
+ resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
+ integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
+ dependencies:
+ concat-with-sourcemaps "*"
+ lodash.template "^4.4.0"
+ through2 "^2.0.0"
+
+handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9"
+ integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw==
+ dependencies:
+ kind-of "^6.0.0"
+ typeof-article "^0.1.1"
+
+handlebars@^4.7.6, handlebars@^4.7.7:
+ version "4.7.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+ integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.0"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -5360,6 +6189,14 @@ has-value@^1.0.0:
has-values "^1.0.0"
isobject "^3.0.0"
+has-value@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
+ integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
+ dependencies:
+ get-value "^3.0.0"
+ has-values "^2.0.1"
+
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
@@ -5373,6 +6210,13 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
+has-values@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
+ integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
+ dependencies:
+ kind-of "^6.0.2"
+
has-yarn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@@ -5385,6 +6229,39 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+helper-date@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb"
+ integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w==
+ dependencies:
+ date.js "^0.3.1"
+ handlebars-utils "^1.0.4"
+ moment "^2.18.1"
+
+helper-markdown@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10"
+ integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA==
+ dependencies:
+ handlebars-utils "^1.0.2"
+ highlight.js "^9.12.0"
+ remarkable "^1.7.1"
+
+helper-md@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f"
+ integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8=
+ dependencies:
+ ent "^2.2.0"
+ extend-shallow "^2.0.1"
+ fs-exists-sync "^0.1.0"
+ remarkable "^1.6.2"
+
+highlight.js@^9.12.0:
+ version "9.18.5"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
+ integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -5414,6 +6291,14 @@ html-escaper@^2.0.0:
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+html-tag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed"
+ integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g==
+ dependencies:
+ is-self-closing "^1.0.1"
+ kind-of "^6.0.0"
+
http-assert@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
@@ -5677,6 +6562,23 @@ ioredis@^4.27.0:
redis-parser "^3.0.0"
standard-as-callback "^2.1.0"
+ioredis@^4.27.1:
+ version "4.28.1"
+ resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.1.tgz#c2a7038d6a187e020d7045e11d6a677e8b51f785"
+ integrity sha512-7gcrUJEcPHWy+eEyq6wIZpXtfHt8crhbc5+z0sqrnHUkwBblXinygfamj+/jx83Qo+2LW3q87Nj2VsuH6BF2BA==
+ dependencies:
+ cluster-key-slot "^1.1.0"
+ debug "^4.3.1"
+ denque "^1.1.0"
+ lodash.defaults "^4.2.0"
+ lodash.flatten "^4.4.0"
+ lodash.isarguments "^3.1.0"
+ p-map "^2.1.0"
+ redis-commands "1.7.0"
+ redis-errors "^1.2.0"
+ redis-parser "^3.0.0"
+ standard-as-callback "^2.1.0"
+
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
@@ -5701,6 +6603,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
@@ -5796,6 +6703,13 @@ is-docker@^2.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+is-even@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06"
+ integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY=
+ dependencies:
+ is-odd "^0.1.2"
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -5885,6 +6799,13 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
+is-number@^2.0.2:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+ dependencies:
+ kind-of "^3.0.2"
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -5907,6 +6828,13 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+is-odd@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
+ integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
+ dependencies:
+ is-number "^3.0.0"
+
is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -5952,6 +6880,13 @@ is-retry-allowed@^2.2.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
+is-self-closing@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
+ integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
+ dependencies:
+ self-closing-tags "^1.0.1"
+
is-shared-array-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
@@ -6044,6 +6979,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+isobject@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e"
+ integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4=
+
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@@ -6847,7 +7787,7 @@ jest-worker@^24.6.0, jest-worker@^24.9.0:
merge-stream "^2.0.0"
supports-color "^6.1.0"
-jest-worker@^27.3.1:
+jest-worker@^27.0.6, jest-worker@^27.3.1:
version "27.3.1"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2"
integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==
@@ -6902,11 +7842,21 @@ joycon@^2.2.5:
resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615"
integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==
+joycon@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf"
+ integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==
+
jpeg-js@0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d"
integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==
+jquery@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
+ integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
+
js-beautify@^1.6.12:
version "1.14.0"
resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d"
@@ -7020,7 +7970,7 @@ json-buffer@3.0.0:
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
-json-parse-better-errors@^1.0.1:
+json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
@@ -7045,7 +7995,7 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-json5@2.x, json5@^2.1.2:
+json5@2.x, json5@^2.1.2, json5@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
@@ -7059,11 +8009,36 @@ jsonfile@^4.0.0:
optionalDependencies:
graceful-fs "^4.1.6"
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
jsonschema@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2"
integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==
+jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+ integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+ dependencies:
+ jws "^3.2.2"
+ lodash.includes "^4.3.0"
+ lodash.isboolean "^3.0.3"
+ lodash.isinteger "^4.0.4"
+ lodash.isnumber "^3.0.3"
+ lodash.isplainobject "^4.0.6"
+ lodash.isstring "^4.0.1"
+ lodash.once "^4.0.0"
+ ms "^2.1.1"
+ semver "^5.6.0"
+
jsprim@^1.2.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
@@ -7103,7 +8078,7 @@ jwa@^1.4.1:
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
-jws@3.x.x:
+jws@3.x.x, jws@^3.0.0, jws@^3.1.4, jws@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
@@ -7130,7 +8105,7 @@ keyv@3.0.0, keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -7144,16 +8119,23 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
-kind-of@^5.0.0:
+kind-of@^5.0.0, kind-of@^5.0.2:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-kind-of@^6.0.0, kind-of@^6.0.2:
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+klaw-sync@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
+ integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+
kleur@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
@@ -7244,6 +8226,13 @@ koa-mount@^4.0.0:
debug "^4.0.1"
koa-compose "^4.1.0"
+koa-passport@^4.1.4:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa"
+ integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg==
+ dependencies:
+ passport "^0.4.0"
+
koa-pino-logger@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba"
@@ -7362,6 +8351,11 @@ koa@^2.13.1:
type-is "^1.6.16"
vary "^1.1.2"
+kuler@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
+ integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
+
latest-version@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
@@ -7521,6 +8515,13 @@ lie@3.1.1:
dependencies:
immediate "~3.0.5"
+linkify-it@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e"
+ integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==
+ dependencies:
+ uc.micro "^1.0.1"
+
load-bmfont@^1.3.1, load-bmfont@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9"
@@ -7545,6 +8546,20 @@ load-json-file@^4.0.0:
pify "^3.0.0"
strip-bom "^3.0.0"
+loader-runner@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
+ integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
+
+loader-utils@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
+ integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@@ -7560,6 +8575,11 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
+lodash._reinterpolate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -7575,16 +8595,46 @@ lodash.flatten@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
lodash.isarguments@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+lodash.isboolean@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+ integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
+lodash.isinteger@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+ integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+
+lodash.isnumber@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+ integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
lodash.keys@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
@@ -7600,11 +8650,21 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+lodash.noop@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c"
+ integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=
+
lodash.omit@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+lodash.once@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+ integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+
lodash.pick@^4.0.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -7615,6 +8675,21 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+lodash.template@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
+ integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+
lodash.without@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
@@ -7625,11 +8700,22 @@ lodash.xor@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6"
integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=
-lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
+lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+logform@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/logform/-/logform-2.3.0.tgz#a3997a05985de2ebd325ae0d166dffc9c6fe6b57"
+ integrity sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==
+ dependencies:
+ colors "^1.2.1"
+ fecha "^4.2.0"
+ ms "^2.1.1"
+ safe-stable-stringify "^1.1.0"
+ triple-beam "^1.3.0"
+
long@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
@@ -7735,6 +8821,17 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
+markdown-it@^12.2.0:
+ version "12.2.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.2.0.tgz#091f720fd5db206f80de7a8d1f1a7035fd0d38db"
+ integrity sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg==
+ dependencies:
+ argparse "^2.0.1"
+ entities "~2.1.0"
+ linkify-it "^3.0.1"
+ mdurl "^1.0.1"
+ uc.micro "^1.0.5"
+
md5@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
@@ -7744,6 +8841,11 @@ md5@^2.3.0:
crypt "0.0.2"
is-buffer "~1.1.6"
+mdurl@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
+ integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -7795,7 +8897,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^3.1.10, micromatch@^3.1.4:
+micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -7847,7 +8949,7 @@ mime-types@^2.1.12:
dependencies:
mime-db "~1.27.0"
-mime-types@^2.1.18, mime-types@^2.1.24, mime-types@~2.1.19, mime-types@~2.1.24:
+mime-types@^2.1.18, mime-types@^2.1.24, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24:
version "2.1.34"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
@@ -7896,6 +8998,11 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
+mkdirp-classic@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+ integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -7915,7 +9022,7 @@ moment-timezone@^0.5.31:
dependencies:
moment ">= 2.9.0"
-"moment@>= 2.9.0":
+"moment@>= 2.9.0", moment@^2.18.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -8015,6 +9122,11 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
+nanoid@^2.1.0:
+ version "2.1.11"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
+ integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
+
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -8062,6 +9174,11 @@ negotiator@0.6.2:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+neo-async@^2.6.0, neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -8084,6 +9201,11 @@ node-fetch@^2.6.1:
dependencies:
whatwg-url "^5.0.0"
+node-forge@^0.7.1:
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
+ integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
+
node-gyp-build@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
@@ -8104,7 +9226,7 @@ node-releases@^2.0.1:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
-nodemon@^2.0.4:
+nodemon@^2.0.15, nodemon@^2.0.4:
version "2.0.15"
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.15.tgz#504516ce3b43d9dc9a955ccd9ec57550a31a8d4e"
integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==
@@ -8202,6 +9324,11 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+oauth@0.9.x, oauth@^0.9.15:
+ version "0.9.15"
+ resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
+ integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE=
+
object-assign@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
@@ -8283,6 +9410,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
+one-time@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
+ integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
+ dependencies:
+ fn.name "1.x.x"
+
onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
@@ -8499,6 +9633,84 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+passport-google-auth@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/passport-google-auth/-/passport-google-auth-1.0.2.tgz#8b300b5aa442ef433de1d832ed3112877d0b2938"
+ integrity sha1-izALWqRC70M94dgy7TESh30LKTg=
+ dependencies:
+ googleapis "^16.0.0"
+ passport-strategy "1.x"
+
+passport-google-oauth1@1.x.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz#af74a803df51ec646f66a44d82282be6f108e0cc"
+ integrity sha1-r3SoA99R7GRvZqRNgigr5vEI4Mw=
+ dependencies:
+ passport-oauth1 "1.x.x"
+
+passport-google-oauth20@2.x.x:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef"
+ integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==
+ dependencies:
+ passport-oauth2 "1.x.x"
+
+passport-google-oauth@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth/-/passport-google-oauth-2.0.0.tgz#f6eb4bc96dd6c16ec0ecfdf4e05ec48ca54d4dae"
+ integrity sha512-JKxZpBx6wBQXX1/a1s7VmdBgwOugohH+IxCy84aPTZNq/iIPX6u7Mqov1zY7MKRz3niFPol0KJz8zPLBoHKtYA==
+ dependencies:
+ passport-google-oauth1 "1.x.x"
+ passport-google-oauth20 "2.x.x"
+
+passport-jwt@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065"
+ integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==
+ dependencies:
+ jsonwebtoken "^8.2.0"
+ passport-strategy "^1.0.0"
+
+passport-local@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee"
+ integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=
+ dependencies:
+ passport-strategy "1.x.x"
+
+passport-oauth1@1.x.x:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9"
+ integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==
+ dependencies:
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ utils-merge "1.x.x"
+
+passport-oauth2@1.x.x:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
+ integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
+ dependencies:
+ base64url "3.x.x"
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ uid2 "0.0.x"
+ utils-merge "1.x.x"
+
+passport-strategy@1.x, passport-strategy@1.x.x, passport-strategy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
+ integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=
+
+passport@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270"
+ integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==
+ dependencies:
+ passport-strategy "1.x.x"
+ pause "0.0.1"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -8536,7 +9748,7 @@ path-to-regexp@^1.1.1:
dependencies:
isarray "0.0.1"
-path-to-regexp@^6.1.0:
+path-to-regexp@^6.1.0, path-to-regexp@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38"
integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==
@@ -8553,6 +9765,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pause@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
+ integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -9056,6 +10273,11 @@ pretty@^2.0.0:
extend-shallow "^2.0.1"
js-beautify "^1.6.12"
+prismjs@^1.25.0:
+ version "1.25.0"
+ resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
+ integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==
+
private@^0.1.6, private@~0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -9172,6 +10394,11 @@ querystring@0.2.0:
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
+querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -9182,6 +10409,13 @@ quick-format-unescaped@^4.0.3:
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
+randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
raw-body@^2.2.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32"
@@ -9249,7 +10483,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -9268,7 +10502,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6:
+readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.7, readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -9327,6 +10561,13 @@ rechoir@0.7.0:
dependencies:
resolve "^1.9.0"
+rechoir@^0.7.0:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
+ integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
+ dependencies:
+ resolve "^1.9.0"
+
redis-commands@1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89"
@@ -9383,6 +10624,16 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexparam@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c"
+ integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==
+
+regexparam@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
+ integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
+
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
@@ -9426,6 +10677,21 @@ regjsparser@^0.7.0:
dependencies:
jsesc "~0.5.0"
+relative@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
+ integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
+ dependencies:
+ isobject "^2.0.0"
+
+remarkable@^1.6.2, remarkable@^1.7.1:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
+ integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
+ dependencies:
+ argparse "^1.0.10"
+ autolinker "~0.28.0"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -9462,7 +10728,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.87.0:
+request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -9506,6 +10772,11 @@ require_optional@^1.0.1:
resolve-from "^2.0.0"
semver "^5.1.0"
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
+
resolve-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
@@ -9622,7 +10893,7 @@ rxjs@^6.6.0:
dependencies:
tslib "^1.9.0"
-safe-buffer@*, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@*, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -9644,6 +10915,11 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
+safe-stable-stringify@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a"
+ integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==
+
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -9664,6 +10940,11 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
+sanitize-s3-objectkey@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e"
+ integrity sha512-ZTk7aqLxy4sD40GWcYWoLfbe05XLmkKvh6vGKe13ADlei24xlezcvjgKy1qRArlaIbIMYaqK7PCalvZtulZlaQ==
+
saslprep@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
@@ -9676,7 +10957,7 @@ sax@1.2.1:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o=
-sax@>=0.6.0, sax@^1.2.4:
+sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -9688,6 +10969,15 @@ saxes@^5.0.1:
dependencies:
xmlchars "^2.2.0"
+schema-utils@^3.1.0, schema-utils@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
+ integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
+ dependencies:
+ "@types/json-schema" "^7.0.8"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
secure-json-parse@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85"
@@ -9700,6 +10990,11 @@ seek-bzip@^1.0.5:
dependencies:
commander "^2.8.1"
+self-closing-tags@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d"
+ integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==
+
semver-diff@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
@@ -9707,7 +11002,7 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9734,6 +11029,13 @@ seq-queue@^0.0.5:
resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"
integrity sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=
+serialize-javascript@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
+ integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
+ dependencies:
+ randombytes "^2.1.0"
+
server-destroy@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd"
@@ -9764,6 +11066,13 @@ setprototypeof@1.2.0:
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -9804,6 +11113,18 @@ shell-path@^2.1.0:
dependencies:
shell-env "^0.3.0"
+shimmer@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
+ integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
+
+shortid@^2.2.15:
+ version "2.2.16"
+ resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
+ integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
+ dependencies:
+ nanoid "^2.1.0"
+
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -9823,6 +11144,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -9906,6 +11234,11 @@ sort-keys@^2.0.0:
dependencies:
is-plain-obj "^1.0.0"
+source-list-map@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -9925,6 +11258,14 @@ source-map-support@^0.5.6:
buffer-from "^1.0.0"
source-map "^0.6.0"
+source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
source-map-url@^0.4.0:
version "0.4.1"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
@@ -9954,7 +11295,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.3:
+source-map@^0.7.3, source-map@~0.7.2:
version "0.7.3"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
@@ -10053,6 +11394,16 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
+stack-chain@^1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
+ integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
+
+stack-trace@0.0.x:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+ integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
+
stack-utils@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
@@ -10095,6 +11446,11 @@ stealthy-require@^1.1.1:
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
+step@0.0.x:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/step/-/step-0.0.6.tgz#143e7849a5d7d3f4a088fe29af94915216eeede2"
+ integrity sha1-FD54SaXX0/SgiP4pr5SRUhbu7eI=
+
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -10108,6 +11464,11 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
+string-template@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96"
+ integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=
+
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -10233,6 +11594,16 @@ strip-outer@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
+striptags@^3.1.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
+ integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
+
+style-loader@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575"
+ integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==
+
sublevel-pouchdb@7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz#49e46cd37883bf7ff5006d7c5b9bcc7bcc1f422f"
@@ -10322,6 +11693,13 @@ svelte-portal@^1.0.0:
resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3"
integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q==
+svelte-spa-router@^3.0.5:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee"
+ integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==
+ dependencies:
+ regexparam "2.0.0"
+
svelte@^3.38.2:
version "3.44.1"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63"
@@ -10397,6 +11775,21 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
+tapable@^2.1.1, tapable@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
+ integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
+
+tar-fs@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+ integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
+ dependencies:
+ chownr "^1.1.1"
+ mkdirp-classic "^0.5.2"
+ pump "^3.0.0"
+ tar-stream "^2.1.4"
+
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
@@ -10410,6 +11803,17 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
+tar-stream@^2.1.4:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+ integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
tarn@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d"
@@ -10445,6 +11849,26 @@ terminal-link@^2.0.0:
ansi-escapes "^4.2.1"
supports-hyperlinks "^2.0.0"
+terser-webpack-plugin@^5.1.3:
+ version "5.2.5"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9"
+ integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==
+ dependencies:
+ jest-worker "^27.0.6"
+ schema-utils "^3.1.1"
+ serialize-javascript "^6.0.0"
+ source-map "^0.6.1"
+ terser "^5.7.2"
+
+terser@^5.7.2:
+ version "5.10.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc"
+ integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.7.2"
+ source-map-support "~0.5.20"
+
test-exclude@^5.2.3:
version "5.2.3"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
@@ -10464,6 +11888,11 @@ test-exclude@^6.0.0:
glob "^7.1.4"
minimatch "^3.0.4"
+text-hex@1.0.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
+ integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -10576,6 +12005,11 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+to-gfm-code-block@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
+ integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
+
to-json-schema@0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f"
@@ -10689,6 +12123,11 @@ trim-repeated@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
+triple-beam@^1.2.0, triple-beam@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
+ integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
+
ts-jest@^27.0.3:
version "27.0.7"
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.7.tgz#fb7c8c8cb5526ab371bc1b23d06e745652cca2d0"
@@ -10787,6 +12226,11 @@ type-fest@^0.8.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+type-fest@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
+ integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
+
type-is@^1.6.14, type-is@^1.6.16:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -10802,11 +12246,33 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
+typeof-article@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
+ integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
+ dependencies:
+ kind-of "^3.1.0"
+
typescript@^4.3.5:
version "4.3.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
+uc.micro@^1.0.1, uc.micro@^1.0.5:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
+ integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
+
+uglify-js@^3.1.4:
+ version "3.14.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
+ integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
+
+uid2@0.0.x:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44"
+ integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==
+
unbox-primitive@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
@@ -10880,6 +12346,11 @@ universalify@^0.1.0, universalify@^0.1.2:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
unpipe@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -10956,6 +12427,14 @@ url-parse-lax@^3.0.0:
dependencies:
prepend-http "^2.0.0"
+url-parse@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862"
+ integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
url-to-options@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
@@ -10997,6 +12476,11 @@ util.promisify@^1.0.0, util.promisify@^1.0.1:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
+utils-merge@1.x.x:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
uuid@3.3.2, uuid@^3.1.0, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@@ -11056,7 +12540,7 @@ verror@1.3.6:
dependencies:
extsprintf "1.0.2"
-vm2@^3.9.3:
+vm2@^3.9.3, vm2@^3.9.4:
version "3.9.5"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
@@ -11087,6 +12571,22 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.12"
+watchpack@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.0.tgz#a41bca3da6afaff31e92a433f4c856a0c25ea0c4"
+ integrity sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+webfinger@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/webfinger/-/webfinger-0.4.2.tgz#3477a6d97799461896039fcffc650b73468ee76d"
+ integrity sha1-NHem2XeZRhiWA5/P/GULc0aO520=
+ dependencies:
+ step "0.0.x"
+ xml2js "0.1.x"
+
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -11107,6 +12607,75 @@ webidl-conversions@^6.1.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
+webpack-cli@^4.9.1:
+ version "4.9.1"
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.1.tgz#b64be825e2d1b130f285c314caa3b1ba9a4632b3"
+ integrity sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==
+ dependencies:
+ "@discoveryjs/json-ext" "^0.5.0"
+ "@webpack-cli/configtest" "^1.1.0"
+ "@webpack-cli/info" "^1.4.0"
+ "@webpack-cli/serve" "^1.6.0"
+ colorette "^2.0.14"
+ commander "^7.0.0"
+ execa "^5.0.0"
+ fastest-levenshtein "^1.0.12"
+ import-local "^3.0.2"
+ interpret "^2.2.0"
+ rechoir "^0.7.0"
+ webpack-merge "^5.7.3"
+
+webpack-merge@^5.7.3:
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61"
+ integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==
+ dependencies:
+ clone-deep "^4.0.1"
+ wildcard "^2.0.0"
+
+webpack-sources@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd"
+ integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
+ dependencies:
+ source-list-map "^2.0.1"
+ source-map "^0.6.1"
+
+webpack-sources@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260"
+ integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==
+
+webpack@^5.64.2:
+ version "5.64.3"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.64.3.tgz#f4792cc3f8528db2c18375fa2cd269f69e0bf69f"
+ integrity sha512-XF6/IL9Bw2PPQioiR1UYA8Bs4tX3QXJtSelezKECdLFeSFzWoe44zqTzPW5N+xI3fACaRl2/G3sNA4WYHD7Iww==
+ dependencies:
+ "@types/eslint-scope" "^3.7.0"
+ "@types/estree" "^0.0.50"
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/wasm-edit" "1.11.1"
+ "@webassemblyjs/wasm-parser" "1.11.1"
+ acorn "^8.4.1"
+ acorn-import-assertions "^1.7.6"
+ browserslist "^4.14.5"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^5.8.3"
+ es-module-lexer "^0.9.0"
+ eslint-scope "5.1.1"
+ events "^3.2.0"
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.2.4"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^4.2.0"
+ mime-types "^2.1.27"
+ neo-async "^2.6.2"
+ schema-utils "^3.1.0"
+ tapable "^2.1.1"
+ terser-webpack-plugin "^5.1.3"
+ watchpack "^2.2.0"
+ webpack-sources "^3.2.2"
+
whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
@@ -11191,11 +12760,44 @@ widest-line@^3.1.0:
dependencies:
string-width "^4.0.0"
+wildcard@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
+ integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
+
+winston-transport@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
+ integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==
+ dependencies:
+ readable-stream "^2.3.7"
+ triple-beam "^1.2.0"
+
+winston@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
+ integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
+ dependencies:
+ "@dabh/diagnostics" "^2.0.2"
+ async "^3.1.0"
+ is-stream "^2.0.0"
+ logform "^2.2.0"
+ one-time "^1.0.0"
+ readable-stream "^3.4.0"
+ stack-trace "0.0.x"
+ triple-beam "^1.3.0"
+ winston-transport "^4.4.0"
+
word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
+
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -11301,6 +12903,13 @@ xml-parse-from-string@^1.0.0:
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
+xml2js@0.1.x:
+ version "0.1.14"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c"
+ integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=
+ dependencies:
+ sax ">=0.1.1"
+
xml2js@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -11434,6 +13043,11 @@ yauzl@^2.4.2:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
+year@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
+ integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
+
ylru@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
@@ -11444,7 +13058,7 @@ yn@3.1.1:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-zlib@1.0.5:
+zlib@1.0.5, zlib@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0"
integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=
From f9b2a3c5e1580b78493d44700c186ca159e1c244 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Thu, 25 Nov 2021 18:12:12 +0100
Subject: [PATCH 0018/1026] Google sheets integration CRUD E2E
---
.../icons/GoogleSheets.svelte | 184 ++++
.../DatasourceNavigator/icons/index.js | 2 +
packages/builder/src/constants/index.js | 1 +
packages/server/package.json | 1 +
packages/server/src/definitions/datasource.ts | 1 +
.../server/src/integrations/googlesheets.ts | 193 ++++
packages/server/src/integrations/index.ts | 3 +
packages/server/yarn.lock | 911 +++++++++++++++++-
8 files changed, 1277 insertions(+), 19 deletions(-)
create mode 100644 packages/builder/src/components/backend/DatasourceNavigator/icons/GoogleSheets.svelte
create mode 100644 packages/server/src/integrations/googlesheets.ts
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/icons/GoogleSheets.svelte b/packages/builder/src/components/backend/DatasourceNavigator/icons/GoogleSheets.svelte
new file mode 100644
index 0000000000..0d376e4400
--- /dev/null
+++ b/packages/builder/src/components/backend/DatasourceNavigator/icons/GoogleSheets.svelte
@@ -0,0 +1,184 @@
+
+
+
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/icons/index.js b/packages/builder/src/components/backend/DatasourceNavigator/icons/index.js
index 56ae03dcc3..350fccf73f 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/icons/index.js
+++ b/packages/builder/src/components/backend/DatasourceNavigator/icons/index.js
@@ -11,6 +11,7 @@ import ArangoDB from "./ArangoDB.svelte"
import Rest from "./Rest.svelte"
import Budibase from "./Budibase.svelte"
import Oracle from "./Oracle.svelte"
+import GoogleSheets from "./GoogleSheets.svelte"
export default {
BUDIBASE: Budibase,
@@ -26,4 +27,5 @@ export default {
ARANGODB: ArangoDB,
REST: Rest,
ORACLE: Oracle,
+ GOOGLE_SHEETS: GoogleSheets,
}
diff --git a/packages/builder/src/constants/index.js b/packages/builder/src/constants/index.js
index 2b0fa6c95e..e6b2c68e58 100644
--- a/packages/builder/src/constants/index.js
+++ b/packages/builder/src/constants/index.js
@@ -28,6 +28,7 @@ export const IntegrationNames = {
AIRTABLE: "Airtable",
ARANGODB: "ArangoDB",
ORACLE: "Oracle",
+ GOOGLE_SHEETS: "Google Sheets",
}
// fields on the user table that cannot be edited
diff --git a/packages/server/package.json b/packages/server/package.json
index ca3ecfbccc..075a9578a7 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -88,6 +88,7 @@
"download": "8.0.0",
"fix-path": "3.0.0",
"fs-extra": "8.1.0",
+ "google-spreadsheet": "^3.2.0",
"jimp": "0.16.1",
"joi": "17.2.1",
"jsonschema": "1.4.0",
diff --git a/packages/server/src/definitions/datasource.ts b/packages/server/src/definitions/datasource.ts
index 3760f54f2c..af56dc2368 100644
--- a/packages/server/src/definitions/datasource.ts
+++ b/packages/server/src/definitions/datasource.ts
@@ -47,6 +47,7 @@ export enum SourceNames {
ARANGODB = "ARANGODB",
REST = "REST",
ORACLE = "ORACLE",
+ GOOGLE_SHEETS = "GOOGLE_SHEETS",
}
export enum IncludeRelationships {
diff --git a/packages/server/src/integrations/googlesheets.ts b/packages/server/src/integrations/googlesheets.ts
new file mode 100644
index 0000000000..eaffd98277
--- /dev/null
+++ b/packages/server/src/integrations/googlesheets.ts
@@ -0,0 +1,193 @@
+import {
+ DatasourceFieldTypes,
+ Integration,
+ QueryTypes,
+} from "../definitions/datasource"
+import { IntegrationBase } from "./base/IntegrationBase"
+import { GoogleSpreadsheet } from "google-spreadsheet"
+
+module GoogleSheetsModule {
+ interface GoogleSheetsConfig {
+ spreadsheetId: string
+ clientEmail: string
+ privateKey: string
+ }
+
+ const SCHEMA: Integration = {
+ docs: "https://developers.google.com/sheets/api/quickstart/nodejs",
+ description:
+ "Create and collaborate on online spreadsheets in real-time and from any device. ",
+ friendlyName: "Google Sheets",
+ datasource: {
+ spreadsheetId: {
+ type: DatasourceFieldTypes.STRING,
+ required: true,
+ },
+ clientEmail: {
+ type: DatasourceFieldTypes.STRING,
+ required: true,
+ },
+ privateKey: {
+ type: DatasourceFieldTypes.LONGFORM,
+ required: true,
+ },
+ },
+ query: {
+ create: {
+ type: QueryTypes.FIELDS,
+ fields: {
+ sheet: {
+ type: "string",
+ required: true,
+ },
+ row: {
+ type: QueryTypes.JSON,
+ required: true,
+ },
+ },
+ },
+ read: {
+ type: QueryTypes.FIELDS,
+ fields: {
+ sheet: {
+ type: "string",
+ required: true,
+ },
+ },
+ },
+ update: {
+ type: QueryTypes.FIELDS,
+ fields: {
+ sheet: {
+ type: "string",
+ required: true,
+ },
+ rowIndex: {
+ type: "number",
+ required: true,
+ },
+ row: {
+ type: QueryTypes.JSON,
+ required: true,
+ },
+ },
+ },
+ delete: {
+ type: QueryTypes.FIELDS,
+ fields: {
+ sheet: {
+ type: "string",
+ required: true,
+ },
+ rowIndex: {
+ type: "number",
+ required: true,
+ },
+ },
+ },
+ },
+ }
+
+ class GoogleSheetsIntegration implements IntegrationBase {
+ private readonly config: GoogleSheetsConfig
+ private client: any
+
+ constructor(config: GoogleSheetsConfig) {
+ this.config = config
+ this.client = new GoogleSpreadsheet(this.config.spreadsheetId)
+ }
+
+ async connect() {
+ try {
+ await this.client.useServiceAccountAuth({
+ // env var values are copied from service account credentials generated by google
+ // see "Authentication" section in docs for more info
+ client_email: this.config.clientEmail,
+ private_key: this.config.privateKey,
+ })
+ await this.client.loadInfo()
+ } catch (err) {
+ console.error("Error connecting to google sheets", err)
+ throw err
+ }
+ }
+
+ buildRowObject(headers: string[], values: string[]) {
+ const rowObject = {}
+ for (let i = 0; i < headers.length; i++) {
+ rowObject[headers[i]] = values[i]
+ }
+ return rowObject
+ }
+
+ async create(query: { sheet: string; row: string }) {
+ try {
+ await this.connect()
+ const sheet = await this.client.sheetsByTitle[query.sheet]
+ const rowToInsert = JSON.parse(query.row)
+ const row = await sheet.addRow(rowToInsert)
+ return [this.buildRowObject(sheet.headerValues, row._rawData)]
+ } catch (err) {
+ console.error("Error writing to google sheets", err)
+ throw err
+ }
+ }
+
+ async read(query: { sheet: string }) {
+ try {
+ await this.connect()
+ const sheet = await this.client.sheetsByTitle[query.sheet]
+ const rows = await sheet.getRows()
+ const headerValues = sheet.headerValues
+ const response = []
+ for (let row of rows) {
+ response.push(this.buildRowObject(headerValues, row._rawData))
+ }
+ return response
+ } catch (err) {
+ console.error("Error reading from google sheets", err)
+ throw err
+ }
+ }
+
+ async update(query: { sheet: string; rowIndex: number; row: string }) {
+ try {
+ await this.connect()
+ const sheet = await this.client.sheetsByTitle[query.sheet]
+ const rows = await sheet.getRows()
+ const row = rows[query.rowIndex]
+ if (row) {
+ const updateValues = JSON.parse(query.row)
+ for (let key in updateValues) {
+ row[key] = updateValues[key]
+ }
+ await row.save()
+ return [this.buildRowObject(sheet.headerValues, row._rawData)]
+ } else {
+ throw new Error("Row does not exist.")
+ }
+ } catch (err) {
+ console.error("Error reading from google sheets", err)
+ throw err
+ }
+ }
+
+ async delete(query: { sheet: string; rowIndex: number }) {
+ await this.connect()
+ const sheet = await this.client.sheetsByTitle[query.sheet]
+ const rows = await sheet.getRows()
+ const row = rows[query.rowIndex]
+ if (row) {
+ await row.delete()
+ return [{ deleted: query.rowIndex }]
+ } else {
+ throw new Error("Row does not exist.")
+ }
+ }
+ }
+
+ module.exports = {
+ schema: SCHEMA,
+ integration: GoogleSheetsIntegration,
+ }
+}
diff --git a/packages/server/src/integrations/index.ts b/packages/server/src/integrations/index.ts
index 8f2f083fc5..4679e658b6 100644
--- a/packages/server/src/integrations/index.ts
+++ b/packages/server/src/integrations/index.ts
@@ -9,6 +9,7 @@ const airtable = require("./airtable")
const mysql = require("./mysql")
const arangodb = require("./arangodb")
const rest = require("./rest")
+const googlesheets = require("./googlesheets")
const { SourceNames } = require("../definitions/datasource")
const DEFINITIONS = {
@@ -23,6 +24,7 @@ const DEFINITIONS = {
[SourceNames.MYSQL]: mysql.schema,
[SourceNames.ARANGODB]: arangodb.schema,
[SourceNames.REST]: rest.schema,
+ [SourceNames.GOOGLE_SHEETS]: googlesheets.schema,
}
const INTEGRATIONS = {
@@ -37,6 +39,7 @@ const INTEGRATIONS = {
[SourceNames.MYSQL]: mysql.integration,
[SourceNames.ARANGODB]: arangodb.integration,
[SourceNames.REST]: rest.integration,
+ [SourceNames.GOOGLE_SHEETS]: googlesheets.integration,
}
// optionally add oracle integration if the oracle binary can be installed
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index f609651afa..79dfe1e1b4 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -951,6 +951,30 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@budibase/auth@^0.9.185-alpha.22":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-0.9.189.tgz#60d2b1ead017aa5a32f58ffd6f155a042c73dd2b"
+ integrity sha512-dKB6J8bEW7vFWLErd7q4eYO6pBwCg28GemkY3w40EFE+l+hPp/8Y8kRvsnoPIXkViKIr/6/oW3XOh3g+OUW/RQ==
+ dependencies:
+ "@techpass/passport-openidconnect" "^0.3.0"
+ aws-sdk "^2.901.0"
+ bcryptjs "^2.4.3"
+ cls-hooked "^4.2.2"
+ ioredis "^4.27.1"
+ jsonwebtoken "^8.5.1"
+ koa-passport "^4.1.4"
+ lodash "^4.17.21"
+ lodash.isarguments "^3.1.0"
+ node-fetch "^2.6.1"
+ passport-google-auth "^1.0.2"
+ passport-google-oauth "^2.0.0"
+ passport-jwt "^4.0.0"
+ passport-local "^1.0.0"
+ sanitize-s3-objectkey "^0.0.1"
+ tar-fs "^2.1.1"
+ uuid "^8.3.2"
+ zlib "^1.0.5"
+
"@budibase/bbui@^0.9.139":
version "0.9.187"
resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.187.tgz#84f0a37301cfa41f50eaa335243ac08923d9e34f"
@@ -1000,6 +1024,94 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
+"@budibase/bbui@^0.9.189":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.189.tgz#d5802e9b6aabccdef4205f0edfa7ed5616ac1aff"
+ integrity sha512-YqM21mtrg8yTN9mqG4CnFfvoOelmhy3V69LyoITdQT6aGiwt/efHzknSlaUH3/0yLH9MuzwkHDzUmbe7QrsqEA==
+ dependencies:
+ "@adobe/spectrum-css-workflow-icons" "^1.2.1"
+ "@spectrum-css/actionbutton" "^1.0.1"
+ "@spectrum-css/actiongroup" "^1.0.1"
+ "@spectrum-css/avatar" "^3.0.2"
+ "@spectrum-css/button" "^3.0.1"
+ "@spectrum-css/buttongroup" "^3.0.2"
+ "@spectrum-css/checkbox" "^3.0.2"
+ "@spectrum-css/dialog" "^3.0.1"
+ "@spectrum-css/divider" "^1.0.3"
+ "@spectrum-css/dropzone" "^3.0.2"
+ "@spectrum-css/fieldgroup" "^3.0.2"
+ "@spectrum-css/fieldlabel" "^3.0.1"
+ "@spectrum-css/icon" "^3.0.1"
+ "@spectrum-css/illustratedmessage" "^3.0.2"
+ "@spectrum-css/inputgroup" "^3.0.2"
+ "@spectrum-css/label" "^2.0.10"
+ "@spectrum-css/link" "^3.1.1"
+ "@spectrum-css/menu" "^3.0.1"
+ "@spectrum-css/modal" "^3.0.1"
+ "@spectrum-css/pagination" "^3.0.3"
+ "@spectrum-css/picker" "^1.0.1"
+ "@spectrum-css/popover" "^3.0.1"
+ "@spectrum-css/progressbar" "^1.0.2"
+ "@spectrum-css/progresscircle" "^1.0.2"
+ "@spectrum-css/radio" "^3.0.2"
+ "@spectrum-css/search" "^3.0.2"
+ "@spectrum-css/sidenav" "^3.0.2"
+ "@spectrum-css/statuslight" "^3.0.2"
+ "@spectrum-css/stepper" "^3.0.3"
+ "@spectrum-css/switch" "^1.0.2"
+ "@spectrum-css/table" "^3.0.1"
+ "@spectrum-css/tabs" "^3.0.1"
+ "@spectrum-css/tags" "^3.0.2"
+ "@spectrum-css/textfield" "^3.0.1"
+ "@spectrum-css/toast" "^3.0.1"
+ "@spectrum-css/tooltip" "^3.0.3"
+ "@spectrum-css/treeview" "^3.0.2"
+ "@spectrum-css/typography" "^3.0.1"
+ "@spectrum-css/underlay" "^2.0.9"
+ "@spectrum-css/vars" "^3.0.1"
+ dayjs "^1.10.4"
+ svelte-flatpickr "^3.2.3"
+ svelte-portal "^1.0.0"
+
+"@budibase/client@^0.9.185-alpha.22":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.189.tgz#8f96b607f36bbb7390fd53b04360851f0c12aaac"
+ integrity sha512-L2i3CaQt4aFL7JKkRrEWWx8NemHTEOKLXvXq7LGM4u3GlcFIIkcL113EkXQT1bIZcf6AuuC2CfNsmZKioOPh2A==
+ dependencies:
+ "@budibase/bbui" "^0.9.189"
+ "@budibase/standard-components" "^0.9.139"
+ "@budibase/string-templates" "^0.9.189"
+ regexparam "^1.3.0"
+ shortid "^2.2.15"
+ svelte-spa-router "^3.0.5"
+
+"@budibase/handlebars-helpers@^0.11.7":
+ version "0.11.7"
+ resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46"
+ integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw==
+ dependencies:
+ array-sort "^1.0.0"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ for-in "^1.0.2"
+ get-object "^0.2.0"
+ get-value "^3.0.1"
+ handlebars "^4.7.7"
+ handlebars-utils "^1.0.6"
+ has-value "^2.0.2"
+ helper-date "^1.0.1"
+ helper-markdown "^1.0.0"
+ helper-md "^0.2.2"
+ html-tag "^2.0.0"
+ is-even "^1.0.0"
+ is-glob "^4.0.1"
+ kind-of "^6.0.3"
+ micromatch "^3.1.5"
+ relative "^3.0.2"
+ striptags "^3.1.1"
+ to-gfm-code-block "^0.1.1"
+ year "^0.2.1"
+
"@budibase/standard-components@^0.9.139":
version "0.9.139"
resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3"
@@ -1018,6 +1130,18 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
+"@budibase/string-templates@^0.9.185-alpha.22", "@budibase/string-templates@^0.9.189":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.189.tgz#515a4ce85da550ce19d78c4c592ab5839a8ebe3a"
+ integrity sha512-JmnpuPx1CItNIFCMUxBz+4DVpYu96QxteU2Vi17pjWb0B7qsWwHkmcMmYbd+iTW4oxgOufbP8slfyfbu2XhbzA==
+ dependencies:
+ "@budibase/handlebars-helpers" "^0.11.7"
+ dayjs "^1.10.4"
+ handlebars "^4.7.6"
+ handlebars-utils "^1.0.6"
+ lodash "^4.17.20"
+ vm2 "^3.9.4"
+
"@bull-board/api@3.7.0", "@bull-board/api@^3.7.0":
version "3.7.0"
resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af"
@@ -2053,6 +2177,17 @@
dependencies:
defer-to-connect "^1.0.1"
+"@techpass/passport-openidconnect@^0.3.0":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@techpass/passport-openidconnect/-/passport-openidconnect-0.3.2.tgz#f8fd5d97256286665dbf26dac92431f977ab1e63"
+ integrity sha512-fnCtEiexXSHA029B//hJcCJlLJrT3lhpNCyA0rnz58Qttz0BLGCVv6yMT8HmOnGThH6vcDOVwdgKM3kbCQtEhw==
+ dependencies:
+ base64url "^3.0.1"
+ oauth "^0.9.15"
+ passport-strategy "^1.0.0"
+ request "^2.88.0"
+ webfinger "^0.4.2"
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -2695,7 +2830,7 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-argparse@^1.0.7:
+argparse@^1.0.10, argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@@ -2737,6 +2872,15 @@ array-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
+array-sort@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
+ integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
+ dependencies:
+ default-compare "^1.0.0"
+ get-value "^2.0.6"
+ kind-of "^5.0.2"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -2747,6 +2891,11 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+arrify@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
+ integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+
asn1@~0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
@@ -2779,6 +2928,13 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+async-hook-jl@^1.7.6:
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68"
+ integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==
+ dependencies:
+ stack-chain "^1.3.7"
+
async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@@ -2796,6 +2952,13 @@ async@^2.6.3:
dependencies:
lodash "^4.17.14"
+async@~2.1.4:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
+ integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=
+ dependencies:
+ lodash "^4.14.0"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -2811,6 +2974,13 @@ atomic-sleep@^1.0.0:
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+autolinker@~0.28.0:
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
+ integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
+ dependencies:
+ gulp-header "^1.7.1"
+
aws-sdk@^2.767.0:
version "2.1030.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1030.0.tgz#24a856af3d2b8b37c14a8f59974993661c66fd82"
@@ -2826,6 +2996,21 @@ aws-sdk@^2.767.0:
uuid "3.3.2"
xml2js "0.4.19"
+aws-sdk@^2.901.0:
+ version "2.1036.0"
+ resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1036.0.tgz#47f0d0a38b5bfbd4a7a382a6756a6aa7af627aad"
+ integrity sha512-K0f4uXL32ZdoPmWiuSQEAC5ae5v7gNmhjzoEB7VonE5E8l2umWsoU0Ahm8WPr14LgsvtkeyBuqBjphbxLz6hIw==
+ dependencies:
+ buffer "4.9.2"
+ events "1.1.1"
+ ieee754 "1.1.13"
+ jmespath "0.15.0"
+ querystring "0.2.0"
+ sax "1.2.1"
+ url "0.10.3"
+ uuid "3.3.2"
+ xml2js "0.4.19"
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -3003,11 +3188,16 @@ base62@^1.1.0:
resolved "https://registry.yarnpkg.com/base62/-/base62-1.2.8.tgz#1264cb0fb848d875792877479dbe8bae6bae3428"
integrity sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA==
-base64-js@^1.0.2, base64-js@^1.3.1:
+base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+base64url@3.x.x, base64url@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
+ integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==
+
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -3028,11 +3218,16 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-bcryptjs@2.4.3:
+bcryptjs@2.4.3, bcryptjs@^2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb"
integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=
+bignumber.js@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5"
+ integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==
+
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
@@ -3068,6 +3263,15 @@ bl@^3.0.0:
dependencies:
readable-stream "^3.0.1"
+bl@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
bluebird@^3.5.1, bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -3405,6 +3609,11 @@ chokidar@^3.5.2:
optionalDependencies:
fsevents "~2.3.2"
+chownr@^1.1.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
@@ -3477,6 +3686,15 @@ clone-response@1.0.2, clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
+cls-hooked@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908"
+ integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==
+ dependencies:
+ async-hook-jl "^1.7.6"
+ emitter-listener "^1.0.1"
+ semver "^5.4.1"
+
cluster-key-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -3593,6 +3811,13 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+concat-with-sourcemaps@*:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
+ integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
+ dependencies:
+ source-map "^0.6.1"
+
condense-newlines@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
@@ -3826,6 +4051,13 @@ date-utils@*:
resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=
+date.js@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda"
+ integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw==
+ dependencies:
+ debug "~3.1.0"
+
dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
@@ -3969,6 +4201,13 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+default-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
+ integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
+ dependencies:
+ kind-of "^5.0.2"
+
default-shell@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc"
@@ -4194,7 +4433,7 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-ecdsa-sig-formatter@1.0.11:
+ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
@@ -4228,6 +4467,13 @@ electron-to-chromium@^1.3.896:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5"
integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ==
+emitter-listener@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
+ integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==
+ dependencies:
+ shimmer "^1.2.0"
+
emittery@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
@@ -4258,7 +4504,7 @@ encoding-down@^6.3.0:
level-codec "^9.0.0"
level-errors "^2.0.0"
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -4272,6 +4518,11 @@ end-stream@~0.1.0:
dependencies:
write-stream "~0.4.3"
+ent@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
+ integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
+
errno@~0.1.1, errno@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@@ -4682,7 +4933,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@^3.0.0, extend@~3.0.2:
+extend@^3.0.0, extend@^3.0.2, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@@ -4761,6 +5012,11 @@ fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.0.8:
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
+fast-text-encoding@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53"
+ integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==
+
fast-url-parser@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d"
@@ -5031,6 +5287,11 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+fs-exists-sync@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
+ integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=
+
fs-extra@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -5068,6 +5329,25 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+gaxios@^4.0.0:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.2.tgz#845827c2dc25a0213c8ab4155c7a28910f5be83f"
+ integrity sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==
+ dependencies:
+ abort-controller "^3.0.0"
+ extend "^3.0.2"
+ https-proxy-agent "^5.0.0"
+ is-stream "^2.0.0"
+ node-fetch "^2.6.1"
+
+gcp-metadata@^4.2.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9"
+ integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==
+ dependencies:
+ gaxios "^4.0.0"
+ json-bigint "^1.0.0"
+
generate-function@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
@@ -5094,6 +5374,14 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
+get-object@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c"
+ integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw=
+ dependencies:
+ is-number "^2.0.2"
+ isobject "^0.2.0"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -5156,6 +5444,13 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+get-value@^3.0.0, get-value@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
+ integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
+ dependencies:
+ isobject "^3.0.1"
+
getopts@2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
@@ -5245,6 +5540,63 @@ globby@^11.0.3:
merge2 "^1.3.0"
slash "^3.0.0"
+google-auth-library@^6.1.3:
+ version "6.1.6"
+ resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572"
+ integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==
+ dependencies:
+ arrify "^2.0.0"
+ base64-js "^1.3.0"
+ ecdsa-sig-formatter "^1.0.11"
+ fast-text-encoding "^1.0.0"
+ gaxios "^4.0.0"
+ gcp-metadata "^4.2.0"
+ gtoken "^5.0.4"
+ jws "^4.0.0"
+ lru-cache "^6.0.0"
+
+google-auth-library@~0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e"
+ integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24=
+ dependencies:
+ gtoken "^1.2.1"
+ jws "^3.1.4"
+ lodash.noop "^3.0.1"
+ request "^2.74.0"
+
+google-p12-pem@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177"
+ integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=
+ dependencies:
+ node-forge "^0.7.1"
+
+google-p12-pem@^3.0.3:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.2.tgz#c3d61c2da8e10843ff830fdb0d2059046238c1d4"
+ integrity sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==
+ dependencies:
+ node-forge "^0.10.0"
+
+google-spreadsheet@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/google-spreadsheet/-/google-spreadsheet-3.2.0.tgz#ce8aa75c15705aa950ad52b091a6fc4d33dcb329"
+ integrity sha512-z7XMaqb+26rdo8p51r5O03u8aPLAPzn5YhOXYJPcf2hdMVr0dUbIARgdkRdmGiBeoV/QoU/7VNhq1MMCLZv3kQ==
+ dependencies:
+ axios "^0.21.4"
+ google-auth-library "^6.1.3"
+ lodash "^4.17.21"
+
+googleapis@^16.0.0:
+ version "16.1.0"
+ resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576"
+ integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY=
+ dependencies:
+ async "~2.1.4"
+ google-auth-library "~0.10.0"
+ string-template "~1.0.0"
+
got@^8.3.1:
version "8.3.2"
resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937"
@@ -5290,6 +5642,54 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
+gtoken@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8"
+ integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w==
+ dependencies:
+ google-p12-pem "^0.1.0"
+ jws "^3.0.0"
+ mime "^1.4.1"
+ request "^2.72.0"
+
+gtoken@^5.0.4:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.1.tgz#c1c2598a826f2b5df7c6bb53d7be6cf6d50c3c78"
+ integrity sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==
+ dependencies:
+ gaxios "^4.0.0"
+ google-p12-pem "^3.0.3"
+ jws "^4.0.0"
+
+gulp-header@^1.7.1:
+ version "1.8.12"
+ resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
+ integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
+ dependencies:
+ concat-with-sourcemaps "*"
+ lodash.template "^4.4.0"
+ through2 "^2.0.0"
+
+handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9"
+ integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw==
+ dependencies:
+ kind-of "^6.0.0"
+ typeof-article "^0.1.1"
+
+handlebars@^4.7.6, handlebars@^4.7.7:
+ version "4.7.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+ integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.0"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -5360,6 +5760,14 @@ has-value@^1.0.0:
has-values "^1.0.0"
isobject "^3.0.0"
+has-value@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
+ integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
+ dependencies:
+ get-value "^3.0.0"
+ has-values "^2.0.1"
+
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
@@ -5373,6 +5781,13 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
+has-values@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
+ integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
+ dependencies:
+ kind-of "^6.0.2"
+
has-yarn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@@ -5385,6 +5800,39 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+helper-date@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb"
+ integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w==
+ dependencies:
+ date.js "^0.3.1"
+ handlebars-utils "^1.0.4"
+ moment "^2.18.1"
+
+helper-markdown@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10"
+ integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA==
+ dependencies:
+ handlebars-utils "^1.0.2"
+ highlight.js "^9.12.0"
+ remarkable "^1.7.1"
+
+helper-md@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f"
+ integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8=
+ dependencies:
+ ent "^2.2.0"
+ extend-shallow "^2.0.1"
+ fs-exists-sync "^0.1.0"
+ remarkable "^1.6.2"
+
+highlight.js@^9.12.0:
+ version "9.18.5"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
+ integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -5414,6 +5862,14 @@ html-escaper@^2.0.0:
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+html-tag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed"
+ integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g==
+ dependencies:
+ is-self-closing "^1.0.1"
+ kind-of "^6.0.0"
+
http-assert@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
@@ -5677,6 +6133,23 @@ ioredis@^4.27.0:
redis-parser "^3.0.0"
standard-as-callback "^2.1.0"
+ioredis@^4.27.1:
+ version "4.28.1"
+ resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.1.tgz#c2a7038d6a187e020d7045e11d6a677e8b51f785"
+ integrity sha512-7gcrUJEcPHWy+eEyq6wIZpXtfHt8crhbc5+z0sqrnHUkwBblXinygfamj+/jx83Qo+2LW3q87Nj2VsuH6BF2BA==
+ dependencies:
+ cluster-key-slot "^1.1.0"
+ debug "^4.3.1"
+ denque "^1.1.0"
+ lodash.defaults "^4.2.0"
+ lodash.flatten "^4.4.0"
+ lodash.isarguments "^3.1.0"
+ p-map "^2.1.0"
+ redis-commands "1.7.0"
+ redis-errors "^1.2.0"
+ redis-parser "^3.0.0"
+ standard-as-callback "^2.1.0"
+
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
@@ -5796,6 +6269,13 @@ is-docker@^2.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+is-even@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06"
+ integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY=
+ dependencies:
+ is-odd "^0.1.2"
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -5885,6 +6365,13 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
+is-number@^2.0.2:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+ dependencies:
+ kind-of "^3.0.2"
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -5907,6 +6394,13 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+is-odd@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
+ integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
+ dependencies:
+ is-number "^3.0.0"
+
is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -5952,6 +6446,13 @@ is-retry-allowed@^2.2.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
+is-self-closing@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
+ integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
+ dependencies:
+ self-closing-tags "^1.0.1"
+
is-shared-array-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
@@ -6044,6 +6545,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+isobject@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e"
+ integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4=
+
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@@ -7015,6 +7521,13 @@ jsesc@~0.5.0:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+json-bigint@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1"
+ integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==
+ dependencies:
+ bignumber.js "^9.0.0"
+
json-buffer@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
@@ -7064,6 +7577,22 @@ jsonschema@1.4.0:
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2"
integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==
+jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+ integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+ dependencies:
+ jws "^3.2.2"
+ lodash.includes "^4.3.0"
+ lodash.isboolean "^3.0.3"
+ lodash.isinteger "^4.0.4"
+ lodash.isnumber "^3.0.3"
+ lodash.isplainobject "^4.0.6"
+ lodash.isstring "^4.0.1"
+ lodash.once "^4.0.0"
+ ms "^2.1.1"
+ semver "^5.6.0"
+
jsprim@^1.2.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
@@ -7103,7 +7632,16 @@ jwa@^1.4.1:
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
-jws@3.x.x:
+jwa@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc"
+ integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==
+ dependencies:
+ buffer-equal-constant-time "1.0.1"
+ ecdsa-sig-formatter "1.0.11"
+ safe-buffer "^5.0.1"
+
+jws@3.x.x, jws@^3.0.0, jws@^3.1.4, jws@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
@@ -7111,6 +7649,14 @@ jws@3.x.x:
jwa "^1.4.1"
safe-buffer "^5.0.1"
+jws@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4"
+ integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==
+ dependencies:
+ jwa "^2.0.0"
+ safe-buffer "^5.0.1"
+
keygrip@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc"
@@ -7130,7 +7676,7 @@ keyv@3.0.0, keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -7144,12 +7690,12 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
-kind-of@^5.0.0:
+kind-of@^5.0.0, kind-of@^5.0.2:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-kind-of@^6.0.0, kind-of@^6.0.2:
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@@ -7244,6 +7790,13 @@ koa-mount@^4.0.0:
debug "^4.0.1"
koa-compose "^4.1.0"
+koa-passport@^4.1.4:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa"
+ integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg==
+ dependencies:
+ passport "^0.4.0"
+
koa-pino-logger@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba"
@@ -7560,6 +8113,11 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
+lodash._reinterpolate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -7575,16 +8133,46 @@ lodash.flatten@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
lodash.isarguments@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+lodash.isboolean@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+ integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
+lodash.isinteger@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+ integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+
+lodash.isnumber@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+ integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
lodash.keys@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
@@ -7600,11 +8188,21 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+lodash.noop@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c"
+ integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=
+
lodash.omit@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+lodash.once@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+ integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+
lodash.pick@^4.0.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -7615,6 +8213,21 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+lodash.template@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
+ integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+
lodash.without@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
@@ -7625,7 +8238,7 @@ lodash.xor@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6"
integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=
-lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
+lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -7795,7 +8408,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^3.1.10, micromatch@^3.1.4:
+micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -7896,6 +8509,11 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
+mkdirp-classic@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+ integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -7915,7 +8533,7 @@ moment-timezone@^0.5.31:
dependencies:
moment ">= 2.9.0"
-"moment@>= 2.9.0":
+"moment@>= 2.9.0", moment@^2.18.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -8015,6 +8633,11 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
+nanoid@^2.1.0:
+ version "2.1.11"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
+ integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
+
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -8062,6 +8685,11 @@ negotiator@0.6.2:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+neo-async@^2.6.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -8084,6 +8712,16 @@ node-fetch@^2.6.1:
dependencies:
whatwg-url "^5.0.0"
+node-forge@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
+ integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+
+node-forge@^0.7.1:
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
+ integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
+
node-gyp-build@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
@@ -8202,6 +8840,11 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+oauth@0.9.x, oauth@^0.9.15:
+ version "0.9.15"
+ resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
+ integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE=
+
object-assign@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
@@ -8499,6 +9142,84 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+passport-google-auth@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/passport-google-auth/-/passport-google-auth-1.0.2.tgz#8b300b5aa442ef433de1d832ed3112877d0b2938"
+ integrity sha1-izALWqRC70M94dgy7TESh30LKTg=
+ dependencies:
+ googleapis "^16.0.0"
+ passport-strategy "1.x"
+
+passport-google-oauth1@1.x.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz#af74a803df51ec646f66a44d82282be6f108e0cc"
+ integrity sha1-r3SoA99R7GRvZqRNgigr5vEI4Mw=
+ dependencies:
+ passport-oauth1 "1.x.x"
+
+passport-google-oauth20@2.x.x:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef"
+ integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==
+ dependencies:
+ passport-oauth2 "1.x.x"
+
+passport-google-oauth@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth/-/passport-google-oauth-2.0.0.tgz#f6eb4bc96dd6c16ec0ecfdf4e05ec48ca54d4dae"
+ integrity sha512-JKxZpBx6wBQXX1/a1s7VmdBgwOugohH+IxCy84aPTZNq/iIPX6u7Mqov1zY7MKRz3niFPol0KJz8zPLBoHKtYA==
+ dependencies:
+ passport-google-oauth1 "1.x.x"
+ passport-google-oauth20 "2.x.x"
+
+passport-jwt@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065"
+ integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==
+ dependencies:
+ jsonwebtoken "^8.2.0"
+ passport-strategy "^1.0.0"
+
+passport-local@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee"
+ integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=
+ dependencies:
+ passport-strategy "1.x.x"
+
+passport-oauth1@1.x.x:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9"
+ integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==
+ dependencies:
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ utils-merge "1.x.x"
+
+passport-oauth2@1.x.x:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
+ integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
+ dependencies:
+ base64url "3.x.x"
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ uid2 "0.0.x"
+ utils-merge "1.x.x"
+
+passport-strategy@1.x, passport-strategy@1.x.x, passport-strategy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
+ integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=
+
+passport@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270"
+ integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==
+ dependencies:
+ passport-strategy "1.x.x"
+ pause "0.0.1"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -8553,6 +9274,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pause@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
+ integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -9249,7 +9975,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -9383,6 +10109,16 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexparam@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c"
+ integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==
+
+regexparam@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
+ integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
+
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
@@ -9426,6 +10162,21 @@ regjsparser@^0.7.0:
dependencies:
jsesc "~0.5.0"
+relative@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
+ integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
+ dependencies:
+ isobject "^2.0.0"
+
+remarkable@^1.6.2, remarkable@^1.7.1:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
+ integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
+ dependencies:
+ argparse "^1.0.10"
+ autolinker "~0.28.0"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -9462,7 +10213,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.87.0:
+request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -9664,6 +10415,11 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
+sanitize-s3-objectkey@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e"
+ integrity sha512-ZTk7aqLxy4sD40GWcYWoLfbe05XLmkKvh6vGKe13ADlei24xlezcvjgKy1qRArlaIbIMYaqK7PCalvZtulZlaQ==
+
saslprep@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
@@ -9676,7 +10432,7 @@ sax@1.2.1:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o=
-sax@>=0.6.0, sax@^1.2.4:
+sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -9700,6 +10456,11 @@ seek-bzip@^1.0.5:
dependencies:
commander "^2.8.1"
+self-closing-tags@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d"
+ integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==
+
semver-diff@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
@@ -9707,7 +10468,7 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9804,6 +10565,18 @@ shell-path@^2.1.0:
dependencies:
shell-env "^0.3.0"
+shimmer@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
+ integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
+
+shortid@^2.2.15:
+ version "2.2.16"
+ resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
+ integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
+ dependencies:
+ nanoid "^2.1.0"
+
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -10053,6 +10826,11 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
+stack-chain@^1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
+ integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
+
stack-utils@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
@@ -10095,6 +10873,11 @@ stealthy-require@^1.1.1:
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
+step@0.0.x:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/step/-/step-0.0.6.tgz#143e7849a5d7d3f4a088fe29af94915216eeede2"
+ integrity sha1-FD54SaXX0/SgiP4pr5SRUhbu7eI=
+
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -10108,6 +10891,11 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
+string-template@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96"
+ integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=
+
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -10233,6 +11021,11 @@ strip-outer@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
+striptags@^3.1.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
+ integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
+
sublevel-pouchdb@7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz#49e46cd37883bf7ff5006d7c5b9bcc7bcc1f422f"
@@ -10322,6 +11115,13 @@ svelte-portal@^1.0.0:
resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3"
integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q==
+svelte-spa-router@^3.0.5:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee"
+ integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==
+ dependencies:
+ regexparam "2.0.0"
+
svelte@^3.38.2:
version "3.44.1"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63"
@@ -10397,6 +11197,16 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
+tar-fs@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+ integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
+ dependencies:
+ chownr "^1.1.1"
+ mkdirp-classic "^0.5.2"
+ pump "^3.0.0"
+ tar-stream "^2.1.4"
+
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
@@ -10410,6 +11220,17 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
+tar-stream@^2.1.4:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+ integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
tarn@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d"
@@ -10576,6 +11397,11 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+to-gfm-code-block@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
+ integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
+
to-json-schema@0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f"
@@ -10802,11 +11628,28 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
+typeof-article@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
+ integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
+ dependencies:
+ kind-of "^3.1.0"
+
typescript@^4.3.5:
version "4.3.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
+uglify-js@^3.1.4:
+ version "3.14.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
+ integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
+
+uid2@0.0.x:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44"
+ integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==
+
unbox-primitive@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
@@ -10997,6 +11840,11 @@ util.promisify@^1.0.0, util.promisify@^1.0.1:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
+utils-merge@1.x.x:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
uuid@3.3.2, uuid@^3.1.0, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@@ -11056,7 +11904,7 @@ verror@1.3.6:
dependencies:
extsprintf "1.0.2"
-vm2@^3.9.3:
+vm2@^3.9.3, vm2@^3.9.4:
version "3.9.5"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
@@ -11087,6 +11935,14 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.12"
+webfinger@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/webfinger/-/webfinger-0.4.2.tgz#3477a6d97799461896039fcffc650b73468ee76d"
+ integrity sha1-NHem2XeZRhiWA5/P/GULc0aO520=
+ dependencies:
+ step "0.0.x"
+ xml2js "0.1.x"
+
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -11196,6 +12052,11 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
+
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -11301,6 +12162,13 @@ xml-parse-from-string@^1.0.0:
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
+xml2js@0.1.x:
+ version "0.1.14"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c"
+ integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=
+ dependencies:
+ sax ">=0.1.1"
+
xml2js@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -11434,6 +12302,11 @@ yauzl@^2.4.2:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
+year@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
+ integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
+
ylru@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
@@ -11444,7 +12317,7 @@ yn@3.1.1:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-zlib@1.0.5:
+zlib@1.0.5, zlib@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0"
integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=
From 71ba024974fa5681865a42d88cf0114c2184d3a0 Mon Sep 17 00:00:00 2001
From: Rory Powell
Date: Thu, 25 Nov 2021 17:14:07 +0000
Subject: [PATCH 0019/1026] WIP: Rest API import
---
packages/bbui/src/Form/Core/Dropzone.svelte | 27 ++++
packages/bbui/src/Form/Dropzone.svelte | 2 +
packages/bbui/src/Modal/ModalContent.svelte | 25 ++++
.../modals/CreateDatasourceModal.svelte | 24 ++++
.../modals/ImportRestDatasourceModal.svelte | 103 ++++++++++++++
.../builder/src/stores/backend/datasources.js | 5 +
packages/builder/yarn.lock | 28 ++--
packages/server/src/api/controllers/query.js | 130 ++++++++++++++++++
packages/server/src/api/routes/query.js | 5 +
packages/server/src/integrations/index.ts | 4 +-
packages/server/src/integrations/oracle.ts | 29 ++--
packages/server/src/integrations/utils.ts | 8 +-
12 files changed, 364 insertions(+), 26 deletions(-)
create mode 100644 packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
diff --git a/packages/bbui/src/Form/Core/Dropzone.svelte b/packages/bbui/src/Form/Core/Dropzone.svelte
index a543dea1d4..1595a2ea92 100644
--- a/packages/bbui/src/Form/Core/Dropzone.svelte
+++ b/packages/bbui/src/Form/Core/Dropzone.svelte
@@ -6,6 +6,8 @@
import { generateID } from "../../utils/helpers"
import Icon from "../../Icon/Icon.svelte"
import Link from "../../Link/Link.svelte"
+ import Tag from "../../Tags/Tag.svelte"
+ import Tags from "../../Tags/Tags.svelte"
const BYTES_IN_KB = 1000
const BYTES_IN_MB = 1000000
@@ -18,6 +20,7 @@
export let handleFileTooLarge = null
export let gallery = true
export let error = null
+ export let fileTags = []
const dispatch = createEventDispatcher()
const imageExtensions = [
@@ -278,6 +281,19 @@
from your computer
+ {#if fileTags.length}
+
+
+
+ {/if}
{/if}
@@ -390,4 +406,15 @@
.disabled .spectrum-Heading--sizeL {
color: var(--spectrum-alias-text-color-disabled);
}
+
+ .tags {
+ margin-top: 20px;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+
+ .tag {
+ margin-top: 8px;
+ }
diff --git a/packages/bbui/src/Form/Dropzone.svelte b/packages/bbui/src/Form/Dropzone.svelte
index f8facaada9..a8a160010d 100644
--- a/packages/bbui/src/Form/Dropzone.svelte
+++ b/packages/bbui/src/Form/Dropzone.svelte
@@ -12,6 +12,7 @@
export let processFiles = undefined
export let handleFileTooLarge = undefined
export let gallery = true
+ export let fileTags = []
const dispatch = createEventDispatcher()
const onChange = e => {
@@ -29,6 +30,7 @@
{processFiles}
{handleFileTooLarge}
{gallery}
+ {fileTags}
on:change={onChange}
/>
diff --git a/packages/bbui/src/Modal/ModalContent.svelte b/packages/bbui/src/Modal/ModalContent.svelte
index 09cc4f6c52..7f2d7fbdb9 100644
--- a/packages/bbui/src/Modal/ModalContent.svelte
+++ b/packages/bbui/src/Modal/ModalContent.svelte
@@ -18,10 +18,22 @@
export let disabled = false
export let showDivider = true
+ export let showSecondaryButton = false
+ export let secondaryButtonText = undefined
+ export let secondaryAction = undefined
+
const { hide, cancel } = getContext(Context.Modal)
let loading = false
$: confirmDisabled = disabled || loading
+ async function secondary() {
+ loading = true
+ if (!secondaryAction || (await secondaryAction()) !== false) {
+ hide()
+ }
+ loading = false
+ }
+
async function confirm() {
loading = true
if (!onConfirm || (await onConfirm()) !== false) {
@@ -73,6 +85,15 @@
class="spectrum-ButtonGroup spectrum-Dialog-buttonGroup spectrum-Dialog-buttonGroup--noFooter"
>
+
+ {#if showSecondaryButton && secondaryButtonText && secondaryAction}
+
+
+
+ {/if}
+
{#if showCancelButton}
{/if}
@@ -136,4 +157,8 @@
display: flex;
justify-content: space-between;
}
+
+ .secondary-action {
+ margin-right: auto;
+ }
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte
index 1a433785dc..1fc3937ba0 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte
@@ -6,12 +6,18 @@
import { IntegrationNames } from "constants"
import CreateTableModal from "components/backend/TableNavigator/modals/CreateTableModal.svelte"
import DatasourceConfigModal from "components/backend/DatasourceNavigator/modals/DatasourceConfigModal.svelte"
+ import ImportRestDatasourceModal from "./ImportRestDatasourceModal.svelte"
export let modal
let integrations = []
let integration = {}
let internalTableModal
let externalDatasourceModal
+ let importModal
+
+ $: showImportButton = false
+
+ checkShowImport()
const INTERNAL = "BUDIBASE"
@@ -33,6 +39,15 @@
config,
schema: selected.datasource,
}
+ checkShowImport()
+ }
+
+ function checkShowImport() {
+ showImportButton = integration.type === "REST"
+ }
+
+ function showImportModal() {
+ importModal.show()
}
function chooseNextModal() {
@@ -63,11 +78,20 @@
+
+ {#if integration.type === "REST"}
+
+ {/if}
+
+
showImportModal()}
showCancelButton={false}
size="M"
onConfirm={() => {
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
new file mode 100644
index 0000000000..dd25880491
--- /dev/null
+++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
@@ -0,0 +1,103 @@
+
+
+ importDatasource()}
+ onCancel={() => modal.show()}
+ confirmText={"Import"}
+ cancelText="Back"
+ size="L"
+>
+
+ Import
+ Import your rest collection using one of the options below
+
+
+ (lastTouched = "url")}
+ label="Enter a URL"
+ placeholder="e.g. https://petstore.swagger.io/v2/swagger.json"
+ />
+
+
+ (lastTouched = "file")}
+ fileTags={["OpenAPI", "Swagger 2.0"]}
+ />
+
+
+
+
+
+
+
+
diff --git a/packages/builder/src/stores/backend/datasources.js b/packages/builder/src/stores/backend/datasources.js
index 7810c3a950..2d4fbdfb0b 100644
--- a/packages/builder/src/stores/backend/datasources.js
+++ b/packages/builder/src/stores/backend/datasources.js
@@ -84,6 +84,11 @@ export function createDatasourcesStore() {
return updateDatasource(response)
},
+ import: async body => {
+ let response
+ response = await api.post(`/api/queries/import/swagger2`, body)
+ return updateDatasource(response)
+ },
delete: async datasource => {
const response = await api.delete(
`/api/datasources/${datasource._id}/${datasource._rev}`
diff --git a/packages/builder/yarn.lock b/packages/builder/yarn.lock
index f3d3362bd3..b76300b9ea 100644
--- a/packages/builder/yarn.lock
+++ b/packages/builder/yarn.lock
@@ -969,10 +969,10 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
-"@budibase/bbui@^0.9.185-alpha.12", "@budibase/bbui@^0.9.188":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.188.tgz#82c108172fbf81a84378e0ef4ca7cba61ea8d0ba"
- integrity sha512-KevJxHdASITX9RzLvm+b2K3VMwqYFTumvrlpStAP6UIoyPkls0xaAc2KiJJ7Kkq48UkkBtAbOYaMxsFbAaTsbQ==
+"@budibase/bbui@^0.9.185-alpha.21", "@budibase/bbui@^0.9.189":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.189.tgz#d5802e9b6aabccdef4205f0edfa7ed5616ac1aff"
+ integrity sha512-YqM21mtrg8yTN9mqG4CnFfvoOelmhy3V69LyoITdQT6aGiwt/efHzknSlaUH3/0yLH9MuzwkHDzUmbe7QrsqEA==
dependencies:
"@adobe/spectrum-css-workflow-icons" "^1.2.1"
"@spectrum-css/actionbutton" "^1.0.1"
@@ -1018,14 +1018,14 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
-"@budibase/client@^0.9.185-alpha.12":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.188.tgz#c5bf6f3bccdb370b236b9e69e0118334ad3eccfd"
- integrity sha512-yP2WLWb2yQAwPBxVzpNGjSHpATMZMzcxl2gK6vw662F7YC8xGFHNfZZqEwPvrVwnx+d7LFZR/kJxJOvvk7YCVw==
+"@budibase/client@^0.9.185-alpha.21":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.189.tgz#8f96b607f36bbb7390fd53b04360851f0c12aaac"
+ integrity sha512-L2i3CaQt4aFL7JKkRrEWWx8NemHTEOKLXvXq7LGM4u3GlcFIIkcL113EkXQT1bIZcf6AuuC2CfNsmZKioOPh2A==
dependencies:
- "@budibase/bbui" "^0.9.188"
+ "@budibase/bbui" "^0.9.189"
"@budibase/standard-components" "^0.9.139"
- "@budibase/string-templates" "^0.9.188"
+ "@budibase/string-templates" "^0.9.189"
regexparam "^1.3.0"
shortid "^2.2.15"
svelte-spa-router "^3.0.5"
@@ -1080,10 +1080,10 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
-"@budibase/string-templates@^0.9.185-alpha.12", "@budibase/string-templates@^0.9.188":
- version "0.9.188"
- resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.188.tgz#f37836ed23dbd2217cb157030ada7cd59f6a2165"
- integrity sha512-O/bL0I5OJO9W2OizIe9vBHowCLwwASPBrsGiAIB8L0x6AivYMq8j1mvNRwLXZjpHTjv86bU/LyG/3CP837oDsg==
+"@budibase/string-templates@^0.9.185-alpha.21", "@budibase/string-templates@^0.9.189":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.189.tgz#515a4ce85da550ce19d78c4c592ab5839a8ebe3a"
+ integrity sha512-JmnpuPx1CItNIFCMUxBz+4DVpYu96QxteU2Vi17pjWb0B7qsWwHkmcMmYbd+iTW4oxgOufbP8slfyfbu2XhbzA==
dependencies:
"@budibase/handlebars-helpers" "^0.11.7"
dayjs "^1.10.4"
diff --git a/packages/server/src/api/controllers/query.js b/packages/server/src/api/controllers/query.js
index 502ef5e67b..13b14a6343 100644
--- a/packages/server/src/api/controllers/query.js
+++ b/packages/server/src/api/controllers/query.js
@@ -5,6 +5,10 @@ const { BaseQueryVerbs } = require("../../constants")
const env = require("../../environment")
const { Thread, ThreadType } = require("../../threads")
+const fetch = require("node-fetch")
+const Joi = require("joi")
+const { save: saveDatasource } = require("./datasource")
+
const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
// simple function to append "readable" to all read queries
@@ -30,6 +34,132 @@ exports.fetch = async function (ctx) {
ctx.body = enrichQueries(body.rows.map(row => row.doc))
}
+// const query = {
+// datasourceId: "datasource_b9a474302a174d1295e4c273cd72bde9",
+// name: "available pets (import)",
+// parameters: [],
+// fields: {
+// headers: {},
+// queryString: "status=available",
+// path: "v2/pet/findByStatus",
+// },
+// queryVerb: "read",
+// transformer: "return data",
+// schema: {},
+// readable: true
+// }
+
+function generateQueryValidation() {
+ // prettier-ignore
+ return Joi.object({
+ _id: Joi.string(),
+ _rev: Joi.string(),
+ name: Joi.string().required(),
+ fields: Joi.object().required(),
+ datasourceId: Joi.string().required(),
+ readable: Joi.boolean(),
+ parameters: Joi.array().items(Joi.object({
+ name: Joi.string(),
+ default: Joi.string().allow(""),
+ })),
+ queryVerb: Joi.string().allow().required(),
+ extra: Joi.object().optional(),
+ schema: Joi.object({}).required().unknown(true),
+ transformer: Joi.string().optional(),
+ })
+}
+
+const verbs = {
+ get: "read",
+ post: "create",
+ put: "update",
+ patch: "patch",
+ delete: "delete",
+}
+
+const constructQuery = (datasource, swagger, path, method, config) => {
+ const query = {
+ datasourceId: datasource._id,
+ }
+ query.name = config.operationId || path
+ query.parameters = []
+ query.fields = {
+ headers: {},
+ // queryString: "status=available",
+ path: path,
+ }
+ query.transformer = "return data"
+ query.schema = {}
+ query.readable = true
+ query.queryVerb = verbs[method]
+
+ return query
+}
+
+// {
+// "type": "url",
+// "data": "www.url.com/swagger.json"
+// }
+
+exports.import = async function (ctx) {
+ const importConfig = ctx.request.body
+
+ let data
+
+ if (importConfig.type === "url") {
+ data = await fetch(importConfig.data).then(res => res.json())
+ } else if (importConfig.type === "raw") {
+ data = JSON.parse(importConfig.data)
+ }
+
+ const db = new CouchDB(ctx.appId)
+ const schema = generateQueryValidation()
+
+ // create datasource
+ const scheme = data.schemes.includes("https") ? "https" : "http"
+ const url = `${scheme}://${data.host}${data.basePath}`
+ const name = data.info.title
+
+ // TODO: Refactor datasource creation into shared function
+ const datasourceCtx = {
+ ...ctx,
+ }
+ datasourceCtx.request.body.datasource = {
+ type: "datasource",
+ source: "REST",
+ config: {
+ url: url,
+ defaultHeaders: {},
+ },
+ name: name,
+ }
+ await saveDatasource(datasourceCtx)
+ const datasource = datasourceCtx.body.datasource
+
+ // create query
+
+ for (const [path, method] of Object.entries(data.paths)) {
+ for (const [methodName, config] of Object.entries(method)) {
+ const query = constructQuery(datasource, data, path, methodName, config)
+
+ // validate query
+ const { error } = schema.validate(query)
+ if (error) {
+ ctx.throw(400, `Invalid - ${error.message}`)
+ return
+ }
+
+ // persist query
+ query._id = generateQueryID(query.datasourceId)
+ await db.put(query)
+ }
+ }
+
+ // return the datasource
+ ctx.body = { datasource }
+ ctx.status = 200
+}
+
exports.save = async function (ctx) {
const db = new CouchDB(ctx.appId)
const query = ctx.request.body
diff --git a/packages/server/src/api/routes/query.js b/packages/server/src/api/routes/query.js
index 3fca0c1e0f..bc1c2204de 100644
--- a/packages/server/src/api/routes/query.js
+++ b/packages/server/src/api/routes/query.js
@@ -57,6 +57,11 @@ router
generateQueryValidation(),
queryController.save
)
+ .post(
+ "/api/queries/import/swagger2",
+ authorized(BUILDER),
+ queryController.import
+ )
.post(
"/api/queries/preview",
bodyResource("datasourceId"),
diff --git a/packages/server/src/integrations/index.ts b/packages/server/src/integrations/index.ts
index eff499f978..8f2f083fc5 100644
--- a/packages/server/src/integrations/index.ts
+++ b/packages/server/src/integrations/index.ts
@@ -40,9 +40,9 @@ const INTEGRATIONS = {
}
// optionally add oracle integration if the oracle binary can be installed
-if (!(process.arch === 'arm64' && process.platform === 'darwin')) {
+if (!(process.arch === "arm64" && process.platform === "darwin")) {
const oracle = require("./oracle")
- DEFINITIONS[SourceNames.ORACLE] = oracle.schema
+ DEFINITIONS[SourceNames.ORACLE] = oracle.schema
INTEGRATIONS[SourceNames.ORACLE] = oracle.integration
}
diff --git a/packages/server/src/integrations/oracle.ts b/packages/server/src/integrations/oracle.ts
index c74977bece..13658399db 100644
--- a/packages/server/src/integrations/oracle.ts
+++ b/packages/server/src/integrations/oracle.ts
@@ -352,14 +352,23 @@ module OracleModule {
* Knex default returning behaviour does not work with oracle
* Manually add the behaviour for the return column
*/
- private addReturning(query: SqlQuery, bindings: BindParameters, returnColumn: string) {
+ private addReturning(
+ query: SqlQuery,
+ bindings: BindParameters,
+ returnColumn: string
+ ) {
if (bindings instanceof Array) {
bindings.push({ dir: oracledb.BIND_OUT })
- query.sql = query.sql + ` returning \"${returnColumn}\" into :${bindings.length}`
+ query.sql =
+ query.sql + ` returning \"${returnColumn}\" into :${bindings.length}`
}
}
- private async internalQuery(query: SqlQuery, returnColum?: string, operation?: string): Promise> {
+ private async internalQuery(
+ query: SqlQuery,
+ returnColum?: string,
+ operation?: string
+ ): Promise> {
let connection
try {
connection = await this.getConnection()
@@ -367,7 +376,10 @@ module OracleModule {
const options: ExecuteOptions = { autoCommit: true }
const bindings: BindParameters = query.bindings || []
- if (returnColum && (operation === Operation.CREATE || operation === Operation.UPDATE)) {
+ if (
+ returnColum &&
+ (operation === Operation.CREATE || operation === Operation.UPDATE)
+ ) {
this.addReturning(query, bindings, returnColum)
}
@@ -414,14 +426,14 @@ module OracleModule {
return response.rows ? response.rows : []
}
- async update(query: SqlQuery | string): Promise {
+ async update(query: SqlQuery | string): Promise {
const response = await this.internalQuery(getSqlQuery(query))
return response.rows && response.rows.length
? response.rows
: [{ updated: true }]
}
- async delete(query: SqlQuery | string): Promise {
+ async delete(query: SqlQuery | string): Promise {
const response = await this.internalQuery(getSqlQuery(query))
return response.rows && response.rows.length
? response.rows
@@ -431,8 +443,9 @@ module OracleModule {
async query(json: QueryJson) {
const primaryKeys = json.meta!.table!.primary
const primaryKey = primaryKeys ? primaryKeys[0] : undefined
- const queryFn = (query: any, operation: string) => this.internalQuery(query, primaryKey, operation)
- const processFn = (response: any) => response.rows ? response.rows : []
+ const queryFn = (query: any, operation: string) =>
+ this.internalQuery(query, primaryKey, operation)
+ const processFn = (response: any) => (response.rows ? response.rows : [])
const output = await this.queryWithReturning(json, queryFn, processFn)
return output
}
diff --git a/packages/server/src/integrations/utils.ts b/packages/server/src/integrations/utils.ts
index 07cf0505bf..97380b1b5b 100644
--- a/packages/server/src/integrations/utils.ts
+++ b/packages/server/src/integrations/utils.ts
@@ -2,7 +2,11 @@ import { SqlQuery } from "../definitions/datasource"
import { Datasource, Table } from "../definitions/common"
import { SourceNames } from "../definitions/datasource"
const { DocumentTypes, SEPARATOR } = require("../db/utils")
-const { FieldTypes, BuildSchemaErrors, InvalidColumns } = require("../constants")
+const {
+ FieldTypes,
+ BuildSchemaErrors,
+ InvalidColumns,
+} = require("../constants")
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
const ROW_ID_REGEX = /^\[.*]$/g
@@ -42,7 +46,7 @@ export enum SqlClients {
MS_SQL = "mssql",
POSTGRES = "pg",
MY_SQL = "mysql",
- ORACLE = "oracledb"
+ ORACLE = "oracledb",
}
export function isExternalTable(tableId: string) {
From 5b2e6bddf8773a8d87718c8f6467c1064f633ec9 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Thu, 25 Nov 2021 17:44:47 +0000
Subject: [PATCH 0020/1026] Updating docs.
---
packages/server/scripts/docs/generate.js | 6 +-
packages/server/src/api/routes/row.js | 136 +++++++++++++++++++++--
2 files changed, 130 insertions(+), 12 deletions(-)
diff --git a/packages/server/scripts/docs/generate.js b/packages/server/scripts/docs/generate.js
index f5b9c00fa5..3006e6cca6 100644
--- a/packages/server/scripts/docs/generate.js
+++ b/packages/server/scripts/docs/generate.js
@@ -6,8 +6,7 @@ const packageJson = require("../../package.json")
const config = {
name: "Budibase API",
version: packageJson.version,
- description:
- "Documentation for the various API endpoints of the Budibase backend.",
+ description: "Documenting the Budibase backend API",
title: "Budibase app service API",
}
@@ -37,9 +36,8 @@ function generate() {
fs.mkdirSync(assetsPath, { recursive: true })
}
const doc = createDoc({
- src: srcPath,
+ src: [srcPath],
dest: assetsPath,
- silent: true,
filters: {
main: {
postFilter: filter,
diff --git a/packages/server/src/api/routes/row.js b/packages/server/src/api/routes/row.js
index 7c2c42be14..a7cbd7fcdf 100644
--- a/packages/server/src/api/routes/row.js
+++ b/packages/server/src/api/routes/row.js
@@ -16,7 +16,7 @@ const router = Router()
router
/**
* @api {get} /api/:tableId/:rowId/enrich Get an enriched row
- * @apiName /api/:tableId/:rowId/enrich
+ * @apiName Get an enriched row
* @apiGroup rows
* @apiPermission table read access
* @apiDescription This API is only useful when dealing with rows that have relationships.
@@ -27,7 +27,6 @@ router
* @apiParam {string} rowId The ID of the row which is to be retrieved and enriched.
*
* @apiSuccess {object} row The response body will be the enriched row.
- * @apiError {string} message If the table or row could not be found then an error will be thrown.
*/
.get(
"/api/:tableId/:rowId/enrich",
@@ -37,7 +36,7 @@ router
)
/**
* @api {get} /api/:tableId/rows Get all rows in a table
- * @apiName /api/:tableId/rows
+ * @apiName Get all rows in a table
* @apiGroup rows
* @apiPermission table read access
* @apiDescription This is a deprecated endpoint that should not be used anymore, instead use the search endpoint.
@@ -48,7 +47,6 @@ router
* @apiParam {string} tableId The ID of the table to retrieve all rows within.
*
* @apiSuccess {object[]} rows The response body will be an array of all rows found.
- * @apiError {string} message If the table could not be found then an error will be thrown.
*/
.get(
"/api/:tableId/rows",
@@ -58,7 +56,7 @@ router
)
/**
* @api {get} /api/:tableId/rows/:rowId Retrieve a single row
- * @apiName /api/:tableId/rows/:rowId
+ * @apiName Retrieve a single row
* @apiGroup rows
* @apiPermission table read access
* @apiDescription This endpoint retrieves only the specified row. If you wish to retrieve
@@ -68,7 +66,6 @@ router
* @apiParam {string} rowId The ID of the row to retrieve.
*
* @apiSuccess {object} row The response body will be the row that was found.
- * @apiError {string} message If the table or row could not be found then an error will be thrown.
*/
.get(
"/api/:tableId/rows/:rowId",
@@ -78,15 +75,68 @@ router
)
/**
* @api {post} /api/:tableId/search Search for rows in a table
- * @apiName /api/:tableId/search
+ * @apiName Search for rows in a table
* @apiGroup rows
* @apiPermission table read access
* @apiDescription This is the primary method of accessing rows in Budibase, the data provider
* and data UI in the builder are built atop this. All filtering, sorting and pagination is
* handled through this, for internal and external (datasource plus, e.g. SQL) tables.
*
- * @apiBody
+ * @apiParam {string} tableId The ID of the table to retrieve rows from.
*
+ * @apiBody {boolean} [paginate] If pagination is required then this should be set to true,
+ * defaults to false.
+ * @apiBody {object} [query] This contains a set of filters which should be applied, if none
+ * specified then the request will be unfiltered. An example with all of the possible query
+ * options has been supplied below.
+ * @apiBody {number} [limit] This sets a limit for the number of rows that will be returned,
+ * this will be implemented at the database level if supported for performance reasons. This
+ * is useful when paginating to set exactly how many rows per page.
+ * @apiBody {string} [bookmark] If pagination is enabled then a bookmark will be returned
+ * with each successful search request, this should be supplied back to get the next page.
+ * @apiBody {object} [sort] If sort is desired this should contain the name of the column to
+ * sort on.
+ * @apiBody {string} [sortOrder] If sort is enabled then this can be either "descending" or
+ * "ascending" as required.
+ * @apiBody {string} [sortType] If sort is enabled then you must specify the type of search
+ * being used, either "string" or "number". This is only used for internal tables.
+ *
+ * @apiParamExample {json} Example:
+ * {
+ * "tableId": "ta_70260ff0b85c467ca74364aefc46f26d",
+ * "query": {
+ * "string": {},
+ * "fuzzy": {},
+ * "range": {
+ * "columnName": {
+ * "high": 20,
+ * "low": 10,
+ * }
+ * },
+ * "equal": {
+ * "columnName": "someValue"
+ * },
+ * "notEqual": {},
+ * "empty": {},
+ * "notEmpty": {},
+ * "contains": {},
+ * "notContains": {}
+ * "oneOf": {
+ * "columnName": ["value"]
+ * }
+ * },
+ * "limit": 10,
+ * "sort": "name",
+ * "sortOrder": "descending",
+ * "sortType": "string",
+ * "paginate": true
+ * }
+ *
+ * @apiSuccess {object[]} rows An array of rows that was found based on the supplied parameters.
+ * @apiSuccess {boolean} hasNextPage If pagination was enabled then this specifies whether or
+ * not there is another page after this request.
+ * @apiSuccess {string} bookmark The bookmark to be sent with the next request to get the next
+ * page.
*/
.post(
"/api/:tableId/search",
@@ -102,6 +152,30 @@ router
authorized(PermissionTypes.TABLE, PermissionLevels.READ),
rowController.search
)
+ /**
+ * @api {post} /api/:tableId/rows Creates a new row
+ * @apiName Creates a new row
+ * @apiGroup rows
+ * @apiPermission table write access
+ * @apiDescription This API will create a new row based on the supplied body. If the
+ * body includes an "_id" field then it will update an existing row if the field
+ * links to one. Please note that "_id", "_rev" and "tableId" are fields that are
+ * already used by Budibase tables and cannot be used for columns.
+ *
+ * @apiParam {string} tableId The ID of the table to save a row to.
+ *
+ * @apiBody {string} [_id] If the row exists already then an ID for the row must be provided.
+ * @apiBody {string} [_rev] If working with an existing row for an internal table its revision
+ * must also be provided.
+ * @apiBody {string} tableId The ID of the table should also be specified in the row body itself.
+ * @apiBody {any} [any] Any field supplied in the body will be assessed to see if it matches
+ * a column in the specified table. All other fields will be dropped and not stored.
+ *
+ * @apiSuccess {string} _id The ID of the row that was just saved, if it was just created this
+ * is the rows new ID.
+ * @apiSuccess {string} [_rev] If saving to an internal table a revision will also be returned.
+ * @apiSuccess {any} [any] The contents of the row that was saved will be returned as well.
+ */
.post(
"/api/:tableId/rows",
paramResource("tableId"),
@@ -109,18 +183,64 @@ router
usage,
rowController.save
)
+ /**
+ * @api {patch} /api/:tableId/rows Updates a row
+ * @apiName Update a row
+ * @apiGroup rows
+ * @apiPermission table write access
+ * @apiDescription This endpoint is identical to the row creation endpoint but instead it will
+ * error if an _id isn't provided, it will only function for existing rows.
+ */
.patch(
"/api/:tableId/rows",
paramResource("tableId"),
authorized(PermissionTypes.TABLE, PermissionLevels.WRITE),
rowController.patch
)
+ /**
+ * @api {post} /api/:tableId/rows/validate Validate inputs for a row
+ * @apiName Validate inputs for a row
+ * @apiGroup rows
+ * @apiPermission table write access
+ * @apiDescription When attempting to save a row you may want to check if the row is valid
+ * given the table schema, this will iterate through all the constraints on the table and
+ * check if the request body is valid.
+ *
+ * @apiParam {string} tableId The ID of the table the row is to be validated for.
+ *
+ * @apiBody {any} [any] Any fields provided in the request body will be tested
+ * against the table schema and constraints.
+ *
+ * @apiSuccess {boolean} valid If inputs provided are acceptable within the table schema this
+ * will be true, if it is not then then errors property will be populated.
+ * @apiSuccess {object} [errors] A key value map of information about fields on the input
+ * which do not match the table schema. The key name will be the column names that have breached
+ * the schema.
+ */
.post(
"/api/:tableId/rows/validate",
paramResource("tableId"),
authorized(PermissionTypes.TABLE, PermissionLevels.WRITE),
rowController.validate
)
+ /**
+ * @api {delete} /api/:tableId/rows Delete rows
+ * @apiName Delete rows
+ * @apiGroup rows
+ * @apiPermission table write access
+ * @apiDescription This endpoint can delete a single row, or delete them in a bulk
+ * fashion.
+ *
+ * @apiBody {object[]} [rows] If bulk deletion is desired then provide the rows in this
+ * key of the request body that are to be deleted.
+ * @apiBody {string} [_id] If deleting a single row then provide its ID in this field.
+ * @apiBody {string} [_rev] If deleting a single row from an internal table then provide its
+ * revision here.
+ *
+ * @apiSuccess {object[]|object} rows If deleting bulk then the response body will be an array
+ * of the deleted rows, if deleting a single row then the body will contain a "row" property which
+ * is the deleted row.
+ */
.delete(
"/api/:tableId/rows",
paramResource("tableId"),
From a99bf1bba3bf1dae6a33620db964dab0fccb0442 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Thu, 25 Nov 2021 18:13:14 +0000
Subject: [PATCH 0021/1026] Updating scripts to allow opening in the browser
when generated.
---
package.json | 1 +
packages/server/package.json | 3 ++-
packages/server/scripts/docs/generate.js | 7 ++++++-
packages/server/yarn.lock | 22 ++++++++++++++--------
4 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/package.json b/package.json
index f863f3f440..e0b567ce59 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"build:docker:selfhost": "lerna run build:docker && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh latest && cd -",
"build:docker:develop": "node scripts/pinVersions && lerna run build:docker && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh develop && cd -",
"build:docker:airgap": "node hosting/scripts/airgapped/airgappedDockerBuild",
+ "build:docs": "lerna run build:docs",
"release:helm": "./scripts/release_helm_chart.sh",
"env:multi:enable": "lerna run env:multi:enable",
"env:multi:disable": "lerna run env:multi:disable",
diff --git a/packages/server/package.json b/packages/server/package.json
index 7712c7c748..bc6de5c92f 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -15,6 +15,7 @@
"test:watch": "jest --watch",
"predocker": "copyfiles -f ../client/dist/budibase-client.js ../client/manifest.json client",
"build:docker": "yarn run predocker && docker build . -t app-service --label version=$BUDIBASE_RELEASE_VERSION",
+ "build:docs": "node ./scripts/docs/generate.js open",
"run:docker": "node dist/index.js",
"dev:stack:up": "node scripts/dev/manage.js up",
"dev:stack:down": "node scripts/dev/manage.js down",
@@ -106,7 +107,7 @@
"mssql": "6.2.3",
"mysql2": "^2.3.1",
"node-fetch": "2.6.0",
- "open": "7.3.0",
+ "open": "^8.4.0",
"pg": "8.5.1",
"pino-pretty": "4.0.0",
"posthog-node": "^1.1.4",
diff --git a/packages/server/scripts/docs/generate.js b/packages/server/scripts/docs/generate.js
index 3006e6cca6..8465f9afd6 100644
--- a/packages/server/scripts/docs/generate.js
+++ b/packages/server/scripts/docs/generate.js
@@ -2,6 +2,7 @@ const fs = require("fs")
const { join } = require("path")
const { createDoc } = require("apidoc")
const packageJson = require("../../package.json")
+const open = require("open")
const config = {
name: "Budibase API",
@@ -10,6 +11,7 @@ const config = {
title: "Budibase app service API",
}
+const shouldOpen = process.argv[2]
const disallowed = []
function filter(parsedRouteFiles) {
@@ -25,7 +27,7 @@ function filter(parsedRouteFiles) {
}
}
-function generate() {
+async function generate() {
// start by writing a config file
const configPath = join(__dirname, "config.json")
fs.writeFileSync(configPath, JSON.stringify(config))
@@ -52,6 +54,9 @@ function generate() {
}
// delete the temporary config file
fs.unlinkSync(configPath)
+ if (shouldOpen === "open") {
+ await open(join(assetsPath, "index.html"), { wait: false })
+ }
}
generate()
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index 1686e38a40..32eabd7c4c 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -4529,6 +4529,11 @@ deferred-leveldown@~5.3.0:
abstract-leveldown "~6.2.1"
inherits "^2.0.3"
+define-lazy-prop@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+ integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+
define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -6698,7 +6703,7 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
-is-docker@^2.0.0:
+is-docker@^2.0.0, is-docker@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
@@ -6952,7 +6957,7 @@ is-windows@^1.0.2:
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-is-wsl@^2.1.1:
+is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
@@ -9429,13 +9434,14 @@ only@~0.0.2:
resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
-open@7.3.0:
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69"
- integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==
+open@^8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
+ integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
dependencies:
- is-docker "^2.0.0"
- is-wsl "^2.1.1"
+ define-lazy-prop "^2.0.0"
+ is-docker "^2.1.1"
+ is-wsl "^2.2.0"
opencollective-postinstall@^2.0.0:
version "2.0.3"
From 9ac60079c72cc315a9e45a6111ec5a25731edfc2 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Thu, 25 Nov 2021 20:12:32 +0100
Subject: [PATCH 0022/1026] datasource plus support for google sheets
---
.../server/src/integrations/googlesheets.ts | 97 +++++++++++++++++--
1 file changed, 89 insertions(+), 8 deletions(-)
diff --git a/packages/server/src/integrations/googlesheets.ts b/packages/server/src/integrations/googlesheets.ts
index eaffd98277..514804a73e 100644
--- a/packages/server/src/integrations/googlesheets.ts
+++ b/packages/server/src/integrations/googlesheets.ts
@@ -1,10 +1,15 @@
import {
DatasourceFieldTypes,
Integration,
+ QueryJson,
QueryTypes,
} from "../definitions/datasource"
import { IntegrationBase } from "./base/IntegrationBase"
import { GoogleSpreadsheet } from "google-spreadsheet"
+import { DatasourcePlus } from "./base/datasourcePlus"
+import { Table } from "../definitions/common"
+import { buildExternalTableId } from "./utils"
+import { DataSourceOperation, FieldTypes } from "../constants"
module GoogleSheetsModule {
interface GoogleSheetsConfig {
@@ -14,6 +19,7 @@ module GoogleSheetsModule {
}
const SCHEMA: Integration = {
+ plus: true,
docs: "https://developers.google.com/sheets/api/quickstart/nodejs",
description:
"Create and collaborate on online spreadsheets in real-time and from any device. ",
@@ -88,9 +94,11 @@ module GoogleSheetsModule {
},
}
- class GoogleSheetsIntegration implements IntegrationBase {
+ class GoogleSheetsIntegration implements DatasourcePlus {
private readonly config: GoogleSheetsConfig
private client: any
+ public tables: Record = {}
+ public schemaErrors: Record = {}
constructor(config: GoogleSheetsConfig) {
this.config = config
@@ -112,21 +120,86 @@ module GoogleSheetsModule {
}
}
- buildRowObject(headers: string[], values: string[]) {
- const rowObject = {}
+ async buildSchema(datasourceId: string, entities: Record) {
+ await this.connect()
+ const sheets = await this.client.sheetsByIndex
+ const tables = {}
+ // tables[tableName] = {
+ // _id: buildExternalTableId(datasourceId, tableName),
+ // primary: primaryKeys,
+ // name: tableName,
+ // schema,
+ // }
+ for (let sheet of sheets) {
+ // must fetch rows to determine schema
+ await sheet.getRows()
+ // build schema
+ const schema = {}
+
+ // build schema from headers
+ for (let header of sheet.headerValues) {
+ schema[header] = {
+ name: header,
+ type: FieldTypes.STRING,
+ }
+ }
+
+ // create tables
+ tables[sheet.title] = {
+ _id: buildExternalTableId(datasourceId, sheet.title),
+ name: sheet.title,
+ primary: ["rowNumber"],
+ schema,
+ }
+ }
+
+ this.tables = tables
+ }
+
+ async query(json: QueryJson) {
+ const sheet = json.endpoint.entityId
+
+ if (json.endpoint.operation === DataSourceOperation.CREATE) {
+ return await this.create({
+ sheet,
+ row: json.body,
+ })
+ }
+
+ if (json.endpoint.operation === DataSourceOperation.READ) {
+ return await this.read({ sheet })
+ }
+
+ if (json.endpoint.operation === DataSourceOperation.UPDATE) {
+ return await this.update({
+ sheet,
+ row: json.body,
+ })
+ }
+
+ if (json.endpoint.operation === DataSourceOperation.DELETE) {
+ return await this.delete({})
+ }
+ }
+
+ buildRowObject(headers: string[], values: string[], rowNumber: number) {
+ const rowObject = { rowNumber }
for (let i = 0; i < headers.length; i++) {
rowObject[headers[i]] = values[i]
}
return rowObject
}
- async create(query: { sheet: string; row: string }) {
+ async create(query: { sheet: string; row: string | object }) {
try {
await this.connect()
const sheet = await this.client.sheetsByTitle[query.sheet]
- const rowToInsert = JSON.parse(query.row)
+ const rowToInsert =
+ typeof query.row === "string" ? JSON.parse(query.row) : query.row
const row = await sheet.addRow(rowToInsert)
- return [this.buildRowObject(sheet.headerValues, row._rawData)]
+ return [
+ this.buildRowObject(sheet.headerValues, row._rawData, row._rowNumber),
+ ]
} catch (err) {
console.error("Error writing to google sheets", err)
throw err
@@ -141,7 +214,9 @@ module GoogleSheetsModule {
const headerValues = sheet.headerValues
const response = []
for (let row of rows) {
- response.push(this.buildRowObject(headerValues, row._rawData))
+ response.push(
+ this.buildRowObject(headerValues, row._rawData, row._rowNumber)
+ )
}
return response
} catch (err) {
@@ -162,7 +237,13 @@ module GoogleSheetsModule {
row[key] = updateValues[key]
}
await row.save()
- return [this.buildRowObject(sheet.headerValues, row._rawData)]
+ return [
+ this.buildRowObject(
+ sheet.headerValues,
+ row._rawData,
+ row._rowNumber
+ ),
+ ]
} else {
throw new Error("Row does not exist.")
}
From 2945b15ee346cc431ba5cf3919c70b4ca3338218 Mon Sep 17 00:00:00 2001
From: Peter Clement
Date: Thu, 25 Nov 2021 21:48:07 +0000
Subject: [PATCH 0023/1026] update cypress to account for no default screen
---
packages/builder/cypress/support/commands.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js
index 1b1cc0c2b0..0870ceac7a 100644
--- a/packages/builder/cypress/support/commands.js
+++ b/packages/builder/cypress/support/commands.js
@@ -182,7 +182,9 @@ Cypress.Commands.add("navigateToFrontend", () => {
cy.wait(1000)
cy.contains("Design").click()
cy.get(".spectrum-Search").type("/")
- cy.get(".nav-item").contains("Home").click()
+ cy.createScreen("home", "home")
+ cy.addComponent("Elements", "Headline")
+ cy.get(".nav-item").contains("home").click()
})
Cypress.Commands.add("createScreen", (screenName, route) => {
From fec86890692ea9fd3045498045920d00f59fdaf2 Mon Sep 17 00:00:00 2001
From: Peter Clement
Date: Thu, 25 Nov 2021 21:57:27 +0000
Subject: [PATCH 0024/1026] change colour of autoscreen selection
---
.../src/components/design/NavigationPanel/NewScreenModal.svelte | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte b/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte
index 57a40b9081..fbd1fc9256 100644
--- a/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte
@@ -132,7 +132,7 @@
padding: var(--spectrum-alias-item-padding-s);
background: var(--spectrum-alias-background-color-primary);
transition: 0.3s all;
- border: 1px solid #e7e7e7;
+ border: 1px solid var(--spectrum-global-color-gray-300);
border-radius: 4px;
box-sizing: border-box;
border-width: 1px;
From 186ef7a92298632977f41510b18dc382fd23c996 Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Thu, 25 Nov 2021 22:21:36 +0000
Subject: [PATCH 0025/1026] v0.9.190-alpha.4
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index fa174a2714..e1257c1594 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index 6c75aa38ad..b9fde80a3b 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 25e288497a..fd3d85654e 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": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index e8ca02c430..c1775d9123 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.3",
- "@budibase/client": "^0.9.190-alpha.3",
+ "@budibase/bbui": "^0.9.190-alpha.4",
+ "@budibase/client": "^0.9.190-alpha.4",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.3",
+ "@budibase/string-templates": "^0.9.190-alpha.4",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index ec257b3536..8865607a33 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 7f1dba1953..95c8a35871 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -19,9 +19,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.3",
+ "@budibase/bbui": "^0.9.190-alpha.4",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.3",
+ "@budibase/string-templates": "^0.9.190-alpha.4",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index 0608f86bcb..104426202d 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"description": "Budibase Web Server",
"main": "src/index.js",
"repository": {
@@ -68,9 +68,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.3",
- "@budibase/client": "^0.9.190-alpha.3",
- "@budibase/string-templates": "^0.9.190-alpha.3",
+ "@budibase/auth": "^0.9.190-alpha.4",
+ "@budibase/client": "^0.9.190-alpha.4",
+ "@budibase/string-templates": "^0.9.190-alpha.4",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 378b2ea0e6..8bbd124647 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 858a144a76..6db14dccc9 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.3",
+ "version": "0.9.190-alpha.4",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.3",
- "@budibase/string-templates": "^0.9.190-alpha.3",
+ "@budibase/auth": "^0.9.190-alpha.4",
+ "@budibase/string-templates": "^0.9.190-alpha.4",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 41fa958c78fbc6a80516db138a3a5094f5210ac6 Mon Sep 17 00:00:00 2001
From: Rory Powell
Date: Fri, 26 Nov 2021 09:51:56 +0000
Subject: [PATCH 0026/1026] File upload working
---
.../modals/ImportRestDatasourceModal.svelte | 26 ++++++++++++-------
packages/server/src/api/controllers/query.js | 2 ++
2 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
index dd25880491..64cffb3f7f 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
@@ -25,24 +25,29 @@
let lastTouched = "url"
- $: {
- console.log({ data })
- console.log({ lastTouched })
- }
+ const getPayload = async () => {
+ let payloadData
+ let type
+
+ // parse the file into memory and send as string
+ if (lastTouched === "file") {
+ type = "raw"
+ payloadData = await data.file[0].text()
+ } else {
+ type = lastTouched
+ payloadData = data[lastTouched]
+ }
- const getPayload = () => {
return {
- type: lastTouched,
- data: data[lastTouched],
+ type: type,
+ data: payloadData,
}
}
async function importDatasource() {
try {
- // Create datasource
- const resp = await datasources.import(getPayload())
+ const resp = await datasources.import(await getPayload())
- // // update the tables incase data source plus
await queries.fetch()
await datasources.select(resp._id)
$goto(`./datasource/${resp._id}`)
@@ -82,6 +87,7 @@
(lastTouched = "file")}
fileTags={["OpenAPI", "Swagger 2.0"]}
diff --git a/packages/server/src/api/controllers/query.js b/packages/server/src/api/controllers/query.js
index 13b14a6343..40fc1adf21 100644
--- a/packages/server/src/api/controllers/query.js
+++ b/packages/server/src/api/controllers/query.js
@@ -110,6 +110,8 @@ exports.import = async function (ctx) {
data = await fetch(importConfig.data).then(res => res.json())
} else if (importConfig.type === "raw") {
data = JSON.parse(importConfig.data)
+ } else {
+ throw new Error("Invalid data type")
}
const db = new CouchDB(ctx.appId)
From eec02321f5b7ab680ff03f1ee26e8ce181983069 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Fri, 26 Nov 2021 11:42:37 +0100
Subject: [PATCH 0027/1026] fix cypress tests
---
packages/builder/cypress/integration/createAutomation.spec.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/builder/cypress/integration/createAutomation.spec.js b/packages/builder/cypress/integration/createAutomation.spec.js
index afd405d5ab..6ff013cd7a 100644
--- a/packages/builder/cypress/integration/createAutomation.spec.js
+++ b/packages/builder/cypress/integration/createAutomation.spec.js
@@ -12,7 +12,7 @@ context("Create a automation", () => {
cy.get("[data-cy='new-screen'] > .spectrum-Icon").click()
cy.get(".modal-inner-wrapper").within(() => {
cy.get("input").type("Add Row")
- cy.contains("Row Created").click()
+ cy.contains("Row Created").click({ force: true })
cy.wait(500)
cy.get(".spectrum-Button--cta").click()
})
From 688d461fcc7af0dea3989e34f1858400fa3eb694 Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Fri, 26 Nov 2021 11:08:02 +0000
Subject: [PATCH 0028/1026] v0.9.190-alpha.5
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index e1257c1594..a1485d42ca 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index b9fde80a3b..b56fa7a727 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index fd3d85654e..fcab4feb97 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": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index c1775d9123..faa8d5e34a 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.4",
- "@budibase/client": "^0.9.190-alpha.4",
+ "@budibase/bbui": "^0.9.190-alpha.5",
+ "@budibase/client": "^0.9.190-alpha.5",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.4",
+ "@budibase/string-templates": "^0.9.190-alpha.5",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 8865607a33..f902db07bb 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 95c8a35871..bbf5118620 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -19,9 +19,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.4",
+ "@budibase/bbui": "^0.9.190-alpha.5",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.4",
+ "@budibase/string-templates": "^0.9.190-alpha.5",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index 104426202d..cc76cc6c3d 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"description": "Budibase Web Server",
"main": "src/index.js",
"repository": {
@@ -68,9 +68,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.4",
- "@budibase/client": "^0.9.190-alpha.4",
- "@budibase/string-templates": "^0.9.190-alpha.4",
+ "@budibase/auth": "^0.9.190-alpha.5",
+ "@budibase/client": "^0.9.190-alpha.5",
+ "@budibase/string-templates": "^0.9.190-alpha.5",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 8bbd124647..4a38f95dfe 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 6db14dccc9..89d0f1c4ec 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.4",
+ "version": "0.9.190-alpha.5",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.4",
- "@budibase/string-templates": "^0.9.190-alpha.4",
+ "@budibase/auth": "^0.9.190-alpha.5",
+ "@budibase/string-templates": "^0.9.190-alpha.5",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 78de4719482c86e7d4178b9445eb82acd16cc5d1 Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Fri, 26 Nov 2021 11:36:30 +0000
Subject: [PATCH 0029/1026] v0.9.190-alpha.6
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index a1485d42ca..99e26808d2 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index b56fa7a727..a0cb7f7e21 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index fcab4feb97..aff5c126e3 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": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index faa8d5e34a..60a0c516cc 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.5",
- "@budibase/client": "^0.9.190-alpha.5",
+ "@budibase/bbui": "^0.9.190-alpha.6",
+ "@budibase/client": "^0.9.190-alpha.6",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.5",
+ "@budibase/string-templates": "^0.9.190-alpha.6",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index f902db07bb..d12cceeddb 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index bbf5118620..48b1129a96 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -19,9 +19,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.5",
+ "@budibase/bbui": "^0.9.190-alpha.6",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.5",
+ "@budibase/string-templates": "^0.9.190-alpha.6",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index cc76cc6c3d..eb09d84994 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"description": "Budibase Web Server",
"main": "src/index.js",
"repository": {
@@ -68,9 +68,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.5",
- "@budibase/client": "^0.9.190-alpha.5",
- "@budibase/string-templates": "^0.9.190-alpha.5",
+ "@budibase/auth": "^0.9.190-alpha.6",
+ "@budibase/client": "^0.9.190-alpha.6",
+ "@budibase/string-templates": "^0.9.190-alpha.6",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 4a38f95dfe..361984defa 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 89d0f1c4ec..c5dfa4883b 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.5",
+ "version": "0.9.190-alpha.6",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.5",
- "@budibase/string-templates": "^0.9.190-alpha.5",
+ "@budibase/auth": "^0.9.190-alpha.6",
+ "@budibase/string-templates": "^0.9.190-alpha.6",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 4697b21ef18680d389c465d3b6dfa401e2bafe98 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Fri, 26 Nov 2021 14:13:53 +0000
Subject: [PATCH 0030/1026] Updating docs for tables, adding a swagger
generation tool and a README describing how to use it.
---
packages/server/package.json | 1 +
packages/server/scripts/docs/README.md | 31 +++
packages/server/scripts/docs/generate.js | 28 +-
packages/server/scripts/docs/toSwagger.js | 320 ++++++++++++++++++++++
packages/server/src/api/routes/row.js | 38 +--
packages/server/src/api/routes/table.js | 153 ++++++++++-
6 files changed, 540 insertions(+), 31 deletions(-)
create mode 100644 packages/server/scripts/docs/README.md
create mode 100644 packages/server/scripts/docs/toSwagger.js
diff --git a/packages/server/package.json b/packages/server/package.json
index bc6de5c92f..2576d159e1 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -146,6 +146,7 @@
"eslint": "^6.8.0",
"jest": "^27.0.5",
"nodemon": "^2.0.4",
+ "path-to-regexp": "^6.2.0",
"prettier": "^2.3.1",
"rimraf": "^3.0.2",
"supertest": "^4.0.2",
diff --git a/packages/server/scripts/docs/README.md b/packages/server/scripts/docs/README.md
new file mode 100644
index 0000000000..f1075754d3
--- /dev/null
+++ b/packages/server/scripts/docs/README.md
@@ -0,0 +1,31 @@
+### Documentation
+
+This directory contains the scripts required to generate the APIDoc based documentation.
+You can find the docs about comment structure at the [APIDocs page](https://apidocjs.com/).
+
+In general most API endpoints will look like:
+```js
+ /**
+ * @api {post} /api/:param/url Give it a name
+ * @apiName Give it a name
+ * @apiGroup group
+ * @apiPermission permission
+ * @apiDescription Describe what the endpoint does, any special cases the user
+ * should be aware of.
+ *
+ * @apiParam {string} param describe a URL parameter.
+ *
+ * @apiParam (Body) input describe a field on the body.
+ *
+ * @apiSuccess {object} output describe the output.
+ */
+```
+
+There are a few key points to note when writing API docs:
+1. Don't use `@apiBody` - this isn't currently supported by our swagger converter.
+2. Make sure to always have an `@api` definition at the start, which must always have the
+HTTP verb, the endpoint URL and the name.
+3. There are three ways you can specify parameters used as inputs for your endpoint,
+`@apiParam` for a URL param, `@apiParam (Body)` for a field on the request body and `@apiParam (Query)`
+for query string parameters.
+4. The `@apiGroup` should be the same for all API Doc comments in a route file.
\ No newline at end of file
diff --git a/packages/server/scripts/docs/generate.js b/packages/server/scripts/docs/generate.js
index 8465f9afd6..0d6d42fd32 100644
--- a/packages/server/scripts/docs/generate.js
+++ b/packages/server/scripts/docs/generate.js
@@ -2,6 +2,7 @@ const fs = require("fs")
const { join } = require("path")
const { createDoc } = require("apidoc")
const packageJson = require("../../package.json")
+const toSwagger = require("./toSwagger")
const open = require("open")
const config = {
@@ -37,7 +38,7 @@ async function generate() {
if (!fs.existsSync(assetsPath)) {
fs.mkdirSync(assetsPath, { recursive: true })
}
- const doc = createDoc({
+ const options = {
src: [srcPath],
dest: assetsPath,
filters: {
@@ -46,17 +47,28 @@ async function generate() {
},
},
config: configPath,
- })
+ }
+ const doc = createDoc(options)
if (typeof doc !== "boolean") {
- console.log("Docs generated successfully.")
+ const swagger = toSwagger(JSON.parse(doc.data), JSON.parse(doc.project))
+ fs.writeFileSync(join(assetsPath, "swagger.json"), JSON.stringify(swagger))
+ fs.writeFileSync(join(assetsPath, "apidoc.json"), doc.data)
+ fs.writeFileSync(join(assetsPath, "project.json"), doc.project)
+ console.log(
+ `Docs generated successfully, find in ${assetsPath}, swagger.json, apidoc.json and project.json`
+ )
} else {
- console.error("Unable to generate docs.")
+ throw "Unable to generate docs."
}
// delete the temporary config file
fs.unlinkSync(configPath)
- if (shouldOpen === "open") {
- await open(join(assetsPath, "index.html"), { wait: false })
- }
+ setTimeout(async () => {
+ if (shouldOpen === "open") {
+ await open(join(assetsPath, "index.html"), { wait: false })
+ }
+ }, 2000)
}
-generate()
+generate().catch(err => {
+ console.error(err)
+})
diff --git a/packages/server/scripts/docs/toSwagger.js b/packages/server/scripts/docs/toSwagger.js
new file mode 100644
index 0000000000..c9680143fc
--- /dev/null
+++ b/packages/server/scripts/docs/toSwagger.js
@@ -0,0 +1,320 @@
+let _ = require("lodash")
+let { pathToRegexp } = require("path-to-regexp")
+
+/********************************************************
+ * Based on: https://github.com/fsbahman/apidoc-swagger *
+ ********************************************************/
+
+let swagger = {
+ swagger: "2.0",
+ info: {},
+ paths: {},
+ definitions: {},
+}
+
+function toSwagger(apidocJson, projectJson) {
+ swagger.info = addInfo(projectJson)
+ swagger.paths = extractPaths(apidocJson)
+ return swagger
+}
+
+let tagsRegex = /(<([^>]+)>)/gi
+// Removes
tags from text
+function removeTags(text) {
+ return text ? text.replace(tagsRegex, "") : text
+}
+
+function addInfo(projectJson) {
+ let info = {}
+ info["title"] = projectJson.title || projectJson.name
+ info["version"] = projectJson.version
+ info["description"] = projectJson.description
+ return info
+}
+
+/**
+ * Extracts paths provided in json format
+ * post, patch, put request parameters are extracted in body
+ * get and delete are extracted to path parameters
+ * @param apidocJson
+ * @returns {{}}
+ */
+function extractPaths(apidocJson) {
+ let apiPaths = groupByUrl(apidocJson)
+ let paths = {}
+ for (let i = 0; i < apiPaths.length; i++) {
+ let verbs = apiPaths[i].verbs
+ let url = verbs[0].url
+ let pattern = pathToRegexp(url, null)
+ let matches = pattern.exec(url)
+
+ // Surrounds URL parameters with curly brackets -> :email with {email}
+ let pathKeys = []
+ for (let j = 1; j < matches.length; j++) {
+ let key = matches[j].substr(1)
+ url = url.replace(matches[j], "{" + key + "}")
+ pathKeys.push(key)
+ }
+
+ for (let j = 0; j < verbs.length; j++) {
+ let verb = verbs[j]
+ let type = verb.type
+
+ let obj = (paths[url] = paths[url] || {})
+
+ if (type === "post" || type === "patch" || type === "put") {
+ _.extend(
+ obj,
+ createPostPushPutOutput(verb, swagger.definitions, pathKeys)
+ )
+ } else {
+ _.extend(obj, createGetDeleteOutput(verb, swagger.definitions))
+ }
+ }
+ }
+ return paths
+}
+
+function createPostPushPutOutput(verbs, definitions, pathKeys) {
+ let pathItemObject = {}
+ let verbDefinitionResult = createVerbDefinitions(verbs, definitions)
+
+ let params = []
+ let pathParams = createPathParameters(verbs, pathKeys)
+ pathParams = _.filter(pathParams, function (param) {
+ let hasKey = pathKeys.indexOf(param.name) !== -1
+ return !(param.in === "path" && !hasKey)
+ })
+
+ params = params.concat(pathParams)
+ let required =
+ verbs.parameter &&
+ verbs.parameter.fields &&
+ verbs.parameter.fields.Parameter &&
+ verbs.parameter.fields.Parameter.length > 0
+
+ params.push({
+ in: "body",
+ name: "body",
+ description: removeTags(verbs.description),
+ required: required,
+ schema: {
+ $ref: "#/definitions/" + verbDefinitionResult.topLevelParametersRef,
+ },
+ })
+
+ pathItemObject[verbs.type] = {
+ tags: [verbs.group],
+ summary: removeTags(verbs.description),
+ consumes: ["application/json"],
+ produces: ["application/json"],
+ parameters: params,
+ }
+
+ if (verbDefinitionResult.topLevelSuccessRef) {
+ pathItemObject[verbs.type].responses = {
+ 200: {
+ description: "successful operation",
+ schema: {
+ type: verbDefinitionResult.topLevelSuccessRefType,
+ items: {
+ $ref: "#/definitions/" + verbDefinitionResult.topLevelSuccessRef,
+ },
+ },
+ },
+ }
+ }
+
+ return pathItemObject
+}
+
+function createVerbDefinitions(verbs, definitions) {
+ let result = {
+ topLevelParametersRef: null,
+ topLevelSuccessRef: null,
+ topLevelSuccessRefType: null,
+ }
+ let defaultObjectName = verbs.name
+
+ let fieldArrayResult = {}
+ if (verbs && verbs.parameter && verbs.parameter.fields) {
+ fieldArrayResult = createFieldArrayDefinitions(
+ verbs.parameter.fields.Parameter,
+ definitions,
+ verbs.name,
+ defaultObjectName
+ )
+ result.topLevelParametersRef = fieldArrayResult.topLevelRef
+ }
+
+ if (verbs && verbs.success && verbs.success.fields) {
+ fieldArrayResult = createFieldArrayDefinitions(
+ verbs.success.fields["Success 200"],
+ definitions,
+ verbs.name,
+ defaultObjectName
+ )
+ result.topLevelSuccessRef = fieldArrayResult.topLevelRef
+ result.topLevelSuccessRefType = fieldArrayResult.topLevelRefType
+ }
+
+ return result
+}
+
+function createFieldArrayDefinitions(
+ fieldArray,
+ definitions,
+ topLevelRef,
+ defaultObjectName
+) {
+ let result = {
+ topLevelRef: topLevelRef,
+ topLevelRefType: null,
+ }
+
+ if (!fieldArray) {
+ return result
+ }
+
+ for (let i = 0; i < fieldArray.length; i++) {
+ let parameter = fieldArray[i]
+
+ let nestedName = createNestedName(parameter.field)
+ let objectName = nestedName.objectName
+ if (!objectName) {
+ objectName = defaultObjectName
+ }
+ let type = parameter.type
+ if (i === 0) {
+ result.topLevelRefType = type
+ if (parameter.type === "Object") {
+ objectName = nestedName.propertyName
+ nestedName.propertyName = null
+ } else if (parameter.type === "Array") {
+ objectName = nestedName.propertyName
+ nestedName.propertyName = null
+ result.topLevelRefType = "array"
+ }
+ result.topLevelRef = objectName
+ }
+
+ definitions[objectName] = definitions[objectName] || {
+ properties: {},
+ required: [],
+ }
+
+ if (nestedName.propertyName) {
+ let prop = {
+ type: (parameter.type || "").toLowerCase(),
+ description: removeTags(parameter.description),
+ }
+ if (parameter.type === "Object") {
+ prop.$ref = "#/definitions/" + parameter.field
+ }
+
+ let typeIndex = type.indexOf("[]")
+ if (typeIndex !== -1 && typeIndex === type.length - 2) {
+ prop.type = "array"
+ prop.items = {
+ type: type.slice(0, type.length - 2),
+ }
+ }
+
+ definitions[objectName]["properties"][nestedName.propertyName] = prop
+ if (!parameter.optional) {
+ let arr = definitions[objectName]["required"]
+ if (arr.indexOf(nestedName.propertyName) === -1) {
+ arr.push(nestedName.propertyName)
+ }
+ }
+ }
+ }
+
+ return result
+}
+
+function createNestedName(field) {
+ let propertyName = field
+ let objectName
+ let propertyNames = field.split(".")
+ if (propertyNames && propertyNames.length > 1) {
+ propertyName = propertyNames[propertyNames.length - 1]
+ propertyNames.pop()
+ objectName = propertyNames.join(".")
+ }
+
+ return {
+ propertyName: propertyName,
+ objectName: objectName,
+ }
+}
+
+/**
+ * Generate get, delete method output
+ * @param verbs
+ * @param definitions
+ * @returns {{}}
+ */
+function createGetDeleteOutput(verbs, definitions) {
+ let pathItemObject = {}
+ verbs.type = verbs.type === "del" ? "delete" : verbs.type
+
+ let verbDefinitionResult = createVerbDefinitions(verbs, definitions)
+ pathItemObject[verbs.type] = {
+ tags: [verbs.group],
+ summary: removeTags(verbs.description),
+ consumes: ["application/json"],
+ produces: ["application/json"],
+ parameters: createPathParameters(verbs),
+ }
+ if (verbDefinitionResult.topLevelSuccessRef) {
+ pathItemObject[verbs.type].responses = {
+ 200: {
+ description: "successful operation",
+ schema: {
+ type: verbDefinitionResult.topLevelSuccessRefType,
+ items: {
+ $ref: "#/definitions/" + verbDefinitionResult.topLevelSuccessRef,
+ },
+ },
+ },
+ }
+ }
+ return pathItemObject
+}
+
+/**
+ * Iterate through all method parameters and create array of parameter objects which are stored as path parameters
+ * @param verbs
+ * @returns {Array}
+ */
+function createPathParameters(verbs) {
+ let pathItemObject = []
+ if (verbs.parameter && verbs.parameter.fields.Parameter) {
+ for (let i = 0; i < verbs.parameter.fields.Parameter.length; i++) {
+ let param = verbs.parameter.fields.Parameter[i]
+ let field = param.field
+ let type = param.type
+ pathItemObject.push({
+ name: field,
+ in: type === "file" ? "formData" : "path",
+ required: !param.optional,
+ type: param.type.toLowerCase(),
+ description: removeTags(param.description),
+ })
+ }
+ }
+ return pathItemObject
+}
+
+function groupByUrl(apidocJson) {
+ return _.chain(apidocJson)
+ .groupBy("url")
+ .toPairs()
+ .map(function (element) {
+ return _.zipObject(["url", "verbs"], element)
+ })
+ .value()
+}
+
+module.exports = toSwagger
diff --git a/packages/server/src/api/routes/row.js b/packages/server/src/api/routes/row.js
index a7cbd7fcdf..8251328df3 100644
--- a/packages/server/src/api/routes/row.js
+++ b/packages/server/src/api/routes/row.js
@@ -65,7 +65,7 @@ router
* @apiParam {string} tableId The ID of the table to retrieve a row from.
* @apiParam {string} rowId The ID of the row to retrieve.
*
- * @apiSuccess {object} row The response body will be the row that was found.
+ * @apiSuccess {object} body The response body will be the row that was found.
*/
.get(
"/api/:tableId/rows/:rowId",
@@ -84,21 +84,21 @@ router
*
* @apiParam {string} tableId The ID of the table to retrieve rows from.
*
- * @apiBody {boolean} [paginate] If pagination is required then this should be set to true,
+ * @apiParam (Body) {boolean} [paginate] If pagination is required then this should be set to true,
* defaults to false.
- * @apiBody {object} [query] This contains a set of filters which should be applied, if none
+ * @apiParam (Body) {object} [query] This contains a set of filters which should be applied, if none
* specified then the request will be unfiltered. An example with all of the possible query
* options has been supplied below.
- * @apiBody {number} [limit] This sets a limit for the number of rows that will be returned,
+ * @apiParam (Body) {number} [limit] This sets a limit for the number of rows that will be returned,
* this will be implemented at the database level if supported for performance reasons. This
* is useful when paginating to set exactly how many rows per page.
- * @apiBody {string} [bookmark] If pagination is enabled then a bookmark will be returned
+ * @apiParam (Body) {string} [bookmark] If pagination is enabled then a bookmark will be returned
* with each successful search request, this should be supplied back to get the next page.
- * @apiBody {object} [sort] If sort is desired this should contain the name of the column to
+ * @apiParam (Body) {object} [sort] If sort is desired this should contain the name of the column to
* sort on.
- * @apiBody {string} [sortOrder] If sort is enabled then this can be either "descending" or
+ * @apiParam (Body) {string} [sortOrder] If sort is enabled then this can be either "descending" or
* "ascending" as required.
- * @apiBody {string} [sortType] If sort is enabled then you must specify the type of search
+ * @apiParam (Body) {string} [sortType] If sort is enabled then you must specify the type of search
* being used, either "string" or "number". This is only used for internal tables.
*
* @apiParamExample {json} Example:
@@ -164,17 +164,17 @@ router
*
* @apiParam {string} tableId The ID of the table to save a row to.
*
- * @apiBody {string} [_id] If the row exists already then an ID for the row must be provided.
- * @apiBody {string} [_rev] If working with an existing row for an internal table its revision
+ * @apiParam (Body) {string} [_id] If the row exists already then an ID for the row must be provided.
+ * @apiParam (Body) {string} [_rev] If working with an existing row for an internal table its revision
* must also be provided.
- * @apiBody {string} tableId The ID of the table should also be specified in the row body itself.
- * @apiBody {any} [any] Any field supplied in the body will be assessed to see if it matches
+ * @apiParam (Body) {string} tableId The ID of the table should also be specified in the row body itself.
+ * @apiParam (Body) {any} [any] Any field supplied in the body will be assessed to see if it matches
* a column in the specified table. All other fields will be dropped and not stored.
*
* @apiSuccess {string} _id The ID of the row that was just saved, if it was just created this
* is the rows new ID.
* @apiSuccess {string} [_rev] If saving to an internal table a revision will also be returned.
- * @apiSuccess {any} [any] The contents of the row that was saved will be returned as well.
+ * @apiSuccess {object} body The contents of the row that was saved will be returned as well.
*/
.post(
"/api/:tableId/rows",
@@ -208,7 +208,7 @@ router
*
* @apiParam {string} tableId The ID of the table the row is to be validated for.
*
- * @apiBody {any} [any] Any fields provided in the request body will be tested
+ * @apiParam (Body) {any} [any] Any fields provided in the request body will be tested
* against the table schema and constraints.
*
* @apiSuccess {boolean} valid If inputs provided are acceptable within the table schema this
@@ -231,13 +231,15 @@ router
* @apiDescription This endpoint can delete a single row, or delete them in a bulk
* fashion.
*
- * @apiBody {object[]} [rows] If bulk deletion is desired then provide the rows in this
+ * @apiParam {string} tableId The ID of the table the row is to be deleted from.
+ *
+ * @apiParam (Body) {object[]} [rows] If bulk deletion is desired then provide the rows in this
* key of the request body that are to be deleted.
- * @apiBody {string} [_id] If deleting a single row then provide its ID in this field.
- * @apiBody {string} [_rev] If deleting a single row from an internal table then provide its
+ * @apiParam (Body) {string} [_id] If deleting a single row then provide its ID in this field.
+ * @apiParam (Body) {string} [_rev] If deleting a single row from an internal table then provide its
* revision here.
*
- * @apiSuccess {object[]|object} rows If deleting bulk then the response body will be an array
+ * @apiSuccess {object[]|object} body If deleting bulk then the response body will be an array
* of the deleted rows, if deleting a single row then the body will contain a "row" property which
* is the deleted row.
*/
diff --git a/packages/server/src/api/routes/table.js b/packages/server/src/api/routes/table.js
index 62146b0bbe..d8ddbe8133 100644
--- a/packages/server/src/api/routes/table.js
+++ b/packages/server/src/api/routes/table.js
@@ -27,13 +27,110 @@ function generateSaveValidator() {
}
router
+ /**
+ * @api {get} /api/tables Fetch all tables
+ * @apiName Fetch all tables
+ * @apiGroup tables
+ * @apiPermission table read access
+ * @apiDescription This endpoint retrieves all of the tables which have been created in
+ * an app. This includes all of the external and internal tables; to tell the difference
+ * between these look for the "type" property on each table, either being "internal" or "external".
+ *
+ * @apiSuccess {object[]} body The response body will be the list of tables that was found - as
+ * this does not take any parameters the only error scenario is no access.
+ */
.get("/api/tables", authorized(BUILDER), tableController.fetch)
+ /**
+ * @api {get} /api/tables/:id Fetch a single table
+ * @apiName Fetch a single table
+ * @apiGroup tables
+ * @apiPermission table read access
+ * @apiDescription Retrieves a single table this could be be internal or external based on
+ * the provided table ID.
+ *
+ * @apiParam {string} id The ID of the table which is to be retrieved.
+ *
+ * @apiSuccess {object[]} body The response body will be the table that was found.
+ */
.get(
"/api/tables/:id",
paramResource("id"),
authorized(PermissionTypes.TABLE, PermissionLevels.READ),
tableController.find
)
+ /**
+ * @api {post} /api/tables Save a table
+ * @apiName Save a table
+ * @apiGroup tables
+ * @apiPermission builder
+ * @apiDescription Create or update a table with this endpoint, this will function for both internal
+ * external tables.
+ *
+ * @apiParam (Body) {string} [_id] If updating an existing table then the ID of the table must be specified.
+ * @apiParam (Body) {string} [_rev] If updating an existing internal table then the revision must also be specified.
+ * @apiParam (Body) {string} type] This should either be "internal" or "external" depending on the table type -
+ * this will default to internal.
+ * @apiParam (Body) {string} [sourceId] If creating an external table then this should be set to the data source ID. If
+ * building an internal table this does not need to be set, although it will be returned as "bb_internal".
+ * @apiParam (Body) {string} name The name of the table, this will be used in the UI. To rename the table simply
+ * supply the table structure to this endpoint with the name changed.
+ * @apiParam (Body) {object} schema A key value object which has all of the columns in the table as the keys in this
+ * object. For each column a "type" and "constraints" must be specified, with some types requiring further information.
+ * More information about the schema structure can be found in the Typescript definitions.
+ * @apiParam (Body) {string} [primaryDisplay] The name of the column which should be used when displaying rows
+ * from this table as relationships.
+ * @apiParam (Body) {object[]} [indexes] Specifies the search indexes - this is deprecated behaviour with the introduction
+ * of lucene indexes. This functionality is only available for internal tables.
+ * @apiParam (Body) {object} [_rename] If a column is to be renamed then the "old" column name should be set in this
+ * structure, and the "updated", new column name should also be supplied. The schema should also be updated, this field
+ * lets the server know that a field hasn't just been deleted, that the data has moved to a new name, this will fix
+ * the rows in the table. This functionality is only available for internal tables.
+ * @apiParam (Body) {object} [dataImport] When creating an internal table it can be built from a CSV, by using the
+ * CSV validation endpoint. Send the CSV data to the validation endpoint, then put the results of that call
+ * into this property, along with the CSV and a table/rows will be built from it. This is not supported when updating
+ * or for external tables.
+ *
+ * @apiParamExample {json} Example:
+ * {
+ * "_id": "ta_05541307fa0f4044abee071ca2a82119",
+ * "_rev": "10-0fbe4e78f69b255d79f1017e2eeef807",
+ * "type": "internal",
+ * "views": {},
+ * "name": "tableName",
+ * "schema": {
+ * "column": {
+ * "type": "string",
+ * "constraints": {
+ * "type": "string",
+ * "length": {
+ * "maximum": null
+ * },
+ * "presence": false
+ * },
+ * "name": "column"
+ * },
+ * },
+ * "primaryDisplay": "column",
+ * "indexes": [],
+ * "sourceId": "bb_internal",
+ * "_rename": {
+ * "old": "columnName",
+ * "updated": "newColumnName",
+ * },
+ * "dataImport": {
+ * "csvString": "column\nvalue",
+ * "primaryDisplay": "column",
+ * "schema": {
+ * "column": {
+ * "type": "string"
+ * }
+ * }
+ * }
+ * }
+ *
+ * @apiSuccess {object} table The response body will contain the table structure after being cleaned up and
+ * saved to the database.
+ */
.post(
"/api/tables",
// allows control over updating a table
@@ -42,22 +139,68 @@ router
generateSaveValidator(),
tableController.save
)
+ /**
+ * @api {post} /api/tables/csv/validate Validate a CSV for a table
+ * @apiName Validate a CSV for a table
+ * @apiGroup tables
+ * @apiPermission builder
+ * @apiDescription When creating a new table, or importing a CSV to an existing table the CSV must be validated and
+ * converted into a Budibase schema; this endpoint does this.
+ *
+ * @apiParam (Body) {string} csvString The CSV which is to be validated as a string.
+ * @apiParam (Body) {object} [schema] When a CSV has been validated it is possible to re-validate after changing the
+ * type of a field, by default everything will be strings as there is no way to infer types. The returned schema can
+ * be updated and then returned to the endpoint to re-validate and check if the type will work for the CSV, e.g.
+ * using a number instead of strings.
+ * @apiParam (Body) {string} [tableId] If importing data to an existing table this will pull the current table and
+ * remove any fields from the CSV schema which do not exist on the table/don't match the type of the table. When
+ * importing a CSV to an existing table only fields that are present on the table can be imported.
+ *
+ * @apiSuccess {object} schema The response body will contain a "schema" object that represents the schema found for
+ * the CSV - this will be in the same format used for table schema.s
+ */
.post(
"/api/tables/csv/validate",
authorized(BUILDER),
tableController.validateCSVSchema
)
+ /**
+ * @api {post} /api/tables/:tableId/:revId Delete a table
+ * @apiName Delete a table
+ * @apiGroup tables
+ * @apiPermission builder
+ * @apiDescription This endpoint will delete a table and all of its associated data, for this reason it is
+ * quite dangerous - it will work for internal and external tables.
+ *
+ * @apiParam {string} tableId The ID of the table which is to be deleted.
+ * @apiParam {string} [revId] If deleting an internal table then the revision must also be supplied (_rev), for
+ * external tables this can simply be set to anything, e.g. "external".
+ *
+ * @apiSuccess {string} message A message stating that the table was deleted successfully.
+ */
.delete(
"/api/tables/:tableId/:revId",
paramResource("tableId"),
authorized(BUILDER),
tableController.destroy
)
- // this is currently builder only, but in the future
- // it could be carried out by an end user in app,
- // however some thought will need to be had about
- // implications for automations (triggers)
- // new trigger type, bulk rows created
+ /**
+ * @api {post} /api/tables/:tableId/:revId Import CSV to existing table
+ * @apiName Import CSV to existing table
+ * @apiGroup tables
+ * @apiPermission builder
+ * @apiDescription This endpoint will import data to existing tables, internal or external. It is used in combination
+ * with the CSV validation endpoint. Take the output of the CSV validation endpoint and pass it to this endpoint to
+ * import the data; please note this will only import fields that already exist on the table/match the type.
+ *
+ * @apiParam {string} tableId The ID of the table which the data should be imported to.
+ *
+ * @apiParam (Body) {object} dataImport This is the same as the structure used when creating an internal table with
+ * a CSV, it will have the "schema" returned from the CSV validation endpoint and the "csvString" which is to be
+ * turned into rows.
+ *
+ * @apiSuccess {string} message A message stating that the data was imported successfully.
+ */
.post(
"/api/tables/:tableId/import",
paramResource("tableId"),
From 5e9f3969c90c0beacba432f395a6985028ac13c9 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Fri, 26 Nov 2021 14:14:53 +0000
Subject: [PATCH 0031/1026] Fixing a few issues that became obvious when I was
looking at examples of what gets sent to the API for table saving.
---
.../backend/DataTable/modals/CreateEditColumn.svelte | 3 +++
packages/builder/src/stores/backend/tables.js | 2 +-
packages/server/src/api/controllers/table/internal.js | 4 ----
3 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
index c47bf1a538..b88a66d222 100644
--- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
@@ -102,6 +102,9 @@
if (field.type === AUTO_TYPE) {
field = buildAutoColumn($tables.draft.name, field.name, field.subtype)
}
+ if (field.type !== LINK_TYPE) {
+ delete field.fieldName
+ }
try {
await tables.saveField({
originalName,
diff --git a/packages/builder/src/stores/backend/tables.js b/packages/builder/src/stores/backend/tables.js
index c63685914b..02db48c549 100644
--- a/packages/builder/src/stores/backend/tables.js
+++ b/packages/builder/src/stores/backend/tables.js
@@ -122,7 +122,7 @@ export function createTablesStore() {
update(state => {
// delete the original if renaming
// need to handle if the column had no name, empty string
- if (originalName || originalName === "") {
+ if (originalName != null && originalName !== field.name) {
delete state.draft.schema[originalName]
state.draft._rename = {
old: originalName,
diff --git a/packages/server/src/api/controllers/table/internal.js b/packages/server/src/api/controllers/table/internal.js
index 660618aef0..10a5c9746a 100644
--- a/packages/server/src/api/controllers/table/internal.js
+++ b/packages/server/src/api/controllers/table/internal.js
@@ -44,14 +44,10 @@ exports.save = async function (ctx) {
// the column if you want to change the type
if (oldTable && oldTable.schema) {
for (let propKey of Object.keys(tableToSave.schema)) {
- let column = tableToSave.schema[propKey]
let oldColumn = oldTable.schema[propKey]
if (oldColumn && oldColumn.type === "internal") {
oldColumn.type = "auto"
}
- if (oldColumn && oldColumn.type !== column.type) {
- ctx.throw(400, "Cannot change the type of a column")
- }
}
}
From a33204e4cfb26341e1088b2677aafb043aa17302 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Fri, 26 Nov 2021 15:26:51 +0100
Subject: [PATCH 0032/1026] adding check for initinfo
---
packages/builder/src/pages/builder/portal/apps/index.svelte | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte
index 15076a9a53..40218b0ca9 100644
--- a/packages/builder/src/pages/builder/portal/apps/index.svelte
+++ b/packages/builder/src/pages/builder/portal/apps/index.svelte
@@ -264,7 +264,7 @@
await apps.load()
// if the portal is loaded from an external URL with a template param
const initInfo = await auth.getInitInfo()
- if (initInfo.init_template) {
+ if (initInfo?.init_template) {
creatingFromTemplate = true
createAppFromTemplateUrl(initInfo.init_template)
return
From 4b79045dac22f22f43fc96fa9f00c89394a1eee1 Mon Sep 17 00:00:00 2001
From: Martin McKeaveney
Date: Fri, 26 Nov 2021 15:27:37 +0100
Subject: [PATCH 0033/1026] adding check on backend
---
packages/worker/src/api/controllers/global/auth.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/worker/src/api/controllers/global/auth.js b/packages/worker/src/api/controllers/global/auth.js
index 5f7e656f7d..592787c5ea 100644
--- a/packages/worker/src/api/controllers/global/auth.js
+++ b/packages/worker/src/api/controllers/global/auth.js
@@ -100,7 +100,7 @@ exports.setInitInfo = ctx => {
}
exports.getInitInfo = ctx => {
- ctx.body = getCookie(ctx, Cookies.Init)
+ ctx.body = getCookie(ctx, Cookies.Init) || {}
}
/**
From 15381e44ebd7aeb6b4a6ac4a0bd32941e8545897 Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Fri, 26 Nov 2021 14:35:06 +0000
Subject: [PATCH 0034/1026] v0.9.190-alpha.7
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index 99e26808d2..be885ac4c7 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index a0cb7f7e21..de0c3f7255 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index aff5c126e3..fe0771c6bb 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": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 60a0c516cc..ecea2b4bb7 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.6",
- "@budibase/client": "^0.9.190-alpha.6",
+ "@budibase/bbui": "^0.9.190-alpha.7",
+ "@budibase/client": "^0.9.190-alpha.7",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.6",
+ "@budibase/string-templates": "^0.9.190-alpha.7",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index d12cceeddb..dadf9ee5b1 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 48b1129a96..a65264f2fa 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -19,9 +19,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.6",
+ "@budibase/bbui": "^0.9.190-alpha.7",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.6",
+ "@budibase/string-templates": "^0.9.190-alpha.7",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index eb09d84994..b60ea1dbda 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"description": "Budibase Web Server",
"main": "src/index.js",
"repository": {
@@ -68,9 +68,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.6",
- "@budibase/client": "^0.9.190-alpha.6",
- "@budibase/string-templates": "^0.9.190-alpha.6",
+ "@budibase/auth": "^0.9.190-alpha.7",
+ "@budibase/client": "^0.9.190-alpha.7",
+ "@budibase/string-templates": "^0.9.190-alpha.7",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 361984defa..900b25ab92 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index c5dfa4883b..19eba91433 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.6",
+ "version": "0.9.190-alpha.7",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.6",
- "@budibase/string-templates": "^0.9.190-alpha.6",
+ "@budibase/auth": "^0.9.190-alpha.7",
+ "@budibase/string-templates": "^0.9.190-alpha.7",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 115fc08aa4d08ca08c65c84e3805c6df0e1ea0b8 Mon Sep 17 00:00:00 2001
From: Rory Powell
Date: Fri, 26 Nov 2021 15:02:03 +0000
Subject: [PATCH 0035/1026] Improve returning logic for oracle
---
.../integrations/oracle/docker-compose.yml | 2 +-
packages/server/src/integrations/base/sql.ts | 2 -
packages/server/src/integrations/oracle.ts | 64 +++++++++----------
3 files changed, 30 insertions(+), 38 deletions(-)
diff --git a/packages/server/scripts/integrations/oracle/docker-compose.yml b/packages/server/scripts/integrations/oracle/docker-compose.yml
index 5cd5e02f81..c54cd0a40b 100644
--- a/packages/server/scripts/integrations/oracle/docker-compose.yml
+++ b/packages/server/scripts/integrations/oracle/docker-compose.yml
@@ -4,7 +4,7 @@
version: "3.8"
services:
db:
- container_name: oracle-xe
+ restart: always
platform: linux/x86_64
image: container-registry.oracle.com/database/express:18.4.0-xe
environment:
diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts
index 471774db3d..9bf248d895 100644
--- a/packages/server/src/integrations/base/sql.ts
+++ b/packages/server/src/integrations/base/sql.ts
@@ -435,8 +435,6 @@ class SqlQueryBuilder extends SqlTableQueryBuilder {
id = results?.[0].id
} else if (sqlClient === SqlClients.MY_SQL) {
id = results?.insertId
- } else if (sqlClient === SqlClients.ORACLE) {
- id = response.outBinds[0][0]
}
row = processFn(
await this.getReturningRow(queryFn, this.checkLookupKeys(id, json))
diff --git a/packages/server/src/integrations/oracle.ts b/packages/server/src/integrations/oracle.ts
index 13658399db..683dceed70 100644
--- a/packages/server/src/integrations/oracle.ts
+++ b/packages/server/src/integrations/oracle.ts
@@ -348,27 +348,7 @@ module OracleModule {
this.schemaErrors = final.errors
}
- /**
- * Knex default returning behaviour does not work with oracle
- * Manually add the behaviour for the return column
- */
- private addReturning(
- query: SqlQuery,
- bindings: BindParameters,
- returnColumn: string
- ) {
- if (bindings instanceof Array) {
- bindings.push({ dir: oracledb.BIND_OUT })
- query.sql =
- query.sql + ` returning \"${returnColumn}\" into :${bindings.length}`
- }
- }
-
- private async internalQuery(
- query: SqlQuery,
- returnColum?: string,
- operation?: string
- ): Promise> {
+ private async internalQuery(query: SqlQuery): Promise> {
let connection
try {
connection = await this.getConnection()
@@ -376,13 +356,6 @@ module OracleModule {
const options: ExecuteOptions = { autoCommit: true }
const bindings: BindParameters = query.bindings || []
- if (
- returnColum &&
- (operation === Operation.CREATE || operation === Operation.UPDATE)
- ) {
- this.addReturning(query, bindings, returnColum)
- }
-
const result: Result = await connection.execute(
query.sql,
bindings,
@@ -441,13 +414,34 @@ module OracleModule {
}
async query(json: QueryJson) {
- const primaryKeys = json.meta!.table!.primary
- const primaryKey = primaryKeys ? primaryKeys[0] : undefined
- const queryFn = (query: any, operation: string) =>
- this.internalQuery(query, primaryKey, operation)
- const processFn = (response: any) => (response.rows ? response.rows : [])
- const output = await this.queryWithReturning(json, queryFn, processFn)
- return output
+ const operation = this._operation(json).toLowerCase()
+ const input = this._query(json, { disableReturning: true })
+ if (Array.isArray(input)) {
+ const responses = []
+ for (let query of input) {
+ responses.push(await this.internalQuery(query))
+ }
+ return responses
+ } else {
+ const response = await this.internalQuery(input)
+ if (response.rows?.length) {
+ return response.rows
+ } else {
+ // get the last row that was updated
+ if (
+ response.lastRowid &&
+ json.endpoint?.entityId &&
+ operation.toUpperCase() !== Operation.DELETE
+ ) {
+ const lastRow = await this.internalQuery({
+ sql: `SELECT * FROM \"${json.endpoint.entityId}\" WHERE ROWID = '${response.lastRowid}'`,
+ })
+ return lastRow.rows
+ } else {
+ return [{ [operation]: true }]
+ }
+ }
+ }
}
}
From 531985c8dad6e56030f766ece7521d4a734ef77e Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Fri, 26 Nov 2021 15:29:05 +0000
Subject: [PATCH 0036/1026] v0.9.190-alpha.8
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index be885ac4c7..8b7e036ddc 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index de0c3f7255..72ca7c90d7 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index fe0771c6bb..6d0bc1a8fc 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": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index ecea2b4bb7..ecda1be172 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.7",
- "@budibase/client": "^0.9.190-alpha.7",
+ "@budibase/bbui": "^0.9.190-alpha.8",
+ "@budibase/client": "^0.9.190-alpha.8",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.7",
+ "@budibase/string-templates": "^0.9.190-alpha.8",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index dadf9ee5b1..e37a6f6cad 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index a65264f2fa..0ab9d0fc65 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -19,9 +19,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.7",
+ "@budibase/bbui": "^0.9.190-alpha.8",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.7",
+ "@budibase/string-templates": "^0.9.190-alpha.8",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index e88caa634b..a16ff8bc49 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -69,9 +69,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.7",
- "@budibase/client": "^0.9.190-alpha.7",
- "@budibase/string-templates": "^0.9.190-alpha.7",
+ "@budibase/auth": "^0.9.190-alpha.8",
+ "@budibase/client": "^0.9.190-alpha.8",
+ "@budibase/string-templates": "^0.9.190-alpha.8",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 900b25ab92..b4203429f4 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 19eba91433..10389c2f1d 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.7",
+ "version": "0.9.190-alpha.8",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.7",
- "@budibase/string-templates": "^0.9.190-alpha.7",
+ "@budibase/auth": "^0.9.190-alpha.8",
+ "@budibase/string-templates": "^0.9.190-alpha.8",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From f75928a9c97c208f626be9f10b7b2434d7e21b0f Mon Sep 17 00:00:00 2001
From: Rory Powell
Date: Fri, 26 Nov 2021 16:50:15 +0000
Subject: [PATCH 0037/1026] Deletion support for returning rows
---
packages/server/src/integrations/oracle.ts | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/packages/server/src/integrations/oracle.ts b/packages/server/src/integrations/oracle.ts
index 683dceed70..bf8e83350e 100644
--- a/packages/server/src/integrations/oracle.ts
+++ b/packages/server/src/integrations/oracle.ts
@@ -414,7 +414,7 @@ module OracleModule {
}
async query(json: QueryJson) {
- const operation = this._operation(json).toLowerCase()
+ const operation = this._operation(json)
const input = this._query(json, { disableReturning: true })
if (Array.isArray(input)) {
const responses = []
@@ -423,22 +423,34 @@ module OracleModule {
}
return responses
} else {
+ // read the row to be deleted up front for the return
+ let deletedRows
+ if (operation === Operation.DELETE) {
+ const queryFn = (query: any) => this.internalQuery(query)
+ deletedRows = await this.getReturningRow(queryFn, json)
+ }
+
+ // run the query
const response = await this.internalQuery(input)
- if (response.rows?.length) {
+
+ // get the results or return the created / updated / deleted row
+ if (deletedRows?.rows?.length) {
+ return deletedRows.rows
+ } else if (response.rows?.length) {
return response.rows
} else {
// get the last row that was updated
if (
response.lastRowid &&
json.endpoint?.entityId &&
- operation.toUpperCase() !== Operation.DELETE
+ operation !== Operation.DELETE
) {
const lastRow = await this.internalQuery({
sql: `SELECT * FROM \"${json.endpoint.entityId}\" WHERE ROWID = '${response.lastRowid}'`,
})
return lastRow.rows
} else {
- return [{ [operation]: true }]
+ return [{ [ operation.toLowerCase() ]: true }]
}
}
}
From d06ab10c1dfd28872a5c8f6a7193c56511570543 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Fri, 26 Nov 2021 17:08:56 +0000
Subject: [PATCH 0038/1026] Fixing issue found with enriching rows in SQL - the
system was assuming the array of entries contained a row ID that needed to be
broken down.
---
.../server/src/api/controllers/row/ExternalRequest.ts | 10 ++++++++--
packages/server/src/definitions/datasource.ts | 11 +++++++++++
packages/server/src/integrations/base/sql.ts | 2 +-
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/packages/server/src/api/controllers/row/ExternalRequest.ts b/packages/server/src/api/controllers/row/ExternalRequest.ts
index 2226dc99be..af199561dc 100644
--- a/packages/server/src/api/controllers/row/ExternalRequest.ts
+++ b/packages/server/src/api/controllers/row/ExternalRequest.ts
@@ -1,4 +1,5 @@
import {
+ FilterTypes,
IncludeRelationships,
Operation,
PaginationJson,
@@ -118,8 +119,13 @@ module External {
}
// check the row and filters to make sure they aren't a key of some sort
if (config.filters) {
- for (let filter of Object.values(config.filters)) {
- if (typeof filter !== "object" || Object.keys(filter).length === 0) {
+ for (let [key, filter] of Object.entries(config.filters)) {
+ // oneOf is an array, don't iterate it
+ if (
+ typeof filter !== "object" ||
+ Object.keys(filter).length === 0 ||
+ key === FilterTypes.ONE_OF
+ ) {
continue
}
iterateObject(filter)
diff --git a/packages/server/src/definitions/datasource.ts b/packages/server/src/definitions/datasource.ts
index 3760f54f2c..eb65ac994f 100644
--- a/packages/server/src/definitions/datasource.ts
+++ b/packages/server/src/definitions/datasource.ts
@@ -54,6 +54,17 @@ export enum IncludeRelationships {
EXCLUDE = 0,
}
+export enum FilterTypes {
+ STRING = "string",
+ FUZZY = "fuzzy",
+ RANGE = "range",
+ EQUAL = "equal",
+ NOT_EQUAL = "notEqual",
+ EMPTY = "empty",
+ NOT_EMPTY = "notEmpty",
+ ONE_OF = "oneOf",
+}
+
export interface QueryDefinition {
type: QueryTypes
displayName?: string
diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts
index 471774db3d..1f733ac135 100644
--- a/packages/server/src/integrations/base/sql.ts
+++ b/packages/server/src/integrations/base/sql.ts
@@ -93,7 +93,7 @@ class InternalBuilder {
if (filters.oneOf) {
iterate(filters.oneOf, (key, array) => {
const fnc = allOr ? "orWhereIn" : "whereIn"
- query = query[fnc](key, array)
+ query = query[fnc](key, Array.isArray(array) ? array : [array])
})
}
if (filters.string) {
From 5ff871608021f1e23765f8fa4cf74aebec437ca8 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Fri, 26 Nov 2021 17:39:18 +0000
Subject: [PATCH 0039/1026] Adding server functionality to determine schema for
JSON data type, some basic UI around an editor for getting JSON to determine
schema from and the key/value mechanism for flat structures.
---
.../DataTable/modals/CreateEditColumn.svelte | 5 +-
.../DataTable/modals/JSONSchemaModal.svelte | 54 +++++++++++++------
.../server/src/api/controllers/table/index.js | 33 ++++++++++++
packages/server/src/api/routes/table.js | 18 +++++++
4 files changed, 93 insertions(+), 17 deletions(-)
diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
index fc597b658e..f4c0422304 100644
--- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
@@ -452,7 +452,10 @@
- console.log(detail)} />
+ (field.schema = detail)}
+ />
{
- if (!schema) {
- schema = {}
- }
- let i = 0
- for (let [key, value] of Object.entries(schema)) {
- fieldKeys[i] = key
- fieldTypes[i] = value.type
- i++
- }
- fieldCount = i
+ updateCounts()
})
@@ -56,7 +78,7 @@
title={"Key/Value Schema Editor"}
confirmText="Save Column"
onConfirm={saveSchema}
- disabled={invalid}
+ bind:disabled={invalid}
size="L"
>
diff --git a/packages/server/src/api/controllers/table/index.js b/packages/server/src/api/controllers/table/index.js
index abbb4d6ff9..bd404f3da8 100644
--- a/packages/server/src/api/controllers/table/index.js
+++ b/packages/server/src/api/controllers/table/index.js
@@ -9,6 +9,7 @@ const {
BudibaseInternalDB,
} = require("../../../db/utils")
const { getTable } = require("./utils")
+const { FieldTypes } = require("../../../constants")
function pickApi({ tableId, table }) {
if (table && !tableId) {
@@ -81,6 +82,38 @@ exports.destroy = async function (ctx) {
ctx.body = { message: `Table ${tableId} deleted.` }
}
+exports.schemaGenerate = function (ctx) {
+ const { json } = ctx.request.body
+ function recurse(schemaLevel, objectLevel) {
+ for (let [key, value] of Object.entries(objectLevel)) {
+ const type = typeof value
+ // check array first, since arrays are objects
+ if (Array.isArray(value)) {
+ schemaLevel[key] = {
+ type: FieldTypes.ARRAY,
+ }
+ } else if (type === "object") {
+ schemaLevel[key] = recurse(schemaLevel[key], objectLevel)
+ } else if (type === "string") {
+ schemaLevel[key] = {
+ type: FieldTypes.STRING,
+ }
+ } else if (type === "boolean") {
+ schemaLevel[key] = {
+ type: FieldTypes.BOOLEAN,
+ }
+ } else if (type === "number") {
+ schemaLevel[key] = {
+ type: FieldTypes.NUMBER,
+ }
+ }
+ }
+ return schemaLevel
+ }
+
+ ctx.body = recurse({}, json) || {}
+}
+
exports.bulkImport = async function (ctx) {
const tableId = ctx.params.tableId
await pickApi({ tableId }).bulkImport(ctx)
diff --git a/packages/server/src/api/routes/table.js b/packages/server/src/api/routes/table.js
index d8ddbe8133..a4575b3572 100644
--- a/packages/server/src/api/routes/table.js
+++ b/packages/server/src/api/routes/table.js
@@ -139,6 +139,24 @@ router
generateSaveValidator(),
tableController.save
)
+ /**
+ * @api {post} /api/tables/schema/generate Generate schema from JSON
+ * @apiName Generate schema from JSON
+ * @apiGroup tables
+ * @apiPermission builder
+ * @apiDescription Given a JSON structure this will generate a nested schema that can be used for a key/value data
+ * type in a table.
+ *
+ * @apiParam (Body) {object} json The JSON structure from which a nest schema should be generated.
+ *
+ * @apiSuccess {object} schema The response body will contain the schema, which can now be used for a key/value
+ * data type.
+ */
+ .post(
+ "/api/tables/schema/generate",
+ authorized(BUILDER),
+ tableController.schemaGenerate
+ )
/**
* @api {post} /api/tables/csv/validate Validate a CSV for a table
* @apiName Validate a CSV for a table
From 7ef5ae88232cc5197b2400f4db18351425ba28e5 Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Fri, 26 Nov 2021 17:52:27 +0000
Subject: [PATCH 0040/1026] v0.9.190-alpha.9
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index 8b7e036ddc..df45b3c53b 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index 72ca7c90d7..4c0dcd1785 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 6d0bc1a8fc..16ea645a0f 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": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index ecda1be172..6357b73824 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.8",
- "@budibase/client": "^0.9.190-alpha.8",
+ "@budibase/bbui": "^0.9.190-alpha.9",
+ "@budibase/client": "^0.9.190-alpha.9",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.8",
+ "@budibase/string-templates": "^0.9.190-alpha.9",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index e37a6f6cad..4b73252dce 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 0ab9d0fc65..dbe9c66a29 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -19,9 +19,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.8",
+ "@budibase/bbui": "^0.9.190-alpha.9",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.8",
+ "@budibase/string-templates": "^0.9.190-alpha.9",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index a16ff8bc49..b22c1c9aa9 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -69,9 +69,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.8",
- "@budibase/client": "^0.9.190-alpha.8",
- "@budibase/string-templates": "^0.9.190-alpha.8",
+ "@budibase/auth": "^0.9.190-alpha.9",
+ "@budibase/client": "^0.9.190-alpha.9",
+ "@budibase/string-templates": "^0.9.190-alpha.9",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index b4203429f4..a9f9ada1c9 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 10389c2f1d..1659659da6 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.8",
+ "version": "0.9.190-alpha.9",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.8",
- "@budibase/string-templates": "^0.9.190-alpha.8",
+ "@budibase/auth": "^0.9.190-alpha.9",
+ "@budibase/string-templates": "^0.9.190-alpha.9",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From d33eeec665623510d332717419cf2bceb4cc7535 Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Fri, 26 Nov 2021 19:01:35 +0000
Subject: [PATCH 0041/1026] v0.9.190-alpha.10
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index df45b3c53b..7c04122790 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index 4c0dcd1785..cbdeb91afe 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 16ea645a0f..546d76495d 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": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 6357b73824..00cdef4138 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.9",
- "@budibase/client": "^0.9.190-alpha.9",
+ "@budibase/bbui": "^0.9.190-alpha.10",
+ "@budibase/client": "^0.9.190-alpha.10",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.9",
+ "@budibase/string-templates": "^0.9.190-alpha.10",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 4b73252dce..81ad1ef20f 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index dbe9c66a29..13e2ee725f 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"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": "^0.9.190-alpha.9",
+ "@budibase/bbui": "^0.9.190-alpha.10",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.9",
+ "@budibase/string-templates": "^0.9.190-alpha.10",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index b22c1c9aa9..748e5abc8f 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -69,9 +69,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.9",
- "@budibase/client": "^0.9.190-alpha.9",
- "@budibase/string-templates": "^0.9.190-alpha.9",
+ "@budibase/auth": "^0.9.190-alpha.10",
+ "@budibase/client": "^0.9.190-alpha.10",
+ "@budibase/string-templates": "^0.9.190-alpha.10",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index a9f9ada1c9..b2b7f26276 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 1659659da6..0494bfef97 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.9",
+ "version": "0.9.190-alpha.10",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.9",
- "@budibase/string-templates": "^0.9.190-alpha.9",
+ "@budibase/auth": "^0.9.190-alpha.10",
+ "@budibase/string-templates": "^0.9.190-alpha.10",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 8b4bd84ab5a9dd9d3d5a2ab6d21d375a4204e96a Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Mon, 29 Nov 2021 08:30:52 +0000
Subject: [PATCH 0042/1026] Preserve bindings when duplicating components
---
packages/builder/src/builderStore/store/frontend.js | 4 ++--
.../design/NavigationPanel/ComponentDropdownMenu.svelte | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js
index 1f1fb035a4..c94c759792 100644
--- a/packages/builder/src/builderStore/store/frontend.js
+++ b/packages/builder/src/builderStore/store/frontend.js
@@ -524,7 +524,7 @@ export const getFrontendStore = () => {
}
}
},
- paste: async (targetComponent, mode) => {
+ paste: async (targetComponent, mode, preserveBindings = false) => {
let promises = []
store.update(state => {
// Stop if we have nothing to paste
@@ -536,7 +536,7 @@ export const getFrontendStore = () => {
const cut = state.componentToPaste.isCut
// immediately need to remove bindings, currently these aren't valid when pasted
- if (!cut) {
+ if (!cut && !preserveBindings) {
state.componentToPaste = removeBindings(state.componentToPaste)
}
diff --git a/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte b/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte
index 06293e4168..56c5eef2ad 100644
--- a/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte
@@ -53,7 +53,7 @@
const duplicateComponent = () => {
storeComponentForCopy(false)
- pasteComponent("below")
+ pasteComponent("below", true)
}
const deleteComponent = async () => {
@@ -69,9 +69,9 @@
store.actions.components.copy(component, cut)
}
- const pasteComponent = mode => {
+ const pasteComponent = (mode, preserveBindings = false) => {
// lives in store - also used by drag drop
- store.actions.components.paste(component, mode)
+ store.actions.components.paste(component, mode, preserveBindings)
}
From 71e4764b174a4745454103dd26925b04310e79b0 Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Mon, 29 Nov 2021 08:58:49 +0000
Subject: [PATCH 0043/1026] Fix issue with navigation links editor mutating
real component structure
---
.../NavigationEditor/NavigationEditor.svelte | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/NavigationEditor/NavigationEditor.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/NavigationEditor/NavigationEditor.svelte
index b7a272e608..ea02b4184d 100644
--- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/NavigationEditor/NavigationEditor.svelte
+++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/NavigationEditor/NavigationEditor.svelte
@@ -2,13 +2,15 @@
import { Button, ActionButton, Drawer } from "@budibase/bbui"
import { createEventDispatcher } from "svelte"
import NavigationDrawer from "./NavigationDrawer.svelte"
+ import { cloneDeep } from "lodash/fp"
export let value = []
let drawer
+ let links = cloneDeep(value)
const dispatch = createEventDispatcher()
const save = () => {
- dispatch("change", value)
+ dispatch("change", links)
drawer.hide()
}
@@ -19,5 +21,5 @@
Configure the links in your navigation bar.
-
+
From c81ca0502a316e61cf8482947d383483e5087392 Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Mon, 29 Nov 2021 09:05:46 +0000
Subject: [PATCH 0044/1026] Fix layout navigation not scrolling when required
---
packages/client/src/components/app/Layout.svelte | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/packages/client/src/components/app/Layout.svelte b/packages/client/src/components/app/Layout.svelte
index 87e5ac3b5b..59765f9305 100644
--- a/packages/client/src/components/app/Layout.svelte
+++ b/packages/client/src/components/app/Layout.svelte
@@ -313,6 +313,9 @@
height: 100%;
overflow: auto;
}
+ .desktop.layout--left .links {
+ overflow-y: auto;
+ }
.desktop .nav--left {
width: 250px;
@@ -379,6 +382,7 @@
justify-content: flex-start;
align-items: stretch;
padding: var(--spacing-xl);
+ overflow-y: auto;
}
.mobile .link {
width: calc(100% - 30px);
From c53f5e3d2bd4e8219192c5feb788da39a4ff7843 Mon Sep 17 00:00:00 2001
From: Rory Powell
Date: Mon, 29 Nov 2021 10:37:31 +0000
Subject: [PATCH 0045/1026] Update backend to be extensible for different
import sources
---
packages/builder/src/analytics/constants.js | 3 +
.../modals/CreateDatasourceModal.svelte | 4 +-
...l.svelte => ImportRestQueriesModal.svelte} | 59 +-
.../builder/src/stores/backend/datasources.js | 5 -
.../builder/src/stores/backend/queries.js | 4 +
packages/server/package.json | 1 +
.../src/api/controllers/query/import.ts | 275 ++++++
.../controllers/{query.js => query/index.js} | 167 +---
.../src/api/controllers/query/validation.js | 40 +
packages/server/src/api/routes/query.js | 44 +-
packages/server/yarn.lock | 807 +++++++++++++++++-
11 files changed, 1195 insertions(+), 214 deletions(-)
rename packages/builder/src/components/backend/DatasourceNavigator/modals/{ImportRestDatasourceModal.svelte => ImportRestQueriesModal.svelte} (60%)
create mode 100644 packages/server/src/api/controllers/query/import.ts
rename packages/server/src/api/controllers/{query.js => query/index.js} (52%)
create mode 100644 packages/server/src/api/controllers/query/validation.js
diff --git a/packages/builder/src/analytics/constants.js b/packages/builder/src/analytics/constants.js
index d38b7bba4f..177d5320a5 100644
--- a/packages/builder/src/analytics/constants.js
+++ b/packages/builder/src/analytics/constants.js
@@ -9,6 +9,9 @@ export const Events = {
CREATED: "Datasource Created",
UPDATED: "Datasource Updated",
},
+ QUERIES: {
+ REST: "REST Queries Imported",
+ },
TABLE: {
CREATED: "Table Created",
},
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte
index 1fc3937ba0..d52bdb4785 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte
@@ -6,7 +6,7 @@
import { IntegrationNames } from "constants"
import CreateTableModal from "components/backend/TableNavigator/modals/CreateTableModal.svelte"
import DatasourceConfigModal from "components/backend/DatasourceNavigator/modals/DatasourceConfigModal.svelte"
- import ImportRestDatasourceModal from "./ImportRestDatasourceModal.svelte"
+ import ImportRestQueriesModal from "./ImportRestQueriesModal.svelte"
export let modal
let integrations = []
@@ -80,7 +80,7 @@
{#if integration.type === "REST"}
-
+
{/if}
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte
similarity index 60%
rename from packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
rename to packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte
index 64cffb3f7f..8098e10fb4 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestDatasourceModal.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte
@@ -16,6 +16,8 @@
import { datasources, queries } from "stores/backend"
export let modal
+ export let datasourceId
+ export let createDatasource = false
let data = {
url: "",
@@ -25,47 +27,60 @@
let lastTouched = "url"
- const getPayload = async () => {
- let payloadData
- let type
+ const getData = async () => {
+ let dataString
// parse the file into memory and send as string
if (lastTouched === "file") {
- type = "raw"
- payloadData = await data.file[0].text()
- } else {
- type = lastTouched
- payloadData = data[lastTouched]
+ dataString = await data.file[0].text()
+ } else if (lastTouched === "url") {
+ const response = await fetch(data.url)
+ dataString = await response.text()
+ } else if (lastTouched === "raw") {
+ dataString = data.raw
}
- return {
- type: type,
- data: payloadData,
- }
+ return dataString
}
- async function importDatasource() {
+ async function importQueries() {
try {
- const resp = await datasources.import(await getPayload())
+ const dataString = await getData()
+ if (!datasourceId && !createDatasource) {
+ throw new Error("No datasource id")
+ }
+
+ const body = {
+ data: dataString,
+ datasourceId,
+ }
+
+ const resp = await queries.import(body)
+ datasourceId = resp.datasourceId
+
+ // reload
+ await datasources.fetch()
await queries.fetch()
- await datasources.select(resp._id)
- $goto(`./datasource/${resp._id}`)
- notifications.success(`Datasource imported successfully.`)
- analytics.captureEvent(Events.DATASOURCE.IMPORTED, {
- name: resp.name,
- source: resp.source,
+ await datasources.select(datasourceId)
+
+ $goto(`./datasource/${datasourceId}`)
+ notifications.success(`Imported successfully.`)
+ analytics.captureEvent(Events.QUERIES.REST.IMPORTED, {
+ importType: lastTouched,
+ newDatasource: createDatasource,
})
+
return true
} catch (err) {
- notifications.error(`Error importing datasource: ${err}`)
+ notifications.error(`Error importing: ${err}`)
return false
}
}
importDatasource()}
+ onConfirm={() => importQueries()}
onCancel={() => modal.show()}
confirmText={"Import"}
cancelText="Back"
diff --git a/packages/builder/src/stores/backend/datasources.js b/packages/builder/src/stores/backend/datasources.js
index 2d4fbdfb0b..7810c3a950 100644
--- a/packages/builder/src/stores/backend/datasources.js
+++ b/packages/builder/src/stores/backend/datasources.js
@@ -84,11 +84,6 @@ export function createDatasourcesStore() {
return updateDatasource(response)
},
- import: async body => {
- let response
- response = await api.post(`/api/queries/import/swagger2`, body)
- return updateDatasource(response)
- },
delete: async datasource => {
const response = await api.delete(
`/api/datasources/${datasource._id}/${datasource._rev}`
diff --git a/packages/builder/src/stores/backend/queries.js b/packages/builder/src/stores/backend/queries.js
index 020a0c9420..c03aea4052 100644
--- a/packages/builder/src/stores/backend/queries.js
+++ b/packages/builder/src/stores/backend/queries.js
@@ -53,6 +53,10 @@ export function createQueriesStore() {
})
return json
},
+ import: async body => {
+ const response = await api.post(`/api/queries/import`, body)
+ return response.json()
+ },
select: query => {
update(state => ({ ...state, selected: query._id }))
views.unselect()
diff --git a/packages/server/package.json b/packages/server/package.json
index 43fb5ab22b..040febe02c 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -77,6 +77,7 @@
"@koa/router": "8.0.0",
"@sendgrid/mail": "7.1.1",
"@sentry/node": "^6.0.0",
+ "@types/swagger-schema-official": "^2.0.22",
"airtable": "0.10.1",
"arangojs": "7.2.0",
"aws-sdk": "^2.767.0",
diff --git a/packages/server/src/api/controllers/query/import.ts b/packages/server/src/api/controllers/query/import.ts
new file mode 100644
index 0000000000..f860b28d8c
--- /dev/null
+++ b/packages/server/src/api/controllers/query/import.ts
@@ -0,0 +1,275 @@
+import CouchDB from "../../../db"
+import { queryValidation } from "./validation"
+import { generateQueryID } from "../../../db/utils"
+import { Spec as Swagger2, Operation } from "swagger-schema-official"
+
+// {
+// "_id": "query_datasource_d62738f2d72a466997ffbf46f4952404_e7258ad382cd4c37961b81730633ff2d",
+// "_rev": "1-e702a18eaa96c7cb4be1b402c34eaa59",
+// "datasourceId": "datasource_d62738f2d72a466997ffbf46f4952404",
+// "parameters": [
+// {
+// "name": "paramtest",
+// "default": "defaultValue"
+// }
+// ],
+// "fields": {
+// "headers": {
+// "headertest": "test"
+// },
+// "queryString": "query=test",
+// "path": "/path/test"
+// },
+// "queryVerb": "read",
+// "transformer": "return data.test",
+// "schema": {},
+// "name": "name",
+// "readable": true
+// }
+
+// return joiValidator.body(Joi.object({
+// _id: Joi.string(),
+// _rev: Joi.string(),
+// name: Joi.string().required(),
+// fields: Joi.object().required(),
+// datasourceId: Joi.string().required(),
+// readable: Joi.boolean(),
+// parameters: Joi.array().items(Joi.object({
+// name: Joi.string(),
+// default: Joi.string().allow(""),
+// })),
+// queryVerb: Joi.string().allow().required(),
+// extra: Joi.object().optional(),
+// schema: Joi.object({}).required().unknown(true),
+// transformer: Joi.string().optional(),
+// }))
+
+interface Parameter {
+ name: string
+ default: string
+}
+
+interface Query {
+ _id?: string
+ datasourceId: string
+ name: string
+ parameters: Parameter[]
+ fields: {
+ headers: any
+ queryString: string
+ path: string
+ }
+ transformer: string | null
+ schema: any
+ readable: boolean
+ queryVerb: string
+}
+
+enum Strategy {
+ SWAGGER2,
+ OPENAPI3,
+ CURL,
+}
+
+enum MethodToVerb {
+ get = "read",
+ post = "create",
+ put = "update",
+ patch = "patch",
+ delete = "delete",
+}
+
+interface ImportResult {
+ errorQueries: Query[]
+}
+
+interface DatasourceInfo {
+ url: string
+ name: string
+ defaultHeaders: any[]
+}
+
+const parseImportStrategy = (data: string): Strategy => {
+ return Strategy.SWAGGER2
+}
+
+// SWAGGER
+
+const parseSwagger2Info = (swagger2: Swagger2): DatasourceInfo => {
+ return {
+ url: "http://localhost:3000",
+ name: "swagger",
+ defaultHeaders: [],
+ }
+}
+
+const parseSwagger2Queries = (
+ datasourceId: string,
+ swagger2: Swagger2
+): Query[] => {
+ const queries = []
+
+ for (let [pathName, path] of Object.entries(swagger2.paths)) {
+ for (let [methodName, op] of Object.entries(path)) {
+ let operation = op as Operation
+
+ const name = operation.operationId || pathName
+ const queryString = ""
+ const headers = {}
+ const parameters: Parameter[] = []
+
+ const query = constructQuery(
+ datasourceId,
+ name,
+ methodName,
+ pathName,
+ queryString,
+ headers,
+ parameters
+ )
+ queries.push(query)
+ }
+ }
+
+ return queries
+}
+
+// OPEN API
+
+const parseOpenAPI3Info = (data: any): DatasourceInfo => {
+ return {
+ url: "http://localhost:3000",
+ name: "swagger",
+ defaultHeaders: [],
+ }
+}
+
+const parseOpenAPI3Queries = (datasourceId: string, data: string): Query[] => {
+ return []
+}
+
+// CURL
+
+const parseCurlDatasourceInfo = (data: any): DatasourceInfo => {
+ return {
+ url: "http://localhost:3000",
+ name: "swagger",
+ defaultHeaders: [],
+ }
+}
+
+const parseCurlQueries = (datasourceId: string, data: string): Query[] => {
+ return []
+}
+
+const verbFromMethod = (method: string) => {
+ const verb = (MethodToVerb)[method]
+ if (!verb) {
+ throw new Error(`Unsupported method: ${method}`)
+ }
+ return verb
+}
+
+const constructQuery = (
+ datasourceId: string,
+ name: string,
+ method: string,
+ path: string,
+ queryString: string,
+ headers: any = {},
+ parameters: Parameter[] = []
+): Query => {
+ const readable = true
+ const queryVerb = verbFromMethod(method)
+ const transformer = "return data"
+ const schema = {}
+
+ const query: Query = {
+ datasourceId,
+ name,
+ parameters,
+ fields: {
+ headers,
+ queryString,
+ path,
+ },
+ transformer,
+ schema,
+ readable,
+ queryVerb,
+ }
+
+ return query
+}
+
+export const getDatasourceInfo = (data: string): DatasourceInfo => {
+ const strategy = parseImportStrategy(data)
+
+ let info: DatasourceInfo
+ switch (strategy) {
+ case Strategy.SWAGGER2:
+ info = parseSwagger2Info(JSON.parse(data))
+ break
+ case Strategy.OPENAPI3:
+ info = parseOpenAPI3Info(JSON.parse(data))
+ break
+ case Strategy.CURL:
+ info = parseCurlDatasourceInfo(data)
+ break
+ }
+
+ return info
+}
+
+export const importQueries = async (
+ appId: string,
+ datasourceId: string,
+ data: string
+): Promise => {
+ const strategy = parseImportStrategy(data)
+
+ // constuct the queries
+ let queries: Query[]
+ switch (strategy) {
+ case Strategy.SWAGGER2:
+ queries = parseSwagger2Queries(datasourceId, JSON.parse(data))
+ break
+ case Strategy.OPENAPI3:
+ queries = parseOpenAPI3Queries(datasourceId, JSON.parse(data))
+ break
+ case Strategy.CURL:
+ queries = parseCurlQueries(datasourceId, data)
+ break
+ }
+
+ // validate queries
+ const errorQueries = []
+ const schema = queryValidation()
+ queries = queries
+ .filter(query => {
+ const validation = schema.validate(query)
+ if (validation.error) {
+ errorQueries.push(query)
+ return false
+ }
+ return true
+ })
+ .map(query => {
+ query._id = generateQueryID(query.datasourceId)
+ return query
+ })
+
+ // persist queries
+ const db = new CouchDB(appId)
+ for (const query of queries) {
+ try {
+ await db.put(query)
+ } catch (error) {
+ errorQueries.push(query)
+ }
+ }
+
+ return {
+ errorQueries,
+ }
+}
diff --git a/packages/server/src/api/controllers/query.js b/packages/server/src/api/controllers/query/index.js
similarity index 52%
rename from packages/server/src/api/controllers/query.js
rename to packages/server/src/api/controllers/query/index.js
index 40fc1adf21..fb3d233c4e 100644
--- a/packages/server/src/api/controllers/query.js
+++ b/packages/server/src/api/controllers/query/index.js
@@ -1,13 +1,11 @@
const { processString } = require("@budibase/string-templates")
-const CouchDB = require("../../db")
-const { generateQueryID, getQueryParams } = require("../../db/utils")
-const { BaseQueryVerbs } = require("../../constants")
-const env = require("../../environment")
-const { Thread, ThreadType } = require("../../threads")
-
-const fetch = require("node-fetch")
-const Joi = require("joi")
-const { save: saveDatasource } = require("./datasource")
+const CouchDB = require("../../../db")
+const { generateQueryID, getQueryParams } = require("../../../db/utils")
+const { BaseQueryVerbs } = require("../../../constants")
+const env = require("../../../environment")
+const { Thread, ThreadType } = require("../../../threads")
+const { importQueries, getDatasourceInfo } = require("./import")
+const { save: saveDatasource } = require("../datasource")
const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
@@ -31,134 +29,43 @@ exports.fetch = async function (ctx) {
include_docs: true,
})
)
+
ctx.body = enrichQueries(body.rows.map(row => row.doc))
}
-// const query = {
-// datasourceId: "datasource_b9a474302a174d1295e4c273cd72bde9",
-// name: "available pets (import)",
-// parameters: [],
-// fields: {
-// headers: {},
-// queryString: "status=available",
-// path: "v2/pet/findByStatus",
-// },
-// queryVerb: "read",
-// transformer: "return data",
-// schema: {},
-// readable: true
-// }
+exports.import = async ctx => {
+ const body = ctx.request.body
+ const data = body.data
-function generateQueryValidation() {
- // prettier-ignore
- return Joi.object({
- _id: Joi.string(),
- _rev: Joi.string(),
- name: Joi.string().required(),
- fields: Joi.object().required(),
- datasourceId: Joi.string().required(),
- readable: Joi.boolean(),
- parameters: Joi.array().items(Joi.object({
- name: Joi.string(),
- default: Joi.string().allow(""),
- })),
- queryVerb: Joi.string().allow().required(),
- extra: Joi.object().optional(),
- schema: Joi.object({}).required().unknown(true),
- transformer: Joi.string().optional(),
- })
-}
-
-const verbs = {
- get: "read",
- post: "create",
- put: "update",
- patch: "patch",
- delete: "delete",
-}
-
-const constructQuery = (datasource, swagger, path, method, config) => {
- const query = {
- datasourceId: datasource._id,
- }
- query.name = config.operationId || path
- query.parameters = []
- query.fields = {
- headers: {},
- // queryString: "status=available",
- path: path,
- }
- query.transformer = "return data"
- query.schema = {}
- query.readable = true
- query.queryVerb = verbs[method]
-
- return query
-}
-
-// {
-// "type": "url",
-// "data": "www.url.com/swagger.json"
-// }
-
-exports.import = async function (ctx) {
- const importConfig = ctx.request.body
-
- let data
-
- if (importConfig.type === "url") {
- data = await fetch(importConfig.data).then(res => res.json())
- } else if (importConfig.type === "raw") {
- data = JSON.parse(importConfig.data)
- } else {
- throw new Error("Invalid data type")
- }
-
- const db = new CouchDB(ctx.appId)
- const schema = generateQueryValidation()
-
- // create datasource
- const scheme = data.schemes.includes("https") ? "https" : "http"
- const url = `${scheme}://${data.host}${data.basePath}`
- const name = data.info.title
-
- // TODO: Refactor datasource creation into shared function
- const datasourceCtx = {
- ...ctx,
- }
- datasourceCtx.request.body.datasource = {
- type: "datasource",
- source: "REST",
- config: {
- url: url,
- defaultHeaders: {},
- },
- name: name,
- }
- await saveDatasource(datasourceCtx)
- const datasource = datasourceCtx.body.datasource
-
- // create query
-
- for (const [path, method] of Object.entries(data.paths)) {
- for (const [methodName, config] of Object.entries(method)) {
- const query = constructQuery(datasource, data, path, methodName, config)
-
- // validate query
- const { error } = schema.validate(query)
- if (error) {
- ctx.throw(400, `Invalid - ${error.message}`)
- return
- }
-
- // persist query
- query._id = generateQueryID(query.datasourceId)
- await db.put(query)
+ let datasourceId
+ if (!body.datasourceId) {
+ // construct new datasource
+ const info = getDatasourceInfo(data)
+ let datasource = {
+ type: "datasource",
+ source: "REST",
+ config: {
+ url: info.url,
+ defaultHeaders: info.defaultHeaders,
+ },
+ name: info.name,
}
+ // save the datasource
+ const datasourceCtx = { ...ctx }
+ datasourceCtx.request.body.datasource = datasource
+ await saveDatasource(datasourceCtx)
+ datasourceId = datasourceCtx.body.datasource._id
+ } else {
+ // use existing datasource
+ datasourceId = body.datasourceId
}
- // return the datasource
- ctx.body = { datasource }
+ const importResult = await importQueries(ctx.appId, datasourceId, data)
+
+ ctx.body = {
+ ...importResult,
+ datasourceId,
+ }
ctx.status = 200
}
diff --git a/packages/server/src/api/controllers/query/validation.js b/packages/server/src/api/controllers/query/validation.js
new file mode 100644
index 0000000000..2613e6806a
--- /dev/null
+++ b/packages/server/src/api/controllers/query/validation.js
@@ -0,0 +1,40 @@
+const joiValidator = require("../../../middleware/joi-validator")
+const Joi = require("joi")
+
+exports.queryValidation = () => {
+ return Joi.object({
+ _id: Joi.string(),
+ _rev: Joi.string(),
+ name: Joi.string().required(),
+ fields: Joi.object().required(),
+ datasourceId: Joi.string().required(),
+ readable: Joi.boolean(),
+ parameters: Joi.array().items(
+ Joi.object({
+ name: Joi.string(),
+ default: Joi.string().allow(""),
+ })
+ ),
+ queryVerb: Joi.string().allow().required(),
+ extra: Joi.object().optional(),
+ schema: Joi.object({}).required().unknown(true),
+ transformer: Joi.string().optional(),
+ })
+}
+
+exports.generateQueryValidation = () => {
+ // prettier-ignore
+ return joiValidator.body(exports.queryValidation())
+}
+
+exports.generateQueryPreviewValidation = () => {
+ // prettier-ignore
+ return joiValidator.body(Joi.object({
+ fields: Joi.object().required(),
+ queryVerb: Joi.string().allow().required(),
+ extra: Joi.object().optional(),
+ datasourceId: Joi.string().required(),
+ transformer: Joi.string().optional(),
+ parameters: Joi.object({}).required().unknown(true)
+ }))
+}
diff --git a/packages/server/src/api/routes/query.js b/packages/server/src/api/routes/query.js
index bc1c2204de..4a3cfeeb97 100644
--- a/packages/server/src/api/routes/query.js
+++ b/packages/server/src/api/routes/query.js
@@ -1,53 +1,23 @@
const Router = require("@koa/router")
const queryController = require("../controllers/query")
const authorized = require("../../middleware/authorized")
-const Joi = require("joi")
const {
PermissionLevels,
PermissionTypes,
BUILDER,
} = require("@budibase/auth/permissions")
-const joiValidator = require("../../middleware/joi-validator")
const {
bodyResource,
bodySubResource,
paramResource,
} = require("../../middleware/resourceId")
+const {
+ generateQueryPreviewValidation,
+ generateQueryValidation,
+} = require("../controllers/query/validation")
const router = Router()
-function generateQueryValidation() {
- // prettier-ignore
- return joiValidator.body(Joi.object({
- _id: Joi.string(),
- _rev: Joi.string(),
- name: Joi.string().required(),
- fields: Joi.object().required(),
- datasourceId: Joi.string().required(),
- readable: Joi.boolean(),
- parameters: Joi.array().items(Joi.object({
- name: Joi.string(),
- default: Joi.string().allow(""),
- })),
- queryVerb: Joi.string().allow().required(),
- extra: Joi.object().optional(),
- schema: Joi.object({}).required().unknown(true),
- transformer: Joi.string().optional(),
- }))
-}
-
-function generateQueryPreviewValidation() {
- // prettier-ignore
- return joiValidator.body(Joi.object({
- fields: Joi.object().required(),
- queryVerb: Joi.string().allow().required(),
- extra: Joi.object().optional(),
- datasourceId: Joi.string().required(),
- transformer: Joi.string().optional(),
- parameters: Joi.object({}).required().unknown(true)
- }))
-}
-
router
.get("/api/queries", authorized(BUILDER), queryController.fetch)
.post(
@@ -57,11 +27,7 @@ router
generateQueryValidation(),
queryController.save
)
- .post(
- "/api/queries/import/swagger2",
- authorized(BUILDER),
- queryController.import
- )
+ .post("/api/queries/import", authorized(BUILDER), queryController.import)
.post(
"/api/queries/preview",
bodyResource("datasourceId"),
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index f609651afa..3ef43963ef 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -951,6 +951,30 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@budibase/auth@^0.9.185-alpha.21":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-0.9.189.tgz#60d2b1ead017aa5a32f58ffd6f155a042c73dd2b"
+ integrity sha512-dKB6J8bEW7vFWLErd7q4eYO6pBwCg28GemkY3w40EFE+l+hPp/8Y8kRvsnoPIXkViKIr/6/oW3XOh3g+OUW/RQ==
+ dependencies:
+ "@techpass/passport-openidconnect" "^0.3.0"
+ aws-sdk "^2.901.0"
+ bcryptjs "^2.4.3"
+ cls-hooked "^4.2.2"
+ ioredis "^4.27.1"
+ jsonwebtoken "^8.5.1"
+ koa-passport "^4.1.4"
+ lodash "^4.17.21"
+ lodash.isarguments "^3.1.0"
+ node-fetch "^2.6.1"
+ passport-google-auth "^1.0.2"
+ passport-google-oauth "^2.0.0"
+ passport-jwt "^4.0.0"
+ passport-local "^1.0.0"
+ sanitize-s3-objectkey "^0.0.1"
+ tar-fs "^2.1.1"
+ uuid "^8.3.2"
+ zlib "^1.0.5"
+
"@budibase/bbui@^0.9.139":
version "0.9.187"
resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.187.tgz#84f0a37301cfa41f50eaa335243ac08923d9e34f"
@@ -1000,6 +1024,94 @@
svelte-flatpickr "^3.2.3"
svelte-portal "^1.0.0"
+"@budibase/bbui@^0.9.189":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.189.tgz#d5802e9b6aabccdef4205f0edfa7ed5616ac1aff"
+ integrity sha512-YqM21mtrg8yTN9mqG4CnFfvoOelmhy3V69LyoITdQT6aGiwt/efHzknSlaUH3/0yLH9MuzwkHDzUmbe7QrsqEA==
+ dependencies:
+ "@adobe/spectrum-css-workflow-icons" "^1.2.1"
+ "@spectrum-css/actionbutton" "^1.0.1"
+ "@spectrum-css/actiongroup" "^1.0.1"
+ "@spectrum-css/avatar" "^3.0.2"
+ "@spectrum-css/button" "^3.0.1"
+ "@spectrum-css/buttongroup" "^3.0.2"
+ "@spectrum-css/checkbox" "^3.0.2"
+ "@spectrum-css/dialog" "^3.0.1"
+ "@spectrum-css/divider" "^1.0.3"
+ "@spectrum-css/dropzone" "^3.0.2"
+ "@spectrum-css/fieldgroup" "^3.0.2"
+ "@spectrum-css/fieldlabel" "^3.0.1"
+ "@spectrum-css/icon" "^3.0.1"
+ "@spectrum-css/illustratedmessage" "^3.0.2"
+ "@spectrum-css/inputgroup" "^3.0.2"
+ "@spectrum-css/label" "^2.0.10"
+ "@spectrum-css/link" "^3.1.1"
+ "@spectrum-css/menu" "^3.0.1"
+ "@spectrum-css/modal" "^3.0.1"
+ "@spectrum-css/pagination" "^3.0.3"
+ "@spectrum-css/picker" "^1.0.1"
+ "@spectrum-css/popover" "^3.0.1"
+ "@spectrum-css/progressbar" "^1.0.2"
+ "@spectrum-css/progresscircle" "^1.0.2"
+ "@spectrum-css/radio" "^3.0.2"
+ "@spectrum-css/search" "^3.0.2"
+ "@spectrum-css/sidenav" "^3.0.2"
+ "@spectrum-css/statuslight" "^3.0.2"
+ "@spectrum-css/stepper" "^3.0.3"
+ "@spectrum-css/switch" "^1.0.2"
+ "@spectrum-css/table" "^3.0.1"
+ "@spectrum-css/tabs" "^3.0.1"
+ "@spectrum-css/tags" "^3.0.2"
+ "@spectrum-css/textfield" "^3.0.1"
+ "@spectrum-css/toast" "^3.0.1"
+ "@spectrum-css/tooltip" "^3.0.3"
+ "@spectrum-css/treeview" "^3.0.2"
+ "@spectrum-css/typography" "^3.0.1"
+ "@spectrum-css/underlay" "^2.0.9"
+ "@spectrum-css/vars" "^3.0.1"
+ dayjs "^1.10.4"
+ svelte-flatpickr "^3.2.3"
+ svelte-portal "^1.0.0"
+
+"@budibase/client@^0.9.185-alpha.21":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/client/-/client-0.9.189.tgz#8f96b607f36bbb7390fd53b04360851f0c12aaac"
+ integrity sha512-L2i3CaQt4aFL7JKkRrEWWx8NemHTEOKLXvXq7LGM4u3GlcFIIkcL113EkXQT1bIZcf6AuuC2CfNsmZKioOPh2A==
+ dependencies:
+ "@budibase/bbui" "^0.9.189"
+ "@budibase/standard-components" "^0.9.139"
+ "@budibase/string-templates" "^0.9.189"
+ regexparam "^1.3.0"
+ shortid "^2.2.15"
+ svelte-spa-router "^3.0.5"
+
+"@budibase/handlebars-helpers@^0.11.7":
+ version "0.11.7"
+ resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46"
+ integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw==
+ dependencies:
+ array-sort "^1.0.0"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ for-in "^1.0.2"
+ get-object "^0.2.0"
+ get-value "^3.0.1"
+ handlebars "^4.7.7"
+ handlebars-utils "^1.0.6"
+ has-value "^2.0.2"
+ helper-date "^1.0.1"
+ helper-markdown "^1.0.0"
+ helper-md "^0.2.2"
+ html-tag "^2.0.0"
+ is-even "^1.0.0"
+ is-glob "^4.0.1"
+ kind-of "^6.0.3"
+ micromatch "^3.1.5"
+ relative "^3.0.2"
+ striptags "^3.1.1"
+ to-gfm-code-block "^0.1.1"
+ year "^0.2.1"
+
"@budibase/standard-components@^0.9.139":
version "0.9.139"
resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3"
@@ -1018,6 +1130,18 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
+"@budibase/string-templates@^0.9.185-alpha.21", "@budibase/string-templates@^0.9.189":
+ version "0.9.189"
+ resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-0.9.189.tgz#515a4ce85da550ce19d78c4c592ab5839a8ebe3a"
+ integrity sha512-JmnpuPx1CItNIFCMUxBz+4DVpYu96QxteU2Vi17pjWb0B7qsWwHkmcMmYbd+iTW4oxgOufbP8slfyfbu2XhbzA==
+ dependencies:
+ "@budibase/handlebars-helpers" "^0.11.7"
+ dayjs "^1.10.4"
+ handlebars "^4.7.6"
+ handlebars-utils "^1.0.6"
+ lodash "^4.17.20"
+ vm2 "^3.9.4"
+
"@bull-board/api@3.7.0", "@bull-board/api@^3.7.0":
version "3.7.0"
resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af"
@@ -2053,6 +2177,17 @@
dependencies:
defer-to-connect "^1.0.1"
+"@techpass/passport-openidconnect@^0.3.0":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@techpass/passport-openidconnect/-/passport-openidconnect-0.3.2.tgz#f8fd5d97256286665dbf26dac92431f977ab1e63"
+ integrity sha512-fnCtEiexXSHA029B//hJcCJlLJrT3lhpNCyA0rnz58Qttz0BLGCVv6yMT8HmOnGThH6vcDOVwdgKM3kbCQtEhw==
+ dependencies:
+ base64url "^3.0.1"
+ oauth "^0.9.15"
+ passport-strategy "^1.0.0"
+ request "^2.88.0"
+ webfinger "^0.4.2"
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -2347,6 +2482,11 @@
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==
+"@types/swagger-schema-official@^2.0.22":
+ version "2.0.22"
+ resolved "https://registry.yarnpkg.com/@types/swagger-schema-official/-/swagger-schema-official-2.0.22.tgz#f7e06168e6994574dfd86928ac04b196870ab043"
+ integrity sha512-7yQiX6MWSFSvc/1wW5smJMZTZ4fHOd+hqLr3qr/HONDxHEa2bnYAsOcGBOEqFIjd4yetwMOdEDdeW+udRAQnHA==
+
"@types/yargs-parser@*":
version "20.2.1"
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
@@ -2695,7 +2835,7 @@ arg@^4.1.0:
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-argparse@^1.0.7:
+argparse@^1.0.10, argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@@ -2737,6 +2877,15 @@ array-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
+array-sort@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
+ integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
+ dependencies:
+ default-compare "^1.0.0"
+ get-value "^2.0.6"
+ kind-of "^5.0.2"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -2779,6 +2928,13 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+async-hook-jl@^1.7.6:
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68"
+ integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==
+ dependencies:
+ stack-chain "^1.3.7"
+
async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@@ -2796,6 +2952,13 @@ async@^2.6.3:
dependencies:
lodash "^4.17.14"
+async@~2.1.4:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
+ integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=
+ dependencies:
+ lodash "^4.14.0"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -2811,6 +2974,13 @@ atomic-sleep@^1.0.0:
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+autolinker@~0.28.0:
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
+ integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
+ dependencies:
+ gulp-header "^1.7.1"
+
aws-sdk@^2.767.0:
version "2.1030.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1030.0.tgz#24a856af3d2b8b37c14a8f59974993661c66fd82"
@@ -2826,6 +2996,21 @@ aws-sdk@^2.767.0:
uuid "3.3.2"
xml2js "0.4.19"
+aws-sdk@^2.901.0:
+ version "2.1037.0"
+ resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1037.0.tgz#f397aea0aa2b7a862be89240e68c8138c959fb3c"
+ integrity sha512-z1IfFFvKg1ZKikyExhLeiax0jIe/YwFrBjIUhcPjBfh+c4otvuqp9RBp2iyXt3GamhEkKoPyvd6a5K7IGsTBMw==
+ dependencies:
+ buffer "4.9.2"
+ events "1.1.1"
+ ieee754 "1.1.13"
+ jmespath "0.15.0"
+ querystring "0.2.0"
+ sax "1.2.1"
+ url "0.10.3"
+ uuid "3.3.2"
+ xml2js "0.4.19"
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -3008,6 +3193,11 @@ base64-js@^1.0.2, base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+base64url@3.x.x, base64url@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
+ integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==
+
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -3028,7 +3218,7 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-bcryptjs@2.4.3:
+bcryptjs@2.4.3, bcryptjs@^2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb"
integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=
@@ -3068,6 +3258,15 @@ bl@^3.0.0:
dependencies:
readable-stream "^3.0.1"
+bl@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
bluebird@^3.5.1, bluebird@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -3405,6 +3604,11 @@ chokidar@^3.5.2:
optionalDependencies:
fsevents "~2.3.2"
+chownr@^1.1.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
@@ -3477,6 +3681,15 @@ clone-response@1.0.2, clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
+cls-hooked@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908"
+ integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==
+ dependencies:
+ async-hook-jl "^1.7.6"
+ emitter-listener "^1.0.1"
+ semver "^5.4.1"
+
cluster-key-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -3593,6 +3806,13 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+concat-with-sourcemaps@*:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
+ integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
+ dependencies:
+ source-map "^0.6.1"
+
condense-newlines@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
@@ -3826,6 +4046,13 @@ date-utils@*:
resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=
+date.js@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda"
+ integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw==
+ dependencies:
+ debug "~3.1.0"
+
dateformat@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
@@ -3969,6 +4196,13 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+default-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
+ integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
+ dependencies:
+ kind-of "^5.0.2"
+
default-shell@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc"
@@ -4228,6 +4462,13 @@ electron-to-chromium@^1.3.896:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5"
integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ==
+emitter-listener@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
+ integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==
+ dependencies:
+ shimmer "^1.2.0"
+
emittery@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860"
@@ -4258,7 +4499,7 @@ encoding-down@^6.3.0:
level-codec "^9.0.0"
level-errors "^2.0.0"
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -4272,6 +4513,11 @@ end-stream@~0.1.0:
dependencies:
write-stream "~0.4.3"
+ent@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
+ integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0=
+
errno@~0.1.1, errno@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@@ -5031,6 +5277,11 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+fs-exists-sync@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
+ integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=
+
fs-extra@8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -5094,6 +5345,14 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
+get-object@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c"
+ integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw=
+ dependencies:
+ is-number "^2.0.2"
+ isobject "^0.2.0"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -5156,6 +5415,13 @@ get-value@^2.0.3, get-value@^2.0.6:
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+get-value@^3.0.0, get-value@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8"
+ integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==
+ dependencies:
+ isobject "^3.0.1"
+
getopts@2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b"
@@ -5245,6 +5511,32 @@ globby@^11.0.3:
merge2 "^1.3.0"
slash "^3.0.0"
+google-auth-library@~0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e"
+ integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24=
+ dependencies:
+ gtoken "^1.2.1"
+ jws "^3.1.4"
+ lodash.noop "^3.0.1"
+ request "^2.74.0"
+
+google-p12-pem@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177"
+ integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=
+ dependencies:
+ node-forge "^0.7.1"
+
+googleapis@^16.0.0:
+ version "16.1.0"
+ resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576"
+ integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY=
+ dependencies:
+ async "~2.1.4"
+ google-auth-library "~0.10.0"
+ string-template "~1.0.0"
+
got@^8.3.1:
version "8.3.2"
resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937"
@@ -5290,6 +5582,45 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
+gtoken@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8"
+ integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w==
+ dependencies:
+ google-p12-pem "^0.1.0"
+ jws "^3.0.0"
+ mime "^1.4.1"
+ request "^2.72.0"
+
+gulp-header@^1.7.1:
+ version "1.8.12"
+ resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
+ integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
+ dependencies:
+ concat-with-sourcemaps "*"
+ lodash.template "^4.4.0"
+ through2 "^2.0.0"
+
+handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9"
+ integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw==
+ dependencies:
+ kind-of "^6.0.0"
+ typeof-article "^0.1.1"
+
+handlebars@^4.7.6, handlebars@^4.7.7:
+ version "4.7.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+ integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
+ dependencies:
+ minimist "^1.2.5"
+ neo-async "^2.6.0"
+ source-map "^0.6.1"
+ wordwrap "^1.0.0"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -5360,6 +5691,14 @@ has-value@^1.0.0:
has-values "^1.0.0"
isobject "^3.0.0"
+has-value@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658"
+ integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==
+ dependencies:
+ get-value "^3.0.0"
+ has-values "^2.0.1"
+
has-values@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
@@ -5373,6 +5712,13 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
+has-values@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d"
+ integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==
+ dependencies:
+ kind-of "^6.0.2"
+
has-yarn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@@ -5385,6 +5731,39 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+helper-date@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb"
+ integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w==
+ dependencies:
+ date.js "^0.3.1"
+ handlebars-utils "^1.0.4"
+ moment "^2.18.1"
+
+helper-markdown@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10"
+ integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA==
+ dependencies:
+ handlebars-utils "^1.0.2"
+ highlight.js "^9.12.0"
+ remarkable "^1.7.1"
+
+helper-md@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f"
+ integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8=
+ dependencies:
+ ent "^2.2.0"
+ extend-shallow "^2.0.1"
+ fs-exists-sync "^0.1.0"
+ remarkable "^1.6.2"
+
+highlight.js@^9.12.0:
+ version "9.18.5"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
+ integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -5414,6 +5793,14 @@ html-escaper@^2.0.0:
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+html-tag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed"
+ integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g==
+ dependencies:
+ is-self-closing "^1.0.1"
+ kind-of "^6.0.0"
+
http-assert@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
@@ -5677,6 +6064,23 @@ ioredis@^4.27.0:
redis-parser "^3.0.0"
standard-as-callback "^2.1.0"
+ioredis@^4.27.1:
+ version "4.28.1"
+ resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.1.tgz#c2a7038d6a187e020d7045e11d6a677e8b51f785"
+ integrity sha512-7gcrUJEcPHWy+eEyq6wIZpXtfHt8crhbc5+z0sqrnHUkwBblXinygfamj+/jx83Qo+2LW3q87Nj2VsuH6BF2BA==
+ dependencies:
+ cluster-key-slot "^1.1.0"
+ debug "^4.3.1"
+ denque "^1.1.0"
+ lodash.defaults "^4.2.0"
+ lodash.flatten "^4.4.0"
+ lodash.isarguments "^3.1.0"
+ p-map "^2.1.0"
+ redis-commands "1.7.0"
+ redis-errors "^1.2.0"
+ redis-parser "^3.0.0"
+ standard-as-callback "^2.1.0"
+
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
@@ -5796,6 +6200,13 @@ is-docker@^2.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+is-even@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06"
+ integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY=
+ dependencies:
+ is-odd "^0.1.2"
+
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -5885,6 +6296,13 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
+is-number@^2.0.2:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
+ dependencies:
+ kind-of "^3.0.2"
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -5907,6 +6325,13 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
+is-odd@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
+ integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
+ dependencies:
+ is-number "^3.0.0"
+
is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -5952,6 +6377,13 @@ is-retry-allowed@^2.2.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
+is-self-closing@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
+ integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
+ dependencies:
+ self-closing-tags "^1.0.1"
+
is-shared-array-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
@@ -6044,6 +6476,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+isobject@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e"
+ integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4=
+
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@@ -7064,6 +7501,22 @@ jsonschema@1.4.0:
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2"
integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==
+jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+ integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+ dependencies:
+ jws "^3.2.2"
+ lodash.includes "^4.3.0"
+ lodash.isboolean "^3.0.3"
+ lodash.isinteger "^4.0.4"
+ lodash.isnumber "^3.0.3"
+ lodash.isplainobject "^4.0.6"
+ lodash.isstring "^4.0.1"
+ lodash.once "^4.0.0"
+ ms "^2.1.1"
+ semver "^5.6.0"
+
jsprim@^1.2.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
@@ -7103,7 +7556,7 @@ jwa@^1.4.1:
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
-jws@3.x.x:
+jws@3.x.x, jws@^3.0.0, jws@^3.1.4, jws@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
@@ -7130,7 +7583,7 @@ keyv@3.0.0, keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -7144,12 +7597,12 @@ kind-of@^4.0.0:
dependencies:
is-buffer "^1.1.5"
-kind-of@^5.0.0:
+kind-of@^5.0.0, kind-of@^5.0.2:
version "5.1.0"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-kind-of@^6.0.0, kind-of@^6.0.2:
+kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@@ -7244,6 +7697,13 @@ koa-mount@^4.0.0:
debug "^4.0.1"
koa-compose "^4.1.0"
+koa-passport@^4.1.4:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa"
+ integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg==
+ dependencies:
+ passport "^0.4.0"
+
koa-pino-logger@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba"
@@ -7560,6 +8020,11 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
+lodash._reinterpolate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -7575,16 +8040,46 @@ lodash.flatten@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
lodash.isarguments@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+lodash.isboolean@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+ integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
+lodash.isinteger@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+ integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+
+lodash.isnumber@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+ integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
lodash.keys@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
@@ -7600,11 +8095,21 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+lodash.noop@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c"
+ integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=
+
lodash.omit@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+lodash.once@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+ integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+
lodash.pick@^4.0.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
@@ -7615,6 +8120,21 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+lodash.template@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
+ integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+ lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+
lodash.without@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
@@ -7625,7 +8145,7 @@ lodash.xor@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6"
integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=
-lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
+lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -7795,7 +8315,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^3.1.10, micromatch@^3.1.4:
+micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -7896,6 +8416,11 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
+mkdirp-classic@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+ integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -7915,7 +8440,7 @@ moment-timezone@^0.5.31:
dependencies:
moment ">= 2.9.0"
-"moment@>= 2.9.0":
+"moment@>= 2.9.0", moment@^2.18.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
@@ -8015,6 +8540,11 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
+nanoid@^2.1.0:
+ version "2.1.11"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
+ integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
+
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -8062,6 +8592,11 @@ negotiator@0.6.2:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+neo-async@^2.6.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -8084,6 +8619,11 @@ node-fetch@^2.6.1:
dependencies:
whatwg-url "^5.0.0"
+node-forge@^0.7.1:
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
+ integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
+
node-gyp-build@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
@@ -8202,6 +8742,11 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+oauth@0.9.x, oauth@^0.9.15:
+ version "0.9.15"
+ resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
+ integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE=
+
object-assign@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
@@ -8499,6 +9044,84 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+passport-google-auth@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/passport-google-auth/-/passport-google-auth-1.0.2.tgz#8b300b5aa442ef433de1d832ed3112877d0b2938"
+ integrity sha1-izALWqRC70M94dgy7TESh30LKTg=
+ dependencies:
+ googleapis "^16.0.0"
+ passport-strategy "1.x"
+
+passport-google-oauth1@1.x.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz#af74a803df51ec646f66a44d82282be6f108e0cc"
+ integrity sha1-r3SoA99R7GRvZqRNgigr5vEI4Mw=
+ dependencies:
+ passport-oauth1 "1.x.x"
+
+passport-google-oauth20@2.x.x:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef"
+ integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==
+ dependencies:
+ passport-oauth2 "1.x.x"
+
+passport-google-oauth@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/passport-google-oauth/-/passport-google-oauth-2.0.0.tgz#f6eb4bc96dd6c16ec0ecfdf4e05ec48ca54d4dae"
+ integrity sha512-JKxZpBx6wBQXX1/a1s7VmdBgwOugohH+IxCy84aPTZNq/iIPX6u7Mqov1zY7MKRz3niFPol0KJz8zPLBoHKtYA==
+ dependencies:
+ passport-google-oauth1 "1.x.x"
+ passport-google-oauth20 "2.x.x"
+
+passport-jwt@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065"
+ integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==
+ dependencies:
+ jsonwebtoken "^8.2.0"
+ passport-strategy "^1.0.0"
+
+passport-local@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee"
+ integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=
+ dependencies:
+ passport-strategy "1.x.x"
+
+passport-oauth1@1.x.x:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9"
+ integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==
+ dependencies:
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ utils-merge "1.x.x"
+
+passport-oauth2@1.x.x:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
+ integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
+ dependencies:
+ base64url "3.x.x"
+ oauth "0.9.x"
+ passport-strategy "1.x.x"
+ uid2 "0.0.x"
+ utils-merge "1.x.x"
+
+passport-strategy@1.x, passport-strategy@1.x.x, passport-strategy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
+ integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=
+
+passport@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270"
+ integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==
+ dependencies:
+ passport-strategy "1.x.x"
+ pause "0.0.1"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -8553,6 +9176,11 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pause@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
+ integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -9249,7 +9877,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -9383,6 +10011,16 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexparam@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c"
+ integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==
+
+regexparam@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
+ integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
+
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
@@ -9426,6 +10064,21 @@ regjsparser@^0.7.0:
dependencies:
jsesc "~0.5.0"
+relative@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
+ integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
+ dependencies:
+ isobject "^2.0.0"
+
+remarkable@^1.6.2, remarkable@^1.7.1:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
+ integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
+ dependencies:
+ argparse "^1.0.10"
+ autolinker "~0.28.0"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -9462,7 +10115,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.87.0:
+request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -9664,6 +10317,11 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
+sanitize-s3-objectkey@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e"
+ integrity sha512-ZTk7aqLxy4sD40GWcYWoLfbe05XLmkKvh6vGKe13ADlei24xlezcvjgKy1qRArlaIbIMYaqK7PCalvZtulZlaQ==
+
saslprep@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226"
@@ -9676,7 +10334,7 @@ sax@1.2.1:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o=
-sax@>=0.6.0, sax@^1.2.4:
+sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -9700,6 +10358,11 @@ seek-bzip@^1.0.5:
dependencies:
commander "^2.8.1"
+self-closing-tags@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d"
+ integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==
+
semver-diff@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
@@ -9707,7 +10370,7 @@ semver-diff@^3.1.1:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9804,6 +10467,18 @@ shell-path@^2.1.0:
dependencies:
shell-env "^0.3.0"
+shimmer@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
+ integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
+
+shortid@^2.2.15:
+ version "2.2.16"
+ resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
+ integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
+ dependencies:
+ nanoid "^2.1.0"
+
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -10053,6 +10728,11 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
+stack-chain@^1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
+ integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
+
stack-utils@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
@@ -10095,6 +10775,11 @@ stealthy-require@^1.1.1:
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
+step@0.0.x:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/step/-/step-0.0.6.tgz#143e7849a5d7d3f4a088fe29af94915216eeede2"
+ integrity sha1-FD54SaXX0/SgiP4pr5SRUhbu7eI=
+
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@@ -10108,6 +10793,11 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
+string-template@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96"
+ integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=
+
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
@@ -10233,6 +10923,11 @@ strip-outer@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
+striptags@^3.1.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
+ integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
+
sublevel-pouchdb@7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz#49e46cd37883bf7ff5006d7c5b9bcc7bcc1f422f"
@@ -10322,6 +11017,13 @@ svelte-portal@^1.0.0:
resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3"
integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q==
+svelte-spa-router@^3.0.5:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee"
+ integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ==
+ dependencies:
+ regexparam "2.0.0"
+
svelte@^3.38.2:
version "3.44.1"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63"
@@ -10397,6 +11099,16 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
+tar-fs@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+ integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
+ dependencies:
+ chownr "^1.1.1"
+ mkdirp-classic "^0.5.2"
+ pump "^3.0.0"
+ tar-stream "^2.1.4"
+
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
@@ -10410,6 +11122,17 @@ tar-stream@^1.5.2:
to-buffer "^1.1.1"
xtend "^4.0.0"
+tar-stream@^2.1.4:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+ integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
tarn@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d"
@@ -10576,6 +11299,11 @@ to-fast-properties@^2.0.0:
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+to-gfm-code-block@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
+ integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
+
to-json-schema@0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f"
@@ -10802,11 +11530,28 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
+typeof-article@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af"
+ integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8=
+ dependencies:
+ kind-of "^3.1.0"
+
typescript@^4.3.5:
version "4.3.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
+uglify-js@^3.1.4:
+ version "3.14.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
+ integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
+
+uid2@0.0.x:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44"
+ integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==
+
unbox-primitive@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
@@ -10997,6 +11742,11 @@ util.promisify@^1.0.0, util.promisify@^1.0.1:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
+utils-merge@1.x.x:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
uuid@3.3.2, uuid@^3.1.0, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@@ -11056,7 +11806,7 @@ verror@1.3.6:
dependencies:
extsprintf "1.0.2"
-vm2@^3.9.3:
+vm2@^3.9.3, vm2@^3.9.4:
version "3.9.5"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
@@ -11087,6 +11837,14 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.12"
+webfinger@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/webfinger/-/webfinger-0.4.2.tgz#3477a6d97799461896039fcffc650b73468ee76d"
+ integrity sha1-NHem2XeZRhiWA5/P/GULc0aO520=
+ dependencies:
+ step "0.0.x"
+ xml2js "0.1.x"
+
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -11196,6 +11954,11 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+wordwrap@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
+
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -11301,6 +12064,13 @@ xml-parse-from-string@^1.0.0:
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
+xml2js@0.1.x:
+ version "0.1.14"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c"
+ integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw=
+ dependencies:
+ sax ">=0.1.1"
+
xml2js@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -11434,6 +12204,11 @@ yauzl@^2.4.2:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
+year@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0"
+ integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A=
+
ylru@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
@@ -11444,7 +12219,7 @@ yn@3.1.1:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-zlib@1.0.5:
+zlib@1.0.5, zlib@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0"
integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=
From d716f387593aed5b3c88ea253722a551d2e2e3ad Mon Sep 17 00:00:00 2001
From: Peter Clement
Date: Mon, 29 Nov 2021 11:53:46 +0000
Subject: [PATCH 0046/1026] autoscreen fixes
---
.../FrontendNavigatePane.svelte | 11 ++-
.../NavigationPanel/NewScreenModal.svelte | 73 +++++++++++++------
.../NavigationPanel/ScreenDetailsModal.svelte | 6 ++
.../NavigationPanel/ScreenWizard.svelte | 16 ++--
4 files changed, 70 insertions(+), 36 deletions(-)
diff --git a/packages/builder/src/components/design/NavigationPanel/FrontendNavigatePane.svelte b/packages/builder/src/components/design/NavigationPanel/FrontendNavigatePane.svelte
index 51dd44026e..ea9ebbf2c5 100644
--- a/packages/builder/src/components/design/NavigationPanel/FrontendNavigatePane.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/FrontendNavigatePane.svelte
@@ -25,8 +25,7 @@
key: "layout",
},
]
-
- let modal
+ let newLayoutModal
$: selected = tabs.find(t => t.key === $params.assetType)?.title || "Screens"
const navigate = ({ detail }) => {
@@ -93,14 +92,18 @@
{#each $store.layouts as layout, idx (layout._id)}
0} />
{/each}
-
+
-
+
diff --git a/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte b/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte
index fbd1fc9256..67dbf581f2 100644
--- a/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/NewScreenModal.svelte
@@ -10,16 +10,39 @@
ProgressCircle,
} from "@budibase/bbui"
import getTemplates from "builderStore/store/screenTemplates"
+ import { onDestroy } from "svelte"
+
+ import { createEventDispatcher } from "svelte"
- export let selectedScreens = []
export let chooseModal
export let save
export let showProgressCircle = false
+
+ let selectedScreens = []
+
const blankScreen = "createFromScratch"
+ const dispatch = createEventDispatcher()
+
+ function setScreens() {
+ dispatch("save", {
+ screens: selectedScreens,
+ })
+ }
$: blankSelected = selectedScreens?.length === 1
$: autoSelected = selectedScreens?.length > 0 && !blankSelected
+
let templates = getTemplates($store, $tables.list)
+
+ const confirm = async () => {
+ if (autoSelected) {
+ setScreens()
+ await save()
+ } else {
+ setScreens()
+ chooseModal(1)
+ }
+ }
const toggleScreenSelection = table => {
if (selectedScreens.find(s => s.table === table.name)) {
selectedScreens = selectedScreens.filter(
@@ -32,14 +55,18 @@
selectedScreens = [...partialTemplates, ...selectedScreens]
}
}
+
+ onDestroy(() => {
+ selectedScreens = []
+ })
-
+
(autoSelected ? save() : chooseModal(1))}
+ onConfirm={() => confirm()}
disabled={!selectedScreens.length}
size="L"
>
@@ -70,29 +97,31 @@
{/if}
- Autogenerated Screens
+ {#if $tables.list.filter(table => table._id !== "ta_users").length > 0}
+ Autogenerated Screens
- {#each $tables.list.filter(table => table._id !== "ta_users") as table}
- x.table === table.name)}
- on:click={() => toggleScreenSelection(table)}
- class="item"
- >
-
+ {#each $tables.list.filter(table => table._id !== "ta_users") as table}
x.table === table.name)}
+ on:click={() => toggleScreenSelection(table)}
+ class="item"
>
- {#if selectedScreens.find(x => x.table === table.name)}
-
-
-
- {/if}
+
+
+ {#if selectedScreens.find(x => x.table === table.name)}
+
+
+
+ {/if}
+
-
- {/each}
+ {/each}
+ {/if}
{#if showProgressCircle}
diff --git a/packages/builder/src/components/design/NavigationPanel/ScreenDetailsModal.svelte b/packages/builder/src/components/design/NavigationPanel/ScreenDetailsModal.svelte
index e5cc839045..6d906da742 100644
--- a/packages/builder/src/components/design/NavigationPanel/ScreenDetailsModal.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/ScreenDetailsModal.svelte
@@ -2,6 +2,7 @@
import { ModalContent, Input, ProgressCircle } from "@budibase/bbui"
import sanitizeUrl from "builderStore/store/screenTemplates/utils/sanitizeUrl"
import { selectedAccessRole, allScreens } from "builderStore"
+ import { onDestroy } from "svelte"
export let screenName
export let url
@@ -32,6 +33,11 @@
screen.routing.roleId === roleId
)
}
+
+ onDestroy(() => {
+ screenName = ""
+ url = ""
+ })
{
let existingScreenCount = $store.screens.filter(
s => s.props._instanceName == draftScreen.props._instanceName
@@ -90,17 +89,14 @@
)
}
- onDestroy(() => {
- selectedScreens = []
- screenName = ""
- url = ""
- createdScreens = []
- })
-
export const showModal = () => {
newScreenModal.show()
}
+ const setScreens = evt => {
+ selectedScreens = evt.detail.screens
+ }
+
const chooseModal = index => {
/*
0 = newScreenModal
@@ -119,7 +115,7 @@
Date: Mon, 29 Nov 2021 13:58:47 +0000
Subject: [PATCH 0047/1026] v0.9.190-alpha.11
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index 7c04122790..f2b3975169 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index cbdeb91afe..6987c8c88b 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 546d76495d..814a4971bf 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": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 00cdef4138..1f7996d1b2 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.10",
- "@budibase/client": "^0.9.190-alpha.10",
+ "@budibase/bbui": "^0.9.190-alpha.11",
+ "@budibase/client": "^0.9.190-alpha.11",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.10",
+ "@budibase/string-templates": "^0.9.190-alpha.11",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 81ad1ef20f..e37ef7f849 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 13e2ee725f..96e6ea76cb 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"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": "^0.9.190-alpha.10",
+ "@budibase/bbui": "^0.9.190-alpha.11",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.10",
+ "@budibase/string-templates": "^0.9.190-alpha.11",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index 748e5abc8f..eea2b18124 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -69,9 +69,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.10",
- "@budibase/client": "^0.9.190-alpha.10",
- "@budibase/string-templates": "^0.9.190-alpha.10",
+ "@budibase/auth": "^0.9.190-alpha.11",
+ "@budibase/client": "^0.9.190-alpha.11",
+ "@budibase/string-templates": "^0.9.190-alpha.11",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index b2b7f26276..7378b79b60 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 0494bfef97..63c392d275 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.10",
+ "version": "0.9.190-alpha.11",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.10",
- "@budibase/string-templates": "^0.9.190-alpha.10",
+ "@budibase/auth": "^0.9.190-alpha.11",
+ "@budibase/string-templates": "^0.9.190-alpha.11",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 05e2baa0d362744b538ecbb4dda6dc0f20324f4e Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Mon, 29 Nov 2021 17:11:08 +0000
Subject: [PATCH 0048/1026] Moving generation to builder because it reduces API
calls and has no reason to be carried out server-side, handling array/object
schema generation correctly.
---
.../src/builderStore/schemaGenerator.js | 56 +++++++++++++++++++
.../DataTable/modals/CreateEditColumn.svelte | 11 +++-
.../DataTable/modals/JSONSchemaModal.svelte | 40 ++++++-------
.../server/src/api/controllers/table/index.js | 33 -----------
packages/server/src/api/routes/table.js | 18 ------
5 files changed, 86 insertions(+), 72 deletions(-)
create mode 100644 packages/builder/src/builderStore/schemaGenerator.js
diff --git a/packages/builder/src/builderStore/schemaGenerator.js b/packages/builder/src/builderStore/schemaGenerator.js
new file mode 100644
index 0000000000..33115fc997
--- /dev/null
+++ b/packages/builder/src/builderStore/schemaGenerator.js
@@ -0,0 +1,56 @@
+import { FIELDS } from "constants/backend"
+
+function baseConversion(type) {
+ if (type === "string") {
+ return {
+ type: FIELDS.STRING.type,
+ }
+ } else if (type === "boolean") {
+ return {
+ type: FIELDS.BOOLEAN.type,
+ }
+ } else if (type === "number") {
+ return {
+ type: FIELDS.NUMBER.type,
+ }
+ }
+}
+
+function recurse(schemaLevel = {}, objectLevel) {
+ if (!objectLevel) {
+ return null
+ }
+ const baseType = typeof objectLevel
+ if (baseType !== "object") {
+ return baseConversion(baseType)
+ }
+ for (let [key, value] of Object.entries(objectLevel)) {
+ const type = typeof value
+ // check array first, since arrays are objects
+ if (Array.isArray(value)) {
+ const schema = recurse(schemaLevel[key], value[0])
+ if (schema) {
+ schemaLevel[key] = {
+ type: FIELDS.ARRAY.type,
+ schema,
+ }
+ }
+ } else if (type === "object") {
+ const schema = recurse(schemaLevel[key], objectLevel[key])
+ if (schema) {
+ schemaLevel[key] = schema
+ }
+ } else {
+ schemaLevel[key] = baseConversion(type)
+ }
+ }
+ if (!schemaLevel.type) {
+ return { type: FIELDS.JSON.type, schema: schemaLevel }
+ } else {
+ return schemaLevel
+ }
+}
+
+export function generate(object) {
+ return recurse({}, object).schema
+}
diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
index f4c0422304..752f291019 100644
--- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte
@@ -87,7 +87,10 @@
field.subtype !== AUTO_COLUMN_SUB_TYPES.CREATED_BY &&
field.subtype !== AUTO_COLUMN_SUB_TYPES.UPDATED_BY &&
field.type !== FORMULA_TYPE
- $: canBeDisplay = field.type !== LINK_TYPE && field.type !== AUTO_TYPE
+ $: canBeDisplay =
+ field.type !== LINK_TYPE &&
+ field.type !== AUTO_TYPE &&
+ field.type !== JSON_TYPE
$: canBeRequired =
field.type !== LINK_TYPE && !uneditable && field.type !== AUTO_TYPE
$: relationshipOptions = getRelationshipOptions(field)
@@ -454,7 +457,11 @@
(field.schema = detail)}
+ json={field.json}
+ on:save={({ detail }) => {
+ field.schema = detail.schema
+ field.json = detail.json
+ }}
/>
{
@@ -90,7 +91,8 @@
label="Type"
options={keyValueOptions}
bind:value={fieldTypes[i]}
- getOptionValue={field => field.toLowerCase()}
+ getOptionValue={field => field.value}
+ getOptionLabel={field => field.label}
/>
{/each}
diff --git a/packages/server/src/api/controllers/table/index.js b/packages/server/src/api/controllers/table/index.js
index bd404f3da8..abbb4d6ff9 100644
--- a/packages/server/src/api/controllers/table/index.js
+++ b/packages/server/src/api/controllers/table/index.js
@@ -9,7 +9,6 @@ const {
BudibaseInternalDB,
} = require("../../../db/utils")
const { getTable } = require("./utils")
-const { FieldTypes } = require("../../../constants")
function pickApi({ tableId, table }) {
if (table && !tableId) {
@@ -82,38 +81,6 @@ exports.destroy = async function (ctx) {
ctx.body = { message: `Table ${tableId} deleted.` }
}
-exports.schemaGenerate = function (ctx) {
- const { json } = ctx.request.body
- function recurse(schemaLevel, objectLevel) {
- for (let [key, value] of Object.entries(objectLevel)) {
- const type = typeof value
- // check array first, since arrays are objects
- if (Array.isArray(value)) {
- schemaLevel[key] = {
- type: FieldTypes.ARRAY,
- }
- } else if (type === "object") {
- schemaLevel[key] = recurse(schemaLevel[key], objectLevel)
- } else if (type === "string") {
- schemaLevel[key] = {
- type: FieldTypes.STRING,
- }
- } else if (type === "boolean") {
- schemaLevel[key] = {
- type: FieldTypes.BOOLEAN,
- }
- } else if (type === "number") {
- schemaLevel[key] = {
- type: FieldTypes.NUMBER,
- }
- }
- }
- return schemaLevel
- }
-
- ctx.body = recurse({}, json) || {}
-}
-
exports.bulkImport = async function (ctx) {
const tableId = ctx.params.tableId
await pickApi({ tableId }).bulkImport(ctx)
diff --git a/packages/server/src/api/routes/table.js b/packages/server/src/api/routes/table.js
index a4575b3572..d8ddbe8133 100644
--- a/packages/server/src/api/routes/table.js
+++ b/packages/server/src/api/routes/table.js
@@ -139,24 +139,6 @@ router
generateSaveValidator(),
tableController.save
)
- /**
- * @api {post} /api/tables/schema/generate Generate schema from JSON
- * @apiName Generate schema from JSON
- * @apiGroup tables
- * @apiPermission builder
- * @apiDescription Given a JSON structure this will generate a nested schema that can be used for a key/value data
- * type in a table.
- *
- * @apiParam (Body) {object} json The JSON structure from which a nest schema should be generated.
- *
- * @apiSuccess {object} schema The response body will contain the schema, which can now be used for a key/value
- * data type.
- */
- .post(
- "/api/tables/schema/generate",
- authorized(BUILDER),
- tableController.schemaGenerate
- )
/**
* @api {post} /api/tables/csv/validate Validate a CSV for a table
* @apiName Validate a CSV for a table
From c421499a4645166efd303da4d3bd0c7bbd7306e1 Mon Sep 17 00:00:00 2001
From: Rory Powell
Date: Mon, 29 Nov 2021 17:21:30 +0000
Subject: [PATCH 0049/1026] cURL import working
---
.../modals/ImportRestQueriesModal.svelte | 3 +-
.../builder/src/stores/backend/queries.js | 5 +
packages/server/package.json | 1 +
.../src/api/controllers/query/import.ts | 71 +++++++++++-
packages/server/yarn.lock | 103 +++++++++++++++++-
5 files changed, 174 insertions(+), 9 deletions(-)
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte
index 8098e10fb4..4e8ba4fd77 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/ImportRestQueriesModal.svelte
@@ -56,8 +56,7 @@
datasourceId,
}
- const resp = await queries.import(body)
- datasourceId = resp.datasourceId
+ await queries.import(body)
// reload
await datasources.fetch()
diff --git a/packages/builder/src/stores/backend/queries.js b/packages/builder/src/stores/backend/queries.js
index c03aea4052..6dfffc3d39 100644
--- a/packages/builder/src/stores/backend/queries.js
+++ b/packages/builder/src/stores/backend/queries.js
@@ -55,6 +55,11 @@ export function createQueriesStore() {
},
import: async body => {
const response = await api.post(`/api/queries/import`, body)
+
+ if (response.status !== 200) {
+ throw new Error(response.message)
+ }
+
return response.json()
},
select: query => {
diff --git a/packages/server/package.json b/packages/server/package.json
index 040febe02c..c73fe874ae 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -85,6 +85,7 @@
"bull": "^3.22.4",
"chmodr": "1.2.0",
"csvtojson": "2.0.10",
+ "curlconverter": "^3.21.0",
"dotenv": "8.2.0",
"download": "8.0.0",
"fix-path": "3.0.0",
diff --git a/packages/server/src/api/controllers/query/import.ts b/packages/server/src/api/controllers/query/import.ts
index f860b28d8c..93f4b27ab1 100644
--- a/packages/server/src/api/controllers/query/import.ts
+++ b/packages/server/src/api/controllers/query/import.ts
@@ -2,6 +2,8 @@ import CouchDB from "../../../db"
import { queryValidation } from "./validation"
import { generateQueryID } from "../../../db/utils"
import { Spec as Swagger2, Operation } from "swagger-schema-official"
+const curlconverter = require("curlconverter")
+import { URL } from "url"
// {
// "_id": "query_datasource_d62738f2d72a466997ffbf46f4952404_e7258ad382cd4c37961b81730633ff2d",
@@ -90,15 +92,45 @@ interface DatasourceInfo {
}
const parseImportStrategy = (data: string): Strategy => {
- return Strategy.SWAGGER2
+ try {
+ const json = JSON.parse(data)
+ if (json.swagger === "2.0") {
+ return Strategy.CURL
+ } else if (json.openapi?.includes("3.0")) {
+ return Strategy.OPENAPI3
+ }
+ } catch (jsonError) {
+ try {
+ parseCurl(data)
+ return Strategy.CURL
+ } catch (curlError) {
+ // do nothing
+ }
+ }
+
+ throw new Error(`The import data could not be processed`)
+}
+
+const processPath = (path: string): string => {
+ if (path?.startsWith("/")) {
+ return path.substring(1)
+ }
+
+ return path
}
// SWAGGER
const parseSwagger2Info = (swagger2: Swagger2): DatasourceInfo => {
+ const scheme = swagger2.schemes?.includes("https") ? "https" : "http"
+ const basePath = swagger2.basePath || ""
+ const host = swagger2.host || ""
+ const url = `${scheme}://${host}${basePath}`
+ const name = swagger2.info.title || "Swagger Import"
+
return {
- url: "http://localhost:3000",
- name: "swagger",
+ url: url,
+ name: name,
defaultHeaders: [],
}
}
@@ -150,16 +182,42 @@ const parseOpenAPI3Queries = (datasourceId: string, data: string): Query[] => {
// CURL
+const parseCurl = (data: string): any => {
+ const curlJson = curlconverter.toJsonString(data)
+ return JSON.parse(curlJson)
+}
+
const parseCurlDatasourceInfo = (data: any): DatasourceInfo => {
+ const curl = parseCurl(data)
+
+ const url = new URL(curl.url)
+
return {
- url: "http://localhost:3000",
- name: "swagger",
+ url: url.origin,
+ name: url.hostname,
defaultHeaders: [],
}
}
const parseCurlQueries = (datasourceId: string, data: string): Query[] => {
- return []
+ const curl = parseCurl(data)
+
+ const url = new URL(curl.url)
+ const name = url.pathname
+ const path = url.pathname
+ const method = curl.method
+ const queryString = url.search
+ const headers = curl.headers
+
+ const query = constructQuery(
+ datasourceId,
+ name,
+ method,
+ path,
+ queryString,
+ headers
+ )
+ return [query]
}
const verbFromMethod = (method: string) => {
@@ -183,6 +241,7 @@ const constructQuery = (
const queryVerb = verbFromMethod(method)
const transformer = "return data"
const schema = {}
+ path = processPath(path)
const query: Query = {
datasourceId,
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index 3ef43963ef..997a856f6f 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -1190,6 +1190,24 @@
dependencies:
"@cspotcode/source-map-consumer" "0.8.0"
+"@curlconverter/yargs-parser@^0.0.1":
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/@curlconverter/yargs-parser/-/yargs-parser-0.0.1.tgz#62a360cea3d62b9b5805e61e8110cea98da8d140"
+ integrity sha512-DbEVRYqrorzwqc63MQ3RODflut1tNla8ZCKo1h83lF7+fbntgubZsDfRDBv5Lxj3vkKuvAolysNM2ekwJev8wA==
+
+"@curlconverter/yargs@^0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@curlconverter/yargs/-/yargs-0.0.2.tgz#a8ad4a2a2d0b0f897f8c117f664199165b59fd8a"
+ integrity sha512-Q1YEebpCY61kxme4wvU0/IN/uMBfG5pZOKCo9FU+w20ElPvN+eH2qEVbK1C12t3Tee3qeYLLEU6HkiUeO1gc4A==
+ dependencies:
+ "@curlconverter/yargs-parser" "^0.0.1"
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+
"@elastic/elasticsearch@7.10.0":
version "7.10.0"
resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.10.0.tgz#da105a9c1f14146f9f2cab4e7026cb7949121b8d"
@@ -2562,6 +2580,11 @@
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d"
integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==
+a-sync-waterfall@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7"
+ integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==
+
abab@^2.0.0, abab@^2.0.3, abab@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
@@ -2896,6 +2919,11 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+asap@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
asn1@~0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
@@ -3764,6 +3792,11 @@ commander@^2.19.0, commander@^2.5.0, commander@^2.8.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+commander@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
commander@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
@@ -4016,6 +4049,19 @@ csvtojson@2.0.10:
lodash "^4.17.3"
strip-bom "^2.0.0"
+curlconverter@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/curlconverter/-/curlconverter-3.21.0.tgz#50b9568b8d24967ef55a0fcd872e7a18eea4cbc2"
+ integrity sha512-DXCnp1A/Xa69FujksUfdvWQFAnIn/C+4Wuv8t+UVdZkF/lY5bzj98GGKOGme7V/ckSHDLxE29Xp76sJ5Cpsp5A==
+ dependencies:
+ "@curlconverter/yargs" "^0.0.2"
+ cookie "^0.4.1"
+ jsesc "^3.0.2"
+ nunjucks "^3.2.3"
+ query-string "^7.0.1"
+ string.prototype.startswith "^1.0.0"
+ yamljs "^0.3.0"
+
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -4537,7 +4583,7 @@ error-inject@^1.0.0:
resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=
-es-abstract@^1.19.1:
+es-abstract@^1.17.5, es-abstract@^1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
@@ -5147,6 +5193,11 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
+filter-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
+ integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs=
+
find-up@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -7447,6 +7498,11 @@ jsesc@^2.5.1:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+jsesc@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e"
+ integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==
+
jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
@@ -8732,6 +8788,15 @@ npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
+nunjucks@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.3.tgz#1b33615247290e94e28263b5d855ece765648a31"
+ integrity sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==
+ dependencies:
+ a-sync-waterfall "^1.0.0"
+ asap "^2.0.3"
+ commander "^5.1.0"
+
nwsapi@^2.0.7, nwsapi@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
@@ -9795,6 +9860,16 @@ query-string@^5.0.1:
object-assign "^4.1.0"
strict-uri-encode "^1.0.0"
+query-string@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.0.1.tgz#45bd149cf586aaa582dffc7ec7a8ad97dd02f75d"
+ integrity sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==
+ dependencies:
+ decode-uri-component "^0.2.0"
+ filter-obj "^1.1.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
+
querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
@@ -10677,6 +10752,11 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
+split-on-first@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
+ integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
+
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -10785,6 +10865,11 @@ strict-uri-encode@^1.0.0:
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
+strict-uri-encode@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
+ integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
+
string-length@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
@@ -10816,6 +10901,14 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
+string.prototype.startswith@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.startswith/-/string.prototype.startswith-1.0.0.tgz#92a361fb1ac172033d53eb1db3d659b0cfab6280"
+ integrity sha512-VHhsDkuf8gsw4JNRK9cIZjYe6r7PsVUutVohaBhqYAoPaRADoQH+mMgUg7Cs/TgQeDGEvI+PzPEMOdvdsCMvpg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
string.prototype.trimend@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
@@ -12137,6 +12230,14 @@ yaml@^1.10.2:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+yamljs@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b"
+ integrity sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==
+ dependencies:
+ argparse "^1.0.7"
+ glob "^7.0.5"
+
yargs-parser@20.x, yargs-parser@^20.2.2:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
From 003b6424a294291c702d45df5dcb889a4224888e Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Mon, 29 Nov 2021 17:54:09 +0000
Subject: [PATCH 0050/1026] Fixing issue with updating row validation to allow
empty objects.
---
packages/server/src/api/controllers/row/utils.js | 12 ++++--------
packages/server/src/utilities/rowProcessor/index.js | 12 ++++++++++++
2 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/packages/server/src/api/controllers/row/utils.js b/packages/server/src/api/controllers/row/utils.js
index f7a4b13304..83c97ceb78 100644
--- a/packages/server/src/api/controllers/row/utils.js
+++ b/packages/server/src/api/controllers/row/utils.js
@@ -50,10 +50,10 @@ exports.validate = async ({ appId, tableId, row, table }) => {
const errors = {}
for (let fieldName of Object.keys(table.schema)) {
const constraints = cloneDeep(table.schema[fieldName].constraints)
+ const type = table.schema[fieldName].type
// special case for options, need to always allow unselected (null)
if (
- table.schema[fieldName].type ===
- (FieldTypes.OPTIONS || FieldTypes.ARRAY) &&
+ (type === FieldTypes.OPTIONS || type === FieldTypes.ARRAY) &&
constraints.inclusion
) {
constraints.inclusion.push(null)
@@ -61,17 +61,13 @@ exports.validate = async ({ appId, tableId, row, table }) => {
let res
// Validate.js doesn't seem to handle array
- if (
- table.schema[fieldName].type === FieldTypes.ARRAY &&
- row[fieldName] &&
- row[fieldName].length
- ) {
+ if (type === FieldTypes.ARRAY && row[fieldName] && row[fieldName].length) {
row[fieldName].map(val => {
if (!constraints.inclusion.includes(val)) {
errors[fieldName] = "Field not in list"
}
})
- } else if (table.schema[fieldName].type === FieldTypes.FORMULA) {
+ } else if (type === FieldTypes.FORMULA) {
res = validateJs.single(
processStringSync(table.schema[fieldName].formula, row),
constraints
diff --git a/packages/server/src/utilities/rowProcessor/index.js b/packages/server/src/utilities/rowProcessor/index.js
index ea63c23f7d..860063f173 100644
--- a/packages/server/src/utilities/rowProcessor/index.js
+++ b/packages/server/src/utilities/rowProcessor/index.js
@@ -81,6 +81,18 @@ const TYPE_TRANSFORM_MAP = {
[FieldTypes.AUTO]: {
parse: () => undefined,
},
+ [FieldTypes.JSON]: {
+ parse: input => {
+ try {
+ if (input === "") {
+ return undefined
+ }
+ return JSON.parse(input)
+ } catch (err) {
+ return input
+ }
+ },
+ },
}
/**
From 193014fc83fd9ff3de70b5d4905aa4bbe433778d Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Mon, 29 Nov 2021 18:16:44 +0000
Subject: [PATCH 0051/1026] Adding validation around invalid JSON inputs and
allowing input via a code mirror editor in data UI.
---
.../backend/DataTable/RowFieldControl.svelte | 12 ++++++++++++
.../backend/DataTable/modals/JSONSchemaModal.svelte | 1 +
packages/server/src/api/controllers/row/utils.js | 7 +++++++
3 files changed, 20 insertions(+)
diff --git a/packages/builder/src/components/backend/DataTable/RowFieldControl.svelte b/packages/builder/src/components/backend/DataTable/RowFieldControl.svelte
index 25ad67b52e..0d9ca3644b 100644
--- a/packages/builder/src/components/backend/DataTable/RowFieldControl.svelte
+++ b/packages/builder/src/components/backend/DataTable/RowFieldControl.svelte
@@ -6,16 +6,20 @@
Toggle,
TextArea,
Multiselect,
+ Label,
} from "@budibase/bbui"
import Dropzone from "components/common/Dropzone.svelte"
import { capitalise } from "helpers"
import LinkedRowSelector from "components/common/LinkedRowSelector.svelte"
+ import Editor from "../../integration/QueryEditor.svelte"
export let defaultValue
export let meta
export let value = defaultValue || (meta.type === "boolean" ? false : "")
export let readonly
+ $: stringVal =
+ typeof value === "object" ? JSON.stringify(value, null, 2) : value
$: type = meta?.type
$: label = meta.name ? capitalise(meta.name) : ""
@@ -40,6 +44,14 @@
{:else if type === "longform"}
+{:else if type === "json"}
+
+ (value = detail.value)}
+ value={stringVal}
+ />
{:else}
{
errors[fieldName] = "Field not in list"
}
})
+ } else if (type === FieldTypes.JSON && typeof row[fieldName] === "string") {
+ // this should only happen if there is an error
+ try {
+ JSON.parse(row[fieldName])
+ } catch (err) {
+ errors[fieldName] = [`Contains invalid JSON`]
+ }
} else if (type === FieldTypes.FORMULA) {
res = validateJs.single(
processStringSync(table.schema[fieldName].formula, row),
From d2ce0372979ff1229f5261763210b4466d090606 Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Tue, 30 Nov 2021 08:47:21 +0000
Subject: [PATCH 0052/1026] Expose static repeater context for row index
---
packages/client/manifest.json | 27 ++++++++++++++++---
.../client/src/components/app/Repeater.svelte | 4 +--
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/packages/client/manifest.json b/packages/client/manifest.json
index 375aea3a02..709d454d50 100644
--- a/packages/client/manifest.json
+++ b/packages/client/manifest.json
@@ -501,9 +501,20 @@
"defaultValue": "M"
}
],
- "context": {
- "type": "schema"
- }
+ "context": [
+ {
+ "type": "schema"
+ },
+ {
+ "type": "static",
+ "values": [
+ {
+ "label": "Row Index",
+ "key": "index"
+ }
+ ]
+ }
+ ]
},
"stackedlist": {
"deprecated": true,
@@ -3150,6 +3161,16 @@
}
]
},
+ {
+ "type": "static",
+ "suffix": "repeater",
+ "values": [
+ {
+ "label": "Row Index",
+ "key": "index"
+ }
+ ]
+ },
{
"type": "schema",
"suffix": "repeater"
diff --git a/packages/client/src/components/app/Repeater.svelte b/packages/client/src/components/app/Repeater.svelte
index ff077f359b..39e11d12cf 100644
--- a/packages/client/src/components/app/Repeater.svelte
+++ b/packages/client/src/components/app/Repeater.svelte
@@ -21,8 +21,8 @@
{#if $component.empty}
{:else if rows.length > 0}
- {#each rows as row}
-
+ {#each rows as row, index}
+
{/each}
From 40aa9656e122dc96ac05235fd52b7e9f448df63c Mon Sep 17 00:00:00 2001
From: Budibase Staging Release Bot <>
Date: Tue, 30 Nov 2021 10:14:02 +0000
Subject: [PATCH 0053/1026] v0.9.190-alpha.12
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index f2b3975169..c1939719a8 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index 6987c8c88b..2aec96c6f8 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 814a4971bf..b50a3ded2c 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": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 1f7996d1b2..7774dfbffc 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.11",
- "@budibase/client": "^0.9.190-alpha.11",
+ "@budibase/bbui": "^0.9.190-alpha.12",
+ "@budibase/client": "^0.9.190-alpha.12",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.11",
+ "@budibase/string-templates": "^0.9.190-alpha.12",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index e37ef7f849..b43b28a9fc 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 96e6ea76cb..32781cfedc 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"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": "^0.9.190-alpha.11",
+ "@budibase/bbui": "^0.9.190-alpha.12",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.11",
+ "@budibase/string-templates": "^0.9.190-alpha.12",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index eea2b18124..5966cc81fc 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -69,9 +69,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.11",
- "@budibase/client": "^0.9.190-alpha.11",
- "@budibase/string-templates": "^0.9.190-alpha.11",
+ "@budibase/auth": "^0.9.190-alpha.12",
+ "@budibase/client": "^0.9.190-alpha.12",
+ "@budibase/string-templates": "^0.9.190-alpha.12",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 7378b79b60..2fafa1f7ab 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 63c392d275..6ac6b2ab61 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.11",
+ "version": "0.9.190-alpha.12",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.11",
- "@budibase/string-templates": "^0.9.190-alpha.11",
+ "@budibase/auth": "^0.9.190-alpha.12",
+ "@budibase/string-templates": "^0.9.190-alpha.12",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 4b0704736bff5bb7cef126050e23abf269f5ed39 Mon Sep 17 00:00:00 2001
From: Budibase Release Bot <>
Date: Tue, 30 Nov 2021 13:36:54 +0000
Subject: [PATCH 0054/1026] v0.9.190
---
lerna.json | 2 +-
packages/auth/package.json | 2 +-
packages/bbui/package.json | 2 +-
packages/builder/package.json | 8 ++++----
packages/cli/package.json | 2 +-
packages/client/package.json | 6 +++---
packages/server/package.json | 8 ++++----
packages/string-templates/package.json | 2 +-
packages/worker/package.json | 6 +++---
9 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/lerna.json b/lerna.json
index c1939719a8..06d5c93c0a 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/auth/package.json b/packages/auth/package.json
index 2aec96c6f8..c0737e21a4 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/auth",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"description": "Authentication middlewares for budibase builder and apps",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index b50a3ded2c..da234637f3 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": "0.9.190-alpha.12",
+ "version": "0.9.190",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 7774dfbffc..2d38faed41 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.190-alpha.12",
- "@budibase/client": "^0.9.190-alpha.12",
+ "@budibase/bbui": "^0.9.190",
+ "@budibase/client": "^0.9.190",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.190-alpha.12",
+ "@budibase/string-templates": "^0.9.190",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index b43b28a9fc..093966191a 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
diff --git a/packages/client/package.json b/packages/client/package.json
index 32781cfedc..f1a2f6f595 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"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": "^0.9.190-alpha.12",
+ "@budibase/bbui": "^0.9.190",
"@budibase/standard-components": "^0.9.139",
- "@budibase/string-templates": "^0.9.190-alpha.12",
+ "@budibase/string-templates": "^0.9.190",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/server/package.json b/packages/server/package.json
index 5966cc81fc..f60fbdc2a4 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -69,9 +69,9 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.12",
- "@budibase/client": "^0.9.190-alpha.12",
- "@budibase/string-templates": "^0.9.190-alpha.12",
+ "@budibase/auth": "^0.9.190",
+ "@budibase/client": "^0.9.190",
+ "@budibase/string-templates": "^0.9.190",
"@bull-board/api": "^3.7.0",
"@bull-board/koa": "^3.7.0",
"@elastic/elasticsearch": "7.10.0",
diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json
index 2fafa1f7ab..71d4d987f4 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"description": "Handlebars wrapper for Budibase templating.",
"main": "src/index.cjs",
"module": "dist/bundle.mjs",
diff --git a/packages/worker/package.json b/packages/worker/package.json
index 6ac6b2ab61..ff11b13fbb 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "0.9.190-alpha.12",
+ "version": "0.9.190",
"description": "Budibase background service",
"main": "src/index.js",
"repository": {
@@ -29,8 +29,8 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/auth": "^0.9.190-alpha.12",
- "@budibase/string-templates": "^0.9.190-alpha.12",
+ "@budibase/auth": "^0.9.190",
+ "@budibase/string-templates": "^0.9.190",
"@koa/router": "^8.0.0",
"@sentry/node": "^6.0.0",
"@techpass/passport-openidconnect": "^0.3.0",
From 2c91b89f021c742be54b6ed32cda6c8d0a2f37ad Mon Sep 17 00:00:00 2001
From: Andrew Kingston
Date: Tue, 30 Nov 2021 14:32:18 +0000
Subject: [PATCH 0055/1026] Prevent data providers from using arbitrary
context-providing components as sources
---
.../builder/src/builderStore/dataBinding.js | 4 ++--
.../PropertyControls/DataSourceSelect.svelte | 21 +++++++++++--------
.../EventsEditor/actions/SaveRow.svelte | 4 ++--
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/packages/builder/src/builderStore/dataBinding.js b/packages/builder/src/builderStore/dataBinding.js
index 9a41ad2afc..cb09b33970 100644
--- a/packages/builder/src/builderStore/dataBinding.js
+++ b/packages/builder/src/builderStore/dataBinding.js
@@ -61,7 +61,7 @@ export const getComponentBindableProperties = (asset, componentId) => {
/**
* Gets all data provider components above a component.
*/
-export const getDataProviderComponents = (asset, componentId) => {
+export const getContextProviderComponents = (asset, componentId) => {
if (!asset || !componentId) {
return []
}
@@ -143,7 +143,7 @@ export const getDatasourceForProvider = (asset, component) => {
*/
const getContextBindings = (asset, componentId) => {
// Extract any components which provide data contexts
- const dataProviders = getDataProviderComponents(asset, componentId)
+ const dataProviders = getContextProviderComponents(asset, componentId)
// Generate bindings for all matching components
return getProviderContextBindings(asset, dataProviders)
diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/DataSourceSelect.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/DataSourceSelect.svelte
index bc15110c09..8f5f7ef807 100644
--- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/DataSourceSelect.svelte
+++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/DataSourceSelect.svelte
@@ -1,5 +1,5 @@