(open = true)}
- />
+
{#if open}
(open = false)}
@@ -126,15 +128,19 @@
{#each category.colors as color}
{
- onChange(`var(--spectrum-global-color-static-${color})`)
+ onChange(`var(--spectrum-global-color-${color})`)
}}
class="color"
- style="background: var(--spectrum-global-color-static-{color}); color: {checkColor};"
title={prettyPrint(color)}
>
- {#if value === `var(--spectrum-global-color-static-${color})`}
-
- {/if}
+
+ {#if value === `var(--spectrum-global-color-${color})`}
+
+ {/if}
+
{/each}
@@ -170,12 +176,43 @@
width: 32px;
height: 32px;
border-radius: 100%;
+ position: relative;
transition: border-color 130ms ease-in-out;
- box-shadow: 0 0 0 1px var(--spectrum-global-color-gray-300);
+ box-shadow: 0 0 0 1px var(--spectrum-global-color-gray-400);
}
.preview:hover {
cursor: pointer;
- box-shadow: 0 0 2px 2px var(--spectrum-global-color-gray-300);
+ box-shadow: 0 0 2px 2px var(--spectrum-global-color-gray-400);
+ }
+ .fill {
+ width: 100%;
+ height: 100%;
+ border-radius: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: grid;
+ place-items: center;
+ }
+ .fill.placeholder {
+ background-position: 0 0, 10px 10px;
+ background-size: 20px 20px;
+ background-image: linear-gradient(
+ 45deg,
+ #eee 25%,
+ transparent 25%,
+ transparent 75%,
+ #eee 75%,
+ #eee 100%
+ ),
+ linear-gradient(
+ 45deg,
+ #eee 25%,
+ white 25%,
+ white 75%,
+ #eee 75%,
+ #eee 100%
+ );
}
.size--S {
width: 20px;
@@ -219,8 +256,7 @@
width: 16px;
border-radius: 100%;
box-shadow: 0 0 0 1px var(--spectrum-global-color-gray-300);
- display: grid;
- place-items: center;
+ position: relative;
}
.color:hover {
cursor: pointer;
@@ -236,4 +272,8 @@
.category--custom .heading {
margin-bottom: var(--spacing-xs);
}
+
+ .spectrum-wrapper {
+ background-color: transparent;
+ }
diff --git a/packages/bbui/src/Form/Core/DatePicker.svelte b/packages/bbui/src/Form/Core/DatePicker.svelte
index c8f8bfc6c..44b77e0bb 100644
--- a/packages/bbui/src/Form/Core/DatePicker.svelte
+++ b/packages/bbui/src/Form/Core/DatePicker.svelte
@@ -145,4 +145,7 @@
height: 100vh;
z-index: 999;
}
+ :global(.flatpickr-calendar) {
+ font-family: "Source Sans Pro", sans-serif;
+ }
diff --git a/packages/bbui/src/Tabs/Tabs.svelte b/packages/bbui/src/Tabs/Tabs.svelte
index 3e1080f2c..77a8526a1 100644
--- a/packages/bbui/src/Tabs/Tabs.svelte
+++ b/packages/bbui/src/Tabs/Tabs.svelte
@@ -15,8 +15,12 @@
const dispatch = createEventDispatcher()
- $: selected = $tab.title
- $: selected = dispatch("select", selected)
+ $: {
+ if ($tab.title !== selected) {
+ selected = $tab.title
+ dispatch("select", selected)
+ }
+ }
let top, left, width, height
$: calculateIndicatorLength($tab)
diff --git a/packages/builder/assets/error.svg b/packages/builder/assets/error.svg
new file mode 100644
index 000000000..4cc1d753c
--- /dev/null
+++ b/packages/builder/assets/error.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/builder/cypress/integration/createBinding.spec.js b/packages/builder/cypress/integration/createBinding.spec.js
index 04b7b0d6d..3f85526b1 100644
--- a/packages/builder/cypress/integration/createBinding.spec.js
+++ b/packages/builder/cypress/integration/createBinding.spec.js
@@ -29,7 +29,7 @@ context("Create Bindings", () => {
// The builder preview pages don't have a real URL, so all we can do
// is check that we were able to bind to the property, and that the
// component exists on the page
- cy.getComponent(componentId).should("have.text", "Placeholder text")
+ cy.getComponent(componentId).should("have.text", "New Paragraph")
})
})
diff --git a/packages/builder/package.json b/packages/builder/package.json
index c13f883a3..cf856552c 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "0.9.70",
+ "version": "0.9.71",
"license": "AGPL-3.0",
"private": true,
"scripts": {
@@ -65,10 +65,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^0.9.70",
- "@budibase/client": "^0.9.70",
+ "@budibase/bbui": "^0.9.71",
+ "@budibase/client": "^0.9.71",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^0.9.70",
+ "@budibase/string-templates": "^0.9.71",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js
index a462167ce..ac837978a 100644
--- a/packages/builder/src/builderStore/store/frontend.js
+++ b/packages/builder/src/builderStore/store/frontend.js
@@ -8,7 +8,6 @@ import {
selectedComponent,
selectedAccessRole,
} from "builderStore"
-// Backendstores
import {
datasources,
integrations,
@@ -43,6 +42,7 @@ const INITIAL_FRONTEND_STATE = {
appId: "",
routes: {},
clientLibPath: "",
+ theme: "",
}
export const getFrontendStore = () => {
@@ -62,6 +62,7 @@ export const getFrontendStore = () => {
url: application.url,
layouts,
screens,
+ theme: application.theme,
hasAppPackage: true,
appInstance: application.instance,
clientLibPath,
@@ -79,6 +80,20 @@ export const getFrontendStore = () => {
database.set(application.instance)
tables.init()
},
+ theme: {
+ save: async theme => {
+ const appId = get(store).appId
+ const response = await api.put(`/api/applications/${appId}`, { theme })
+ if (response.status === 200) {
+ store.update(state => {
+ state.theme = theme
+ return state
+ })
+ } else {
+ throw new Error("Error updating theme")
+ }
+ },
+ },
routing: {
fetch: async () => {
const response = await api.get("/api/routing")
@@ -122,6 +137,9 @@ export const getFrontendStore = () => {
save: async screen => {
const creatingNewScreen = screen._id === undefined
const response = await api.post(`/api/screens`, screen)
+ if (response.status !== 200) {
+ return
+ }
screen = await response.json()
await store.actions.routing.fetch()
@@ -196,6 +214,11 @@ export const getFrontendStore = () => {
const response = await api.post(`/api/layouts`, layoutToSave)
const savedLayout = await response.json()
+ // Abort if saving failed
+ if (response.status !== 200) {
+ return
+ }
+
store.update(state => {
const layoutIdx = state.layouts.findIndex(
stateLayout => stateLayout._id === savedLayout._id
@@ -313,16 +336,6 @@ export const getFrontendStore = () => {
create: async (componentName, presetProps) => {
const selected = get(selectedComponent)
const asset = get(currentAsset)
- const state = get(store)
-
- // Only allow one screen slot, and in the layout
- if (componentName.endsWith("screenslot")) {
- const isLayout = state.currentFrontEndType === FrontendTypes.LAYOUT
- const slot = findComponentType(asset.props, componentName)
- if (!isLayout || slot != null) {
- return
- }
- }
// Create new component
const componentInstance = store.actions.components.createInstance(
diff --git a/packages/builder/src/builderStore/store/screenTemplates/newRowScreen.js b/packages/builder/src/builderStore/store/screenTemplates/newRowScreen.js
index 23f2fd846..b890d42d5 100644
--- a/packages/builder/src/builderStore/store/screenTemplates/newRowScreen.js
+++ b/packages/builder/src/builderStore/store/screenTemplates/newRowScreen.js
@@ -38,8 +38,6 @@ const createScreen = table => {
.instanceName("Form")
.customProps({
actionType: "Create",
- theme: "spectrum--lightest",
- size: "spectrum--medium",
dataSource: {
label: table.name,
tableId: table._id,
diff --git a/packages/builder/src/builderStore/store/screenTemplates/rowDetailScreen.js b/packages/builder/src/builderStore/store/screenTemplates/rowDetailScreen.js
index cb97bd53d..21be879b1 100644
--- a/packages/builder/src/builderStore/store/screenTemplates/rowDetailScreen.js
+++ b/packages/builder/src/builderStore/store/screenTemplates/rowDetailScreen.js
@@ -8,7 +8,6 @@ import {
makeTitleContainer,
makeSaveButton,
makeMainForm,
- spectrumColor,
makeDatasourceFormComponents,
} from "./utils/commonComponents"
@@ -26,36 +25,13 @@ export const ROW_DETAIL_TEMPLATE = "ROW_DETAIL_TEMPLATE"
export const rowDetailUrl = table => sanitizeUrl(`/${table.name}/:id`)
function generateTitleContainer(table, title, formId, repeaterId) {
- // have to override style for this, its missing margin
- const saveButton = makeSaveButton(table, formId).normalStyle({
- background: "#000000",
- "border-width": "0",
- "border-style": "None",
- color: "#fff",
- "font-weight": "600",
- "font-size": "14px",
- })
-
+ const saveButton = makeSaveButton(table, formId)
const deleteButton = new Component("@budibase/standard-components/button")
- .normalStyle({
- background: "transparent",
- "border-width": "0",
- "border-style": "None",
- color: "#9e9e9e",
- "font-weight": "600",
- "font-size": "14px",
- "margin-right": "8px",
- "margin-left": "16px",
- })
- .hoverStyle({
- background: "transparent",
- color: "#4285f4",
- })
- .customStyle(spectrumColor(700))
.text("Delete")
.customProps({
- className: "",
- disabled: false,
+ type: "secondary",
+ quiet: true,
+ size: "M",
onClick: [
{
parameters: {
@@ -76,7 +52,19 @@ function generateTitleContainer(table, title, formId, repeaterId) {
})
.instanceName("Delete Button")
- return makeTitleContainer(title).addChild(deleteButton).addChild(saveButton)
+ const buttons = new Component("@budibase/standard-components/container")
+ .instanceName("Button Container")
+ .customProps({
+ direction: "row",
+ hAlign: "right",
+ vAlign: "middle",
+ size: "shrink",
+ gap: "M",
+ })
+ .addChild(deleteButton)
+ .addChild(saveButton)
+
+ return makeTitleContainer(title).addChild(buttons)
}
const createScreen = table => {
diff --git a/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js b/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js
index 83b6e6a50..ccf1fceb2 100644
--- a/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js
+++ b/packages/builder/src/builderStore/store/screenTemplates/rowListScreen.js
@@ -19,21 +19,10 @@ export const rowListUrl = table => sanitizeUrl(`/${table.name}`)
function generateTitleContainer(table) {
const newButton = new Component("@budibase/standard-components/button")
- .normalStyle({
- background: "#000000",
- "border-width": "0",
- "border-style": "None",
- color: "#fff",
- "font-weight": "600",
- "font-size": "14px",
- })
- .hoverStyle({
- background: "#4285f4",
- })
.text("Create New")
.customProps({
- className: "",
- disabled: false,
+ size: "M",
+ type: "primary",
onClick: [
{
parameters: {
@@ -46,12 +35,6 @@ function generateTitleContainer(table) {
.instanceName("New Button")
const heading = new Component("@budibase/standard-components/heading")
- .normalStyle({
- margin: "0px",
- flex: "1 1 auto",
- "text-transform": "capitalize",
- })
- .type("h2")
.instanceName("Title")
.text(table.name)
.customProps({
@@ -60,14 +43,12 @@ function generateTitleContainer(table) {
})
return new Component("@budibase/standard-components/container")
- .normalStyle({
- "margin-bottom": "32px",
- })
.customProps({
direction: "row",
hAlign: "stretch",
vAlign: "middle",
size: "shrink",
+ gap: "M",
})
.instanceName("Title Container")
.addChild(heading)
@@ -91,68 +72,35 @@ const createScreen = table => {
const spectrumTable = new Component("@budibase/standard-components/table")
.customProps({
dataProvider: `{{ literal ${makePropSafe(provider._json._id)} }}`,
- theme: "spectrum--lightest",
showAutoColumns: false,
- quiet: true,
- size: "spectrum--medium",
+ quiet: false,
rowCount: 8,
})
.instanceName(`${table.name} Table`)
const safeTableId = makePropSafe(spectrumTable._json._id)
const safeRowId = makePropSafe("_id")
- const viewButton = new Component("@budibase/standard-components/button")
+ const viewLink = new Component("@budibase/standard-components/link")
.customProps({
text: "View",
- onClick: [
- {
- "##eventHandlerType": "Navigate To",
- parameters: {
- url: `${rowListUrl(table)}/{{ ${safeTableId}.${safeRowId} }}`,
- },
- },
- ],
+ url: `${rowListUrl(table)}/{{ ${safeTableId}.${safeRowId} }}`,
+ size: "S",
+ color: "var(--spectrum-global-color-gray-600)",
+ align: "left",
})
- .instanceName("View Button")
.normalStyle({
- background: "transparent",
- "font-weight": "600",
- color: "#888",
- "border-width": "0",
- })
- .hoverStyle({
- color: "#4285f4",
+ ["margin-left"]: "16px",
+ ["margin-right"]: "16px",
})
+ .instanceName("View Link")
- spectrumTable.addChild(viewButton)
+ spectrumTable.addChild(viewLink)
provider.addChild(spectrumTable)
- const mainContainer = new Component("@budibase/standard-components/container")
- .normalStyle({
- background: "white",
- "border-radius": "0.5rem",
- "box-shadow": "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
- "border-width": "2px",
- "border-color": "rgba(0, 0, 0, 0.1)",
- "border-style": "None",
- "padding-top": "48px",
- "padding-bottom": "48px",
- "padding-right": "48px",
- "padding-left": "48px",
- })
- .customProps({
- direction: "column",
- hAlign: "stretch",
- vAlign: "top",
- size: "shrink",
- })
- .instanceName("Container")
- .addChild(generateTitleContainer(table))
- .addChild(provider)
-
return new Screen()
.route(rowListUrl(table))
.instanceName(`${table.name} - List`)
- .addChild(mainContainer)
+ .addChild(generateTitleContainer(table))
+ .addChild(provider)
.json()
}
diff --git a/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js b/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js
index 93361e6c1..aaf25f6d0 100644
--- a/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js
+++ b/packages/builder/src/builderStore/store/screenTemplates/utils/commonComponents.js
@@ -8,23 +8,16 @@ export function spectrumColor(number) {
// God knows why. It seems to think optional chaining further down the
// file is invalid if the word g-l-o-b-a-l is found - hence the reason this
// statement is split into parts.
- return "color: var(--spectrum-glo" + `bal-color-gray-${number});`
+ return "var(--spectrum-glo" + `bal-color-gray-${number})`
}
export function makeLinkComponent(tableName) {
return new Component("@budibase/standard-components/link")
- .normalStyle({
- color: "#757575",
- "text-transform": "capitalize",
- })
- .hoverStyle({
- color: "#4285f4",
- })
- .customStyle(spectrumColor(700))
.text(tableName)
.customProps({
url: `/${tableName.toLowerCase()}`,
openInNewTab: false,
+ color: spectrumColor(700),
size: "S",
align: "left",
})
@@ -33,19 +26,12 @@ export function makeLinkComponent(tableName) {
export function makeMainForm() {
return new Component("@budibase/standard-components/form")
.normalStyle({
- width: "700px",
- padding: "0px",
- "border-radius": "0.5rem",
- "box-shadow": "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
- "padding-top": "48px",
- "padding-bottom": "48px",
- "padding-right": "48px",
- "padding-left": "48px",
+ width: "600px",
})
.instanceName("Form")
}
-export function makeBreadcrumbContainer(tableName, text, capitalise = false) {
+export function makeBreadcrumbContainer(tableName, text) {
const link = makeLinkComponent(tableName).instanceName("Back Link")
const arrowText = new Component("@budibase/standard-components/text")
@@ -53,42 +39,27 @@ export function makeBreadcrumbContainer(tableName, text, capitalise = false) {
.normalStyle({
"margin-right": "4px",
"margin-left": "4px",
- "margin-top": "0px",
- "margin-bottom": "0px",
})
- .customStyle(spectrumColor(700))
.text(">")
.instanceName("Arrow")
.customProps({
+ color: spectrumColor(700),
size: "S",
align: "left",
})
- const textStyling = {
- color: "#000000",
- "margin-top": "0px",
- "margin-bottom": "0px",
- }
- if (capitalise) {
- textStyling["text-transform"] = "capitalize"
- }
const identifierText = new Component("@budibase/standard-components/text")
- .type("none")
- .normalStyle(textStyling)
- .customStyle(spectrumColor(700))
.text(text)
.instanceName("Identifier")
.customProps({
+ color: spectrumColor(700),
size: "S",
align: "left",
})
return new Component("@budibase/standard-components/container")
- .normalStyle({
- "font-size": "14px",
- color: "#757575",
- })
.customProps({
+ gap: "N",
direction: "row",
hAlign: "left",
vAlign: "middle",
@@ -102,22 +73,10 @@ export function makeBreadcrumbContainer(tableName, text, capitalise = false) {
export function makeSaveButton(table, formId) {
return new Component("@budibase/standard-components/button")
- .normalStyle({
- background: "#000000",
- "border-width": "0",
- "border-style": "None",
- color: "#fff",
- "font-weight": "600",
- "font-size": "14px",
- "margin-left": "16px",
- })
- .hoverStyle({
- background: "#4285f4",
- })
.text("Save")
.customProps({
- className: "",
- disabled: false,
+ type: "primary",
+ size: "M",
onClick: [
{
"##eventHandlerType": "Validate Form",
@@ -145,12 +104,6 @@ export function makeSaveButton(table, formId) {
export function makeTitleContainer(title) {
const heading = new Component("@budibase/standard-components/heading")
- .normalStyle({
- margin: "0px",
- flex: "1 1 auto",
- })
- .customStyle(spectrumColor(900))
- .type("h2")
.instanceName("Title")
.text(title)
.customProps({
@@ -168,6 +121,7 @@ export function makeTitleContainer(title) {
hAlign: "stretch",
vAlign: "middle",
size: "shrink",
+ gap: "M",
})
.instanceName("Title Container")
.addChild(heading)
diff --git a/packages/builder/src/components/backend/DataTable/DataTable.svelte b/packages/builder/src/components/backend/DataTable/DataTable.svelte
index e87ad3518..c7bcd52e5 100644
--- a/packages/builder/src/components/backend/DataTable/DataTable.svelte
+++ b/packages/builder/src/components/backend/DataTable/DataTable.svelte
@@ -72,9 +72,7 @@
{#if isUsersTable}
{/if}
- {#if isInternal}
-
- {/if}
+
{/if}
diff --git a/packages/builder/src/components/backend/DataTable/modals/EditRoles.svelte b/packages/builder/src/components/backend/DataTable/modals/EditRoles.svelte
index f58b9f197..8b7417c41 100644
--- a/packages/builder/src/components/backend/DataTable/modals/EditRoles.svelte
+++ b/packages/builder/src/components/backend/DataTable/modals/EditRoles.svelte
@@ -10,8 +10,10 @@
let selectedRole = {}
let errors = []
let builtInRoles = ["Admin", "Power", "Basic", "Public"]
+ // Don't allow editing of public role
+ $: editableRoles = $roles.filter(role => role._id !== "PUBLIC")
$: selectedRoleId = selectedRole._id
- $: otherRoles = $roles.filter(role => role._id !== selectedRoleId)
+ $: otherRoles = editableRoles.filter(role => role._id !== selectedRoleId)
$: isCreating = selectedRoleId == null || selectedRoleId === ""
const fetchBasePermissions = async () => {
@@ -96,7 +98,7 @@
label="Role"
value={selectedRoleId}
on:change={changeRole}
- options={$roles}
+ options={editableRoles}
placeholder="Create new role"
getOptionValue={role => role._id}
getOptionLabel={role => role.name}
diff --git a/packages/builder/src/components/common/bindings/DrawerBindableCombobox.svelte b/packages/builder/src/components/common/bindings/DrawerBindableCombobox.svelte
new file mode 100644
index 000000000..38f8693f5
--- /dev/null
+++ b/packages/builder/src/components/common/bindings/DrawerBindableCombobox.svelte
@@ -0,0 +1,97 @@
+
+
+
+
onChange(event.detail)}
+ {placeholder}
+ {options}
+ />
+ {#if !disabled}
+
+
+
+ {/if}
+
+
+
+ Add the objects on the left to enrich your text.
+
+ Save
+ (tempValue = event.detail)}
+ bindableProperties={bindings}
+ />
+
+
+
diff --git a/packages/builder/src/components/design/AppPreview/AppThemeSelect.svelte b/packages/builder/src/components/design/AppPreview/AppThemeSelect.svelte
new file mode 100644
index 000000000..c9d937593
--- /dev/null
+++ b/packages/builder/src/components/design/AppPreview/AppThemeSelect.svelte
@@ -0,0 +1,38 @@
+
+
+
+ store.actions.theme.save(e.detail)}
+ />
+
+
+
diff --git a/packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte b/packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
index 5ae4ac0dd..3e4789a31 100644
--- a/packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
+++ b/packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
@@ -5,12 +5,16 @@
import { Screen } from "builderStore/store/screenTemplates/utils/Screen"
import { FrontendTypes } from "constants"
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
+ import { ProgressCircle, Layout, Heading, Body } from "@budibase/bbui"
+ import ErrorSVG from "assets/error.svg?raw"
let iframe
let layout
let screen
let confirmDeleteDialog
let idToDelete
+ let loading = true
+ let error
// Create screen slot placeholder for use when a page is selected rather
// than a screen
@@ -44,6 +48,7 @@
screen,
selectedComponentId,
previewType: $store.currentFrontEndType,
+ theme: $store.theme,
}
// Saving pages and screens to the DB causes them to have _revs.
@@ -68,11 +73,28 @@
onMount(() => {
// Initialise the app when mounted
iframe.contentWindow.addEventListener(
- "bb-ready",
+ "ready",
() => refreshContent(strippedJson),
{ once: true }
)
+ // Display the client app once the iframe is initialised
+ iframe.contentWindow.addEventListener(
+ "iframe-loaded",
+ () => (loading = false),
+ { once: true }
+ )
+
+ // Catch any app errors
+ iframe.contentWindow.addEventListener(
+ "error",
+ event => {
+ loading = false
+ error = event.detail || "An unknown error occurred"
+ },
+ { once: true }
+ )
+
// Add listener for events sent by cliebt library in preview
iframe.contentWindow.addEventListener("bb-event", event => {
const { type, data } = event.detail
@@ -83,8 +105,14 @@
} else if (type === "delete-component" && data.id) {
idToDelete = data.id
confirmDeleteDialog.show()
+ } else if (type === "preview-loaded") {
+ // We can use this in future to delay displaying the preview
+ // until the client app has actually initialised.
+ // This makes a smoother loading experience, but is not backwards
+ // compatible with old client library versions.
+ // So do nothing with this for now.
} else {
- console.log(data)
+ console.warning(`Client sent unknown event type: ${type}`)
}
})
})
@@ -99,11 +127,25 @@
+ {#if loading}
+
+ {:else if error}
+
+
+ {@html ErrorSVG}
+ App preview failed to load
+ {error}
+
+
+ {/if}
diff --git a/packages/builder/src/components/design/AppPreview/componentStructure.json b/packages/builder/src/components/design/AppPreview/componentStructure.json
index e203c7c9a..81962cd84 100644
--- a/packages/builder/src/components/design/AppPreview/componentStructure.json
+++ b/packages/builder/src/components/design/AppPreview/componentStructure.json
@@ -27,9 +27,7 @@
"name": "Card",
"icon": "Card",
"children": [
- "stackedlist",
- "card",
- "cardhorizontal",
+ "spectrumcard",
"cardstat"
]
},
@@ -57,13 +55,6 @@
"icon",
"embed"
]
- },
- {
- "name": "Other",
- "icon": "More",
- "children": [
- "screenslot"
- ]
}
]
diff --git a/packages/builder/src/components/design/AppPreview/iframeTemplate.js b/packages/builder/src/components/design/AppPreview/iframeTemplate.js
index 7a7c04b3a..9ae26bdaa 100644
--- a/packages/builder/src/components/design/AppPreview/iframeTemplate.js
+++ b/packages/builder/src/components/design/AppPreview/iframeTemplate.js
@@ -25,7 +25,9 @@ export default `
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
- box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.1);
+ }
+ html.loaded {
+ box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.1);
}
body {
flex: 1 1 auto;
@@ -46,7 +48,14 @@ export default `
}
// Extract data from message
- const { selectedComponentId, layout, screen, previewType, appId } = JSON.parse(event.data)
+ const {
+ selectedComponentId,
+ layout,
+ screen,
+ previewType,
+ appId,
+ theme
+ } = JSON.parse(event.data)
// Set some flags so the app knows we're in the builder
window["##BUDIBASE_IN_BUILDER##"] = true
@@ -56,15 +65,24 @@ export default `
window["##BUDIBASE_SELECTED_COMPONENT_ID##"] = selectedComponentId
window["##BUDIBASE_PREVIEW_ID##"] = Math.random()
window["##BUDIBASE_PREVIEW_TYPE##"] = previewType
+ window["##BUDIBASE_PREVIEW_THEME##"] = theme
// Initialise app
- if (window.loadBudibase) {
- loadBudibase()
+ try {
+ if (window.loadBudibase) {
+ window.loadBudibase()
+ document.documentElement.classList.add("loaded")
+ window.dispatchEvent(new Event("iframe-loaded"))
+ } else {
+ throw "The client library couldn't be loaded"
+ }
+ } catch (error) {
+ window.dispatchEvent(new CustomEvent("error", { detail: error }))
}
}
window.addEventListener("message", receiveMessage)
- window.dispatchEvent(new Event("bb-ready"))
+ window.dispatchEvent(new Event("ready"))
diff --git a/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte b/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte
index 5b7ecda15..df30a1764 100644
--- a/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte
@@ -65,52 +65,56 @@
}
-
-
-
-
- Delete
-
- Move up
-
-
- Move down
-
-
- Duplicate
-
- storeComponentForCopy(true)}>
- Cut
-
- storeComponentForCopy(false)}>
- Copy
-
- pasteComponent("above")}
- disabled={noPaste}
- >
- Paste above
-
- pasteComponent("below")}
- disabled={noPaste}
- >
- Paste below
-
- pasteComponent("inside")}
- disabled={noPaste || noChildrenAllowed}
- >
- Paste inside
-
-
-
+{#if definition.editable !== false}
+
+
+
+
+
+ Delete
+
+
+ Move up
+
+
+ Move down
+
+
+ Duplicate
+
+ storeComponentForCopy(true)}>
+ Cut
+
+ storeComponentForCopy(false)}>
+ Copy
+
+ pasteComponent("above")}
+ disabled={noPaste}
+ >
+ Paste above
+
+ pasteComponent("below")}
+ disabled={noPaste}
+ >
+ Paste below
+
+ pasteComponent("inside")}
+ disabled={noPaste || noChildrenAllowed}
+ >
+ Paste inside
+
+
+
+{/if}
diff --git a/packages/builder/src/components/design/NavigationPanel/ComponentNavigationTree/ComponentTree.svelte b/packages/builder/src/components/design/NavigationPanel/ComponentNavigationTree/ComponentTree.svelte
index 39a56f549..c89de5579 100644
--- a/packages/builder/src/components/design/NavigationPanel/ComponentNavigationTree/ComponentTree.svelte
+++ b/packages/builder/src/components/design/NavigationPanel/ComponentNavigationTree/ComponentTree.svelte
@@ -3,6 +3,7 @@
import { DropEffect, DropPosition } from "./dragDropStore"
import ComponentDropdownMenu from "../ComponentDropdownMenu.svelte"
import NavItem from "components/common/NavItem.svelte"
+ import { capitalise } from "helpers"
export let components = []
export let currentComponent
@@ -10,8 +11,6 @@
export let level = 0
export let dragDropStore
- const isScreenslot = name => name?.endsWith("screenslot")
-
const selectComponent = component => {
store.actions.components.select(component)
}
@@ -42,6 +41,16 @@
return false
}
+
+ const getComponentText = component => {
+ if (component._instanceName) {
+ return component._instanceName
+ }
+ const type =
+ component._component.replace("@budibase/standard-components/", "") ||
+ "component"
+ return capitalise(type)
+ }
@@ -63,9 +72,7 @@
on:dragstart={dragstart(component)}
on:dragover={dragover(component, index)}
on:drop={dragDropStore.actions.drop}
- text={isScreenslot(component._component)
- ? "Screenslot"
- : component._instanceName}
+ text={getComponentText(component)}
withArrow
indentLevel={level + 1}
selected={$store.selectedComponentId === component._id}
diff --git a/packages/builder/src/components/design/PropertiesPanel/ComponentSettingsSection.svelte b/packages/builder/src/components/design/PropertiesPanel/ComponentSettingsSection.svelte
index 637ce2223..9139e4f6a 100644
--- a/packages/builder/src/components/design/PropertiesPanel/ComponentSettingsSection.svelte
+++ b/packages/builder/src/components/design/PropertiesPanel/ComponentSettingsSection.svelte
@@ -1,12 +1,6 @@
-
+
diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/EventPropertyControl.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/EventPropertyControl.svelte
index f4fff0580..0fea9a050 100644
--- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/EventPropertyControl.svelte
+++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/EventPropertyControl.svelte
@@ -51,7 +51,7 @@
}
-Define Actions
+Define actions
Define what actions to run.
diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/FilterEditor/FilterEditor.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/FilterEditor/FilterEditor.svelte
index eee8fb113..1d2d772a5 100644
--- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/FilterEditor/FilterEditor.svelte
+++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/FilterEditor/FilterEditor.svelte
@@ -21,7 +21,7 @@
export let value = []
export let componentInstance
let drawer
- let tempValue = value
+ let tempValue = value || []
$: numFilters = Array.isArray(tempValue)
? tempValue.length
@@ -31,15 +31,6 @@
$: schemaFields = Object.values(schema || {})
$: internalTable = dataSource?.type === "table"
- // Reset value if value is wrong type for the datasource.
- // Lucene editor needs an array, and simple editor needs an object.
- $: {
- if (!Array.isArray(value)) {
- tempValue = []
- dispatch("change", [])
- }
- }
-
const saveFilter = async () => {
dispatch("change", tempValue)
notifications.success("Filters saved.")
@@ -47,7 +38,7 @@
}
-Define Filters
+Define filters
Save
diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/IconSelect/IconSelect.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/IconSelect/IconSelect.svelte
index 9afd1ea65..5f70a81c2 100644
--- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/IconSelect/IconSelect.svelte
+++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/IconSelect/IconSelect.svelte
@@ -107,7 +107,7 @@
loading = false
}
- $: displayValue = value ? value.substring(3) : "Pick Icon"
+ $: displayValue = value ? value.substring(3) : "Pick icon"
$: totalPages = Math.ceil(filteredIcons.length / maxIconsPerPage)
$: pageEndIdx = maxIconsPerPage * currentPage
diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/URLSelect.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/URLSelect.svelte
new file mode 100644
index 000000000..5a19c1add
--- /dev/null
+++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/URLSelect.svelte
@@ -0,0 +1,12 @@
+
+
+
diff --git a/packages/builder/src/components/design/PropertiesPanel/componentStyles.js b/packages/builder/src/components/design/PropertiesPanel/componentStyles.js
index 4b30b65fc..d0e67431b 100644
--- a/packages/builder/src/components/design/PropertiesPanel/componentStyles.js
+++ b/packages/builder/src/components/design/PropertiesPanel/componentStyles.js
@@ -1,4 +1,5 @@
-import { Input, Select, ColorPicker } from "@budibase/bbui"
+import { Input, Select } from "@budibase/bbui"
+import ColorPicker from "./PropertyControls/ColorPicker.svelte"
export const margin = {
label: "Margin",
diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/CreateEditRelationship/CreateEditRelationship.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/CreateEditRelationship/CreateEditRelationship.svelte
index a34fdedb8..9a9b8b20b 100644
--- a/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/CreateEditRelationship/CreateEditRelationship.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/CreateEditRelationship/CreateEditRelationship.svelte
@@ -1,8 +1,16 @@
{#if $auth.isAdmin}
diff --git a/packages/builder/src/pages/builder/portal/manage/users/[userId].svelte b/packages/builder/src/pages/builder/portal/manage/users/[userId].svelte
index 912506d0c..8e029d73b 100644
--- a/packages/builder/src/pages/builder/portal/manage/users/[userId].svelte
+++ b/packages/builder/src/pages/builder/portal/manage/users/[userId].svelte
@@ -33,7 +33,7 @@
role: {},
}
- $: defaultRoleId = $userFetch?.data?.builder?.global ? "ADMIN" : ""
+ $: defaultRoleId = $userFetch?.data?.builder?.global ? "ADMIN" : "BASIC"
// Merge the Apps list and the roles response to get something that makes sense for the table
$: appList = Object.keys($apps?.data).map(id => {
const role = $userFetch?.data?.roles?.[id] || defaultRoleId
diff --git a/packages/builder/src/pages/builder/portal/manage/users/_components/UpdateRolesModal.svelte b/packages/builder/src/pages/builder/portal/manage/users/_components/UpdateRolesModal.svelte
index e881fa37d..332be8e2d 100644
--- a/packages/builder/src/pages/builder/portal/manage/users/_components/UpdateRolesModal.svelte
+++ b/packages/builder/src/pages/builder/portal/manage/users/_components/UpdateRolesModal.svelte
@@ -9,7 +9,9 @@
const dispatch = createEventDispatcher()
const roles = app.roles
- let options = roles.map(role => ({ value: role._id, label: role.name }))
+ let options = roles
+ .map(role => ({ value: role._id, label: role.name }))
+ .filter(role => role.value !== "PUBLIC")
let selectedRole = user?.roles?.[app?._id]
async function updateUserRoles() {
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 4873ef5ec..257383870 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "0.9.70",
+ "version": "0.9.71",
"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 917c8c10b..c2d680d31 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "0.9.70",
+ "version": "0.9.71",
"license": "MPL-2.0",
"module": "dist/budibase-client.js",
"main": "dist/budibase-client.js",
@@ -18,9 +18,9 @@
"dev:builder": "rollup -cw"
},
"dependencies": {
- "@budibase/bbui": "^0.9.70",
- "@budibase/standard-components": "^0.9.70",
- "@budibase/string-templates": "^0.9.70",
+ "@budibase/bbui": "^0.9.71",
+ "@budibase/standard-components": "^0.9.71",
+ "@budibase/string-templates": "^0.9.71",
"regexparam": "^1.3.0",
"shortid": "^2.2.15",
"svelte-spa-router": "^3.0.5"
diff --git a/packages/client/src/api/api.js b/packages/client/src/api/api.js
index fcdd9dbd5..280b58016 100644
--- a/packages/client/src/api/api.js
+++ b/packages/client/src/api/api.js
@@ -43,10 +43,9 @@ const makeApiCall = async ({ method, url, body, json = true }) => {
case 400:
return handleError(`${url}: Bad Request`)
case 403:
- // reload the page incase the token has expired
- if (!url.includes("self")) {
- location.reload()
- }
+ notificationStore.danger(
+ "Your session has expired, or you don't have permission to access that data"
+ )
return handleError(`${url}: Forbidden`)
default:
if (response.status >= 200 && response.status < 400) {
diff --git a/packages/client/src/api/app.js b/packages/client/src/api/app.js
index 61c23ef6a..c5ee305cd 100644
--- a/packages/client/src/api/app.js
+++ b/packages/client/src/api/app.js
@@ -3,8 +3,8 @@ import API from "./api"
/**
* Fetches screen definition for an app.
*/
-export const fetchAppDefinition = async appId => {
+export const fetchAppPackage = async appId => {
return await API.get({
- url: `/api/applications/${appId}/definition`,
+ url: `/api/applications/${appId}/appPackage`,
})
}
diff --git a/packages/client/src/api/auth.js b/packages/client/src/api/auth.js
index 426d4f08d..6ea105d9f 100644
--- a/packages/client/src/api/auth.js
+++ b/packages/client/src/api/auth.js
@@ -24,7 +24,12 @@ export const logIn = async ({ email, password }) => {
export const fetchSelf = async () => {
const user = await API.get({ url: "/api/self" })
if (user?._id) {
- return (await enrichRows([user], TableNames.USERS))[0]
+ if (user.roleId === "PUBLIC") {
+ // Don't try to enrich a public user as it will 403
+ return user
+ } else {
+ return (await enrichRows([user], TableNames.USERS))[0]
+ }
} else {
return null
}
diff --git a/packages/client/src/components/ClientApp.svelte b/packages/client/src/components/ClientApp.svelte
index 8e4d8864e..1076c0f56 100644
--- a/packages/client/src/components/ClientApp.svelte
+++ b/packages/client/src/components/ClientApp.svelte
@@ -13,11 +13,14 @@
authStore,
routeStore,
builderStore,
+ appStore,
} from "../store"
import { TableNames, ActionTypes } from "../constants"
import SettingsBar from "./preview/SettingsBar.svelte"
import SelectionIndicator from "./preview/SelectionIndicator.svelte"
import HoverIndicator from "./preview/HoverIndicator.svelte"
+ import { Layout, Heading, Body } from "@budibase/bbui"
+ import ErrorSVG from "../../../builder/assets/error.svg"
// Provide contexts
setContext("sdk", SDK)
@@ -25,12 +28,16 @@
setContext("context", createContextStore())
let dataLoaded = false
+ let permissionError = false
// Load app config
onMount(async () => {
await initialise()
await authStore.actions.fetchUser()
dataLoaded = true
+ if ($builderStore.inBuilder) {
+ builderStore.actions.notifyLoaded()
+ }
})
// Register this as a refreshable datasource so that user changes cause
@@ -43,50 +50,72 @@
},
]
- // Redirect to home layout if no matching route
+ // Handle no matching route - this is likely a permission error
$: {
if (dataLoaded && $routeStore.routerLoaded && !$routeStore.activeRoute) {
if ($authStore) {
- routeStore.actions.navigate("/")
+ // There is a logged in user, so handle them
+ if ($screenStore.screens.length) {
+ // Screens exist so navigate back to the home screen
+ const firstRoute = $screenStore.screens[0].routing?.route ?? "/"
+ routeStore.actions.navigate(firstRoute)
+ } else {
+ // No screens likely means the user has no permissions to view this app
+ permissionError = true
+ }
} else {
+ // The user is not logged in, redirect them to login
const returnUrl = `${window.location.pathname}${window.location.hash}`
const encodedUrl = encodeURIComponent(returnUrl)
window.location = `/builder/auth/login?returnUrl=${encodedUrl}`
}
}
}
+
+ $: themeClass =
+ $builderStore.theme || $appStore.application?.theme || "spectrum--light"
-{#if dataLoaded && $screenStore.activeLayout}
+{#if dataLoaded}
-
-
- {#key $screenStore.activeLayout._id}
-
- {/key}
+ {#if permissionError}
+
+
+ {@html ErrorSVG}
+ You don't have permission to use this app
+ Ask your administrator to grant you access
+
-
-
-
- {#key $builderStore.selectedComponentId}
+ {:else if $screenStore.activeLayout}
+
+
+ {#key $screenStore.activeLayout._id}
+
+ {/key}
+
+
+
+
+ {#key $builderStore.selectedComponentId}
+ {#if $builderStore.inBuilder}
+
+ {/if}
+ {/key}
+
{#if $builderStore.inBuilder}
-
+
+
{/if}
- {/key}
-
- {#if $builderStore.inBuilder}
-
-
- {/if}
-
+
+ {/if}
{/if}
@@ -101,5 +130,54 @@
}
#app-root {
position: relative;
+ border: 1px solid var(--spectrum-global-color-gray-300);
+ }
+
+ /* Custom scrollbars */
+ :global(::-webkit-scrollbar) {
+ width: 8px;
+ height: 8px;
+ }
+ :global(::-webkit-scrollbar-track) {
+ background: var(--spectrum-alias-background-color-default);
+ }
+ :global(::-webkit-scrollbar-thumb) {
+ background-color: var(--spectrum-global-color-gray-400);
+ border-radius: 4px;
+ }
+ :global(::-webkit-scrollbar-corner) {
+ background: var(--spectrum-alias-background-color-default);
+ }
+ :global(*) {
+ scrollbar-width: thin;
+ scrollbar-color: var(--spectrum-global-color-gray-400)
+ var(--spectrum-alias-background-color-default);
+ }
+
+ .error {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ display: grid;
+ place-items: center;
+ z-index: 1;
+ text-align: center;
+ padding: 20px;
+ }
+ .error :global(svg) {
+ fill: var(--spectrum-global-color-gray-500);
+ width: 80px;
+ height: 80px;
+ }
+ .error :global(h1),
+ .error :global(p) {
+ color: var(--spectrum-global-color-gray-800);
+ }
+ .error :global(p) {
+ font-style: italic;
+ margin-top: -0.5em;
+ }
+ .error :global(h1) {
+ font-weight: 400;
}
diff --git a/packages/client/src/components/preview/HoverIndicator.svelte b/packages/client/src/components/preview/HoverIndicator.svelte
index d049a1f94..5cdf3eccf 100644
--- a/packages/client/src/components/preview/HoverIndicator.svelte
+++ b/packages/client/src/components/preview/HoverIndicator.svelte
@@ -29,4 +29,9 @@
})
-
+
diff --git a/packages/client/src/components/preview/SelectionIndicator.svelte b/packages/client/src/components/preview/SelectionIndicator.svelte
index bb7185621..031e940b9 100644
--- a/packages/client/src/components/preview/SelectionIndicator.svelte
+++ b/packages/client/src/components/preview/SelectionIndicator.svelte
@@ -5,7 +5,7 @@
diff --git a/packages/client/src/components/preview/SettingsBar.svelte b/packages/client/src/components/preview/SettingsBar.svelte
index 590553532..69197e6ed 100644
--- a/packages/client/src/components/preview/SettingsBar.svelte
+++ b/packages/client/src/components/preview/SettingsBar.svelte
@@ -138,11 +138,11 @@
padding: 6px 8px;
opacity: 0;
flex-direction: row;
- background: var(--background);
+ background: var(--spectrum-alias-background-color-primary);
justify-content: center;
align-items: center;
border-radius: 4px;
- box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
gap: 2px;
transition: opacity 0.13s ease-in-out;
}
@@ -155,4 +155,14 @@
margin: 0 4px;
background-color: var(--spectrum-global-color-gray-300);
}
+
+ /* Theme overrides */
+ :global(.spectrum--dark) .bar,
+ :global(.spectrum--darkest) .bar {
+ background: var(--spectrum-global-color-gray-200);
+ }
+ :global(.spectrum--dark) .divider,
+ :global(.spectrum--darkest) .divider {
+ background: var(--spectrum-global-color-gray-400);
+ }
diff --git a/packages/client/src/index.js b/packages/client/src/index.js
index 66bbce277..b7a303d9d 100644
--- a/packages/client/src/index.js
+++ b/packages/client/src/index.js
@@ -1,5 +1,5 @@
import ClientApp from "./components/ClientApp.svelte"
-import { builderStore } from "./store"
+import { builderStore, appStore } from "./store"
let app
@@ -7,14 +7,18 @@ const loadBudibase = () => {
// Update builder store with any builder flags
builderStore.set({
inBuilder: !!window["##BUDIBASE_IN_BUILDER##"],
- appId: window["##BUDIBASE_APP_ID##"],
layout: window["##BUDIBASE_PREVIEW_LAYOUT##"],
screen: window["##BUDIBASE_PREVIEW_SCREEN##"],
selectedComponentId: window["##BUDIBASE_SELECTED_COMPONENT_ID##"],
previewId: window["##BUDIBASE_PREVIEW_ID##"],
previewType: window["##BUDIBASE_PREVIEW_TYPE##"],
+ theme: window["##BUDIBASE_PREVIEW_THEME##"],
})
+ // Set app ID - this window flag is set by both the preview and the real
+ // server rendered app HTML
+ appStore.actions.setAppID(window["##BUDIBASE_APP_ID##"])
+
// Create app if one hasn't been created yet
if (!app) {
app = new ClientApp({
diff --git a/packages/client/src/store/app.js b/packages/client/src/store/app.js
new file mode 100644
index 000000000..eb5a259a2
--- /dev/null
+++ b/packages/client/src/store/app.js
@@ -0,0 +1,27 @@
+import * as API from "../api"
+import { get, writable } from "svelte/store"
+
+const createAppStore = () => {
+ const store = writable({})
+
+ // Fetches the app definition including screens, layouts and theme
+ const fetchAppDefinition = async () => {
+ const appDefinition = await API.fetchAppPackage(get(store).appId)
+ store.set(appDefinition)
+ }
+
+ // Sets the initial app ID
+ const setAppID = id => {
+ store.update(state => {
+ state.appId = id
+ return state
+ })
+ }
+
+ return {
+ subscribe: store.subscribe,
+ actions: { setAppID, fetchAppDefinition },
+ }
+}
+
+export const appStore = createAppStore()
diff --git a/packages/client/src/store/auth.js b/packages/client/src/store/auth.js
index 9829d2e35..604da7f9a 100644
--- a/packages/client/src/store/auth.js
+++ b/packages/client/src/store/auth.js
@@ -1,26 +1,13 @@
import * as API from "../api"
-import { writable, get } from "svelte/store"
-import { builderStore } from "./builder"
-import { TableNames } from "../constants"
+import { writable } from "svelte/store"
const createAuthStore = () => {
const store = writable(null)
// Fetches the user object if someone is logged in and has reloaded the page
const fetchUser = async () => {
- // Fetch the first user if inside the builder
- if (get(builderStore).inBuilder) {
- const users = await API.fetchTableData(TableNames.USERS)
- if (!users.error && users[0] != null) {
- store.set(users[0])
- }
- }
-
- // Or fetch the current user from localstorage in a real app
- else {
- const user = await API.fetchSelf()
- store.set(user)
- }
+ const user = await API.fetchSelf()
+ store.set(user)
}
return {
diff --git a/packages/client/src/store/builder.js b/packages/client/src/store/builder.js
index f229f66b8..401ccfcc7 100644
--- a/packages/client/src/store/builder.js
+++ b/packages/client/src/store/builder.js
@@ -1,7 +1,7 @@
import { writable, derived } from "svelte/store"
import Manifest from "@budibase/standard-components/manifest.json"
-const dispatchEvent = (type, data) => {
+const dispatchEvent = (type, data = {}) => {
window.dispatchEvent(
new CustomEvent("bb-event", {
detail: { type, data },
@@ -64,6 +64,9 @@ const createBuilderStore = () => {
deleteComponent: id => {
dispatchEvent("delete-component", { id })
},
+ notifyLoaded: () => {
+ dispatchEvent("preview-loaded")
+ },
}
return {
...writableStore,
diff --git a/packages/client/src/store/index.js b/packages/client/src/store/index.js
index 9f2dbfdcf..9a6c74e02 100644
--- a/packages/client/src/store/index.js
+++ b/packages/client/src/store/index.js
@@ -1,4 +1,5 @@
export { authStore } from "./auth"
+export { appStore } from "./app"
export { notificationStore } from "./notification"
export { routeStore } from "./routes"
export { screenStore } from "./screens"
diff --git a/packages/client/src/store/initialise.js b/packages/client/src/store/initialise.js
index 9e2443998..1900e62ce 100644
--- a/packages/client/src/store/initialise.js
+++ b/packages/client/src/store/initialise.js
@@ -1,7 +1,7 @@
import { routeStore } from "./routes"
-import { screenStore } from "./screens"
+import { appStore } from "./app"
export async function initialise() {
await routeStore.actions.fetchRoutes()
- await screenStore.actions.fetchScreens()
+ await appStore.actions.fetchAppDefinition()
}
diff --git a/packages/client/src/store/screens.js b/packages/client/src/store/screens.js
index 04ed9ca52..367d9ecfe 100644
--- a/packages/client/src/store/screens.js
+++ b/packages/client/src/store/screens.js
@@ -1,27 +1,26 @@
-import { writable, derived, get } from "svelte/store"
+import { derived } from "svelte/store"
import { routeStore } from "./routes"
import { builderStore } from "./builder"
-import * as API from "../api"
+import { appStore } from "./app"
const createScreenStore = () => {
- const config = writable({
- screens: [],
- layouts: [],
- })
const store = derived(
- [config, routeStore, builderStore],
- ([$config, $routeStore, $builderStore]) => {
- let activeLayout
- let activeScreen
+ [appStore, routeStore, builderStore],
+ ([$appStore, $routeStore, $builderStore]) => {
+ let activeLayout, activeScreen
+ let layouts, screens
if ($builderStore.inBuilder) {
// Use builder defined definitions if inside the builder preview
activeLayout = $builderStore.layout
activeScreen = $builderStore.screen
+ layouts = [activeLayout]
+ screens = [activeScreen]
} else {
activeLayout = { props: { _component: "screenslot" } }
// Find the correct screen by matching the current route
- const { screens, layouts } = $config
+ screens = $appStore.screens
+ layouts = $appStore.layouts
if ($routeStore.activeRoute) {
activeScreen = screens.find(
screen => screen._id === $routeStore.activeRoute.screenId
@@ -33,21 +32,12 @@ const createScreenStore = () => {
)
}
}
- return { activeLayout, activeScreen }
+ return { layouts, screens, activeLayout, activeScreen }
}
)
- const fetchScreens = async () => {
- const appDefinition = await API.fetchAppDefinition(get(builderStore).appId)
- config.set({
- screens: appDefinition.screens,
- layouts: appDefinition.layouts,
- })
- }
-
return {
subscribe: store.subscribe,
- actions: { fetchScreens },
}
}
diff --git a/packages/client/src/utils/styleable.js b/packages/client/src/utils/styleable.js
index 3f02b3660..13eae2ea7 100644
--- a/packages/client/src/utils/styleable.js
+++ b/packages/client/src/utils/styleable.js
@@ -29,7 +29,7 @@ export const styleable = (node, styles = {}) => {
// overridden by any user specified styles
let baseStyles = {}
if (newStyles.empty) {
- baseStyles.border = "2px dashed var(--grey-5)"
+ baseStyles.border = "2px dashed var(--spectrum-global-color-gray-600)"
baseStyles.padding = "var(--spacing-l)"
baseStyles.overflow = "hidden"
}
diff --git a/packages/server/nodemon.json b/packages/server/nodemon.json
new file mode 100644
index 000000000..a5640776e
--- /dev/null
+++ b/packages/server/nodemon.json
@@ -0,0 +1,6 @@
+{
+ "watch": ["src"],
+ "ext": "js,ts,json",
+ "ignore": ["src/**/*.spec.ts", "src/**/*.spec.js"],
+ "exec": "ts-node src/index.ts"
+}
\ No newline at end of file
diff --git a/packages/server/package.json b/packages/server/package.json
index c080cf1f5..26ba52e65 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.70",
+ "version": "0.9.71",
"description": "Budibase Web Server",
"main": "src/index.js",
"repository": {
@@ -18,7 +18,7 @@
"dev:stack:up": "node scripts/dev/manage.js up",
"dev:stack:down": "node scripts/dev/manage.js down",
"dev:stack:nuke": "node scripts/dev/manage.js nuke",
- "dev:builder": "yarn run dev:stack:up && ts-node src/index.ts",
+ "dev:builder": "yarn run dev:stack:up && nodemon",
"format": "prettier --config ../../.prettierrc.json 'src/**/*.ts' --write",
"lint": "eslint --fix src/",
"lint:fix": "yarn run format && yarn run lint",
@@ -59,9 +59,9 @@
"author": "Budibase",
"license": "AGPL-3.0-or-later",
"dependencies": {
- "@budibase/auth": "^0.9.70",
- "@budibase/client": "^0.9.70",
- "@budibase/string-templates": "^0.9.70",
+ "@budibase/auth": "^0.9.71",
+ "@budibase/client": "^0.9.71",
+ "@budibase/string-templates": "^0.9.71",
"@elastic/elasticsearch": "7.10.0",
"@koa/router": "8.0.0",
"@sendgrid/mail": "7.1.1",
@@ -114,7 +114,7 @@
"devDependencies": {
"@babel/core": "^7.14.3",
"@babel/preset-env": "^7.14.4",
- "@budibase/standard-components": "^0.9.70",
+ "@budibase/standard-components": "^0.9.71",
"@jest/test-sequencer": "^24.8.0",
"@types/bull": "^3.15.1",
"@types/jest": "^26.0.23",
diff --git a/packages/server/scripts/integrations/mysql/init.sql b/packages/server/scripts/integrations/mysql/init.sql
index 3ffe84cd7..8cd120a8a 100644
--- a/packages/server/scripts/integrations/mysql/init.sql
+++ b/packages/server/scripts/integrations/mysql/init.sql
@@ -1,9 +1,22 @@
CREATE DATABASE IF NOT EXISTS main;
USE main;
CREATE TABLE Persons (
- PersonID int NOT NULL PRIMARY KEY,
+ PersonID int NOT NULL AUTO_INCREMENT,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
- City varchar(255)
+ City varchar(255),
+ PRIMARY KEY (PersonID)
);
+CREATE TABLE Tasks (
+ TaskID int NOT NULL AUTO_INCREMENT,
+ PersonID INT,
+ TaskName varchar(255),
+ PRIMARY KEY (TaskID),
+ CONSTRAINT fkPersons
+ FOREIGN KEY(PersonID)
+ REFERENCES Persons(PersonID)
+);
+INSERT INTO Persons (FirstName, LastName, Address, City) VALUES ('Mike', 'Hughes', '123 Fake Street', 'Belfast');
+INSERT INTO Tasks (PersonID, TaskName) VALUES (1, 'assembling');
+INSERT INTO Tasks (PersonID, TaskName) VALUES (1, 'processing');
diff --git a/packages/server/scripts/integrations/mysql/reset.sh b/packages/server/scripts/integrations/mysql/reset.sh
new file mode 100755
index 000000000..32778bd11
--- /dev/null
+++ b/packages/server/scripts/integrations/mysql/reset.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+docker-compose down
+docker volume prune -f
diff --git a/packages/server/scripts/integrations/postgres/init.sql b/packages/server/scripts/integrations/postgres/init.sql
index 37835af4a..5a99520c1 100644
--- a/packages/server/scripts/integrations/postgres/init.sql
+++ b/packages/server/scripts/integrations/postgres/init.sql
@@ -1,14 +1,14 @@
SELECT 'CREATE DATABASE main'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'main')\gexec
CREATE TABLE Persons (
- PersonID INT NOT NULL PRIMARY KEY,
+ PersonID SERIAL PRIMARY KEY,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
- City varchar(255)
+ City varchar(255) DEFAULT 'Belfast'
);
CREATE TABLE Tasks (
- TaskID INT NOT NULL PRIMARY KEY,
+ TaskID SERIAL PRIMARY KEY,
PersonID INT,
TaskName varchar(255),
CONSTRAINT fkPersons
@@ -16,7 +16,7 @@ CREATE TABLE Tasks (
REFERENCES Persons(PersonID)
);
CREATE TABLE Products (
- ProductID INT NOT NULL PRIMARY KEY,
+ ProductID SERIAL PRIMARY KEY,
ProductName varchar(255)
);
CREATE TABLE Products_Tasks (
@@ -30,12 +30,12 @@ CREATE TABLE Products_Tasks (
REFERENCES Tasks(TaskID),
PRIMARY KEY (ProductID, TaskID)
);
-INSERT INTO Persons (PersonID, FirstName, LastName, Address, City) VALUES (1, 'Mike', 'Hughes', '123 Fake Street', 'Belfast');
-INSERT INTO Tasks (TaskID, PersonID, TaskName) VALUES (1, 1, 'assembling');
-INSERT INTO Tasks (TaskID, PersonID, TaskName) VALUES (2, 1, 'processing');
-INSERT INTO Products (ProductID, ProductName) VALUES (1, 'Computers');
-INSERT INTO Products (ProductID, ProductName) VALUES (2, 'Laptops');
-INSERT INTO Products (ProductID, ProductName) VALUES (3, 'Chairs');
+INSERT INTO Persons (FirstName, LastName, Address, City) VALUES ('Mike', 'Hughes', '123 Fake Street', 'Belfast');
+INSERT INTO Tasks (PersonID, TaskName) VALUES (1, 'assembling');
+INSERT INTO Tasks (PersonID, TaskName) VALUES (1, 'processing');
+INSERT INTO Products (ProductName) VALUES ('Computers');
+INSERT INTO Products (ProductName) VALUES ('Laptops');
+INSERT INTO Products (ProductName) VALUES ('Chairs');
INSERT INTO Products_Tasks (ProductID, TaskID) VALUES (1, 1);
INSERT INTO Products_Tasks (ProductID, TaskID) VALUES (2, 1);
INSERT INTO Products_Tasks (ProductID, TaskID) VALUES (3, 1);
diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js
index 7db8bacd0..9881a07f4 100644
--- a/packages/server/src/api/controllers/application.js
+++ b/packages/server/src/api/controllers/application.js
@@ -67,15 +67,18 @@ async function getAppUrlIfNotInUse(ctx) {
let url
if (ctx.request.body.url) {
url = encodeURI(ctx.request.body.url)
- } else {
+ } else if (ctx.request.body.name) {
url = encodeURI(`${ctx.request.body.name}`)
}
- url = `/${url.replace(URL_REGEX_SLASH, "")}`.toLowerCase()
+ if (url) {
+ url = `/${url.replace(URL_REGEX_SLASH, "")}`.toLowerCase()
+ }
if (!env.SELF_HOSTED) {
return url
}
const deployedApps = await getDeployedApps(ctx)
if (
+ url &&
deployedApps[url] != null &&
deployedApps[url].appId !== ctx.params.appId
) {
@@ -161,7 +164,15 @@ exports.fetchAppDefinition = async function (ctx) {
exports.fetchAppPackage = async function (ctx) {
const db = new CouchDB(ctx.params.appId)
const application = await db.get(DocumentTypes.APP_METADATA)
- const [layouts, screens] = await Promise.all([getLayouts(db), getScreens(db)])
+ const layouts = await getLayouts(db)
+ let screens = await getScreens(db)
+
+ // Only filter screens if the user is not a builder
+ if (!(ctx.user.builder && ctx.user.builder.global)) {
+ const userRoleId = getUserRoleId(ctx)
+ const accessController = new AccessController(ctx.params.appId)
+ screens = await accessController.checkScreensAccess(screens, userRoleId)
+ }
ctx.body = {
application,
diff --git a/packages/server/src/api/controllers/row/ExternalRequest.ts b/packages/server/src/api/controllers/row/ExternalRequest.ts
index 855c64e4c..c5fad441b 100644
--- a/packages/server/src/api/controllers/row/ExternalRequest.ts
+++ b/packages/server/src/api/controllers/row/ExternalRequest.ts
@@ -162,7 +162,7 @@ module External {
manyRelationships: ManyRelationship[] = []
for (let [key, field] of Object.entries(table.schema)) {
// if set already, or not set just skip it
- if (!row[key] || newRow[key]) {
+ if (!row[key] || newRow[key] || field.autocolumn) {
continue
}
// if its not a link then just copy it over
diff --git a/packages/server/src/api/controllers/static/templates/BudibaseApp.svelte b/packages/server/src/api/controllers/static/templates/BudibaseApp.svelte
index 670a0f22e..494305132 100644
--- a/packages/server/src/api/controllers/static/templates/BudibaseApp.svelte
+++ b/packages/server/src/api/controllers/static/templates/BudibaseApp.svelte
@@ -34,13 +34,55 @@
*:after {
box-sizing: border-box;
}
+
+ #error {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100vh;
+ width: 100vw;
+ display: none;
+ font-family: "Source Sans Pro", sans-serif;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ background: #222;
+ text-align: center;
+ padding: 2rem;
+ gap: 2rem;
+ }
+ #error h1,
+ #error h2 {
+ margin: 0;
+ }
+ #error h1 {
+ color: #ccc;
+ font-size: 3rem;
+ font-weight: 600;
+ }
+ #error h2 {
+ color: #888;
+ font-weight: 400;
+ }
+
+
There was an error loading your app
+
+ The Budibase client library could not be loaded. Try republishing your
+ app.
+
+
diff --git a/packages/server/src/api/routes/tests/application.spec.js b/packages/server/src/api/routes/tests/application.spec.js
index 1930d0a4e..2333787e6 100644
--- a/packages/server/src/api/routes/tests/application.spec.js
+++ b/packages/server/src/api/routes/tests/application.spec.js
@@ -9,9 +9,13 @@ jest.mock("../../../utilities/redis", () => ({
updateLock: jest.fn(),
setDebounce: jest.fn(),
checkDebounce: jest.fn(),
+ shutdown: jest.fn(),
}))
-const { clearAllApps, checkBuilderEndpoint } = require("./utilities/TestFunctions")
+const {
+ clearAllApps,
+ checkBuilderEndpoint,
+} = require("./utilities/TestFunctions")
const setup = require("./utilities")
const { AppStatus } = require("../../../db/utils")
@@ -32,7 +36,7 @@ describe("/applications", () => {
.post("/api/applications")
.send({ name: "My App" })
.set(config.defaultHeaders())
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
expect(res.body._id).toBeDefined()
})
@@ -42,7 +46,7 @@ describe("/applications", () => {
config,
method: "POST",
url: `/api/applications`,
- body: { name: "My App" }
+ body: { name: "My App" },
})
})
})
@@ -55,7 +59,7 @@ describe("/applications", () => {
const res = await request
.get(`/api/applications?status=${AppStatus.DEV}`)
.set(config.defaultHeaders())
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
// two created apps + the inited app
@@ -68,7 +72,7 @@ describe("/applications", () => {
const res = await request
.get(`/api/applications/${config.getAppId()}/definition`)
.set(config.defaultHeaders())
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
// should have empty packages
expect(res.body.screens.length).toEqual(1)
@@ -81,7 +85,7 @@ describe("/applications", () => {
const res = await request
.get(`/api/applications/${config.getAppId()}/appPackage`)
.set(config.defaultHeaders())
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
expect(res.body.application).toBeDefined()
expect(res.body.screens.length).toEqual(1)
@@ -94,10 +98,10 @@ describe("/applications", () => {
const res = await request
.put(`/api/applications/${config.getAppId()}`)
.send({
- name: "TEST_APP"
+ name: "TEST_APP",
})
.set(config.defaultHeaders())
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
expect(res.body.rev).toBeDefined()
})
@@ -113,14 +117,14 @@ describe("/applications", () => {
name: "UPDATED_NAME",
})
.set(headers)
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
expect(res.body.rev).toBeDefined()
// retrieve the app to check it
const getRes = await request
.get(`/api/applications/${config.getAppId()}/appPackage`)
.set(headers)
- .expect('Content-Type', /json/)
+ .expect("Content-Type", /json/)
.expect(200)
expect(getRes.body.application.updatedAt).toBeDefined()
})
diff --git a/packages/server/src/constants/layouts.js b/packages/server/src/constants/layouts.js
index f435c31d1..2402a1f7d 100644
--- a/packages/server/src/constants/layouts.js
+++ b/packages/server/src/constants/layouts.js
@@ -15,6 +15,7 @@ const EMPTY_LAYOUT = {
{
_id: "7fcf11e4-6f5b-4085-8e0d-9f3d44c98967",
_component: "@budibase/standard-components/screenslot",
+ _instanceName: "Screen slot",
_styles: {
normal: {
flex: "1 1 auto",
@@ -63,6 +64,7 @@ const BASE_LAYOUTS = [
{
_id: "7fcf11e4-6f5b-4085-8e0d-9f3d44c98967",
_component: "@budibase/standard-components/screenslot",
+ _instanceName: "Screen slot",
_styles: {
normal: {
flex: "1 1 auto",
@@ -84,6 +86,7 @@ const BASE_LAYOUTS = [
normal: {},
selected: {},
},
+ title: "{{ name }}",
navigation: "Top",
width: "Large",
links: [
@@ -109,6 +112,7 @@ const BASE_LAYOUTS = [
{
_id: "7fcf11e4-6f5b-4085-8e0d-9f3d44c98967",
_component: "@budibase/standard-components/screenslot",
+ _instanceName: "Screen slot",
_styles: {
normal: {
flex: "1 1 auto",
diff --git a/packages/server/src/definitions/common.ts b/packages/server/src/definitions/common.ts
index 497f8f68f..ec837a810 100644
--- a/packages/server/src/definitions/common.ts
+++ b/packages/server/src/definitions/common.ts
@@ -14,6 +14,7 @@ export interface FieldSchema {
relationshipType?: string
through?: string
foreignKey?: string
+ autocolumn?: boolean
constraints?: {
type?: string
email?: boolean
diff --git a/packages/server/src/integrations/mysql.ts b/packages/server/src/integrations/mysql.ts
index 1cfe96986..9567fa705 100644
--- a/packages/server/src/integrations/mysql.ts
+++ b/packages/server/src/integrations/mysql.ts
@@ -163,14 +163,19 @@ module MySQLModule {
)
for (let column of descResp) {
const columnName = column.Field
- if (column.Key === "PRI") {
+ if (column.Key === "PRI" && primaryKeys.indexOf(column.Key) === -1) {
primaryKeys.push(columnName)
}
const constraints = {
presence: column.Null !== "YES",
}
+ const isAuto: boolean =
+ typeof column.Extra === "string" &&
+ (column.Extra === "auto_increment" ||
+ column.Extra.toLowerCase().includes("generated"))
schema[columnName] = {
name: columnName,
+ autocolumn: isAuto,
type: convertType(column.Type, TYPE_MAP),
constraints,
}
diff --git a/packages/server/src/integrations/postgres.ts b/packages/server/src/integrations/postgres.ts
index 935bfbeee..c114acf6b 100644
--- a/packages/server/src/integrations/postgres.ts
+++ b/packages/server/src/integrations/postgres.ts
@@ -147,7 +147,11 @@ module PostgresModule {
if (!tableKeys[tableName]) {
tableKeys[tableName] = []
}
- tableKeys[tableName].push(table.column_name || table.primary_key)
+ const key = table.column_name || table.primary_key
+ // only add the unique keys
+ if (key && tableKeys[tableName].indexOf(key) === -1) {
+ tableKeys[tableName].push(key)
+ }
}
} catch (err) {
tableKeys = {}
@@ -184,7 +188,11 @@ module PostgresModule {
}
const type: string = convertType(column.data_type, TYPE_MAP)
+ const isAuto: boolean =
+ typeof column.column_default === "string" &&
+ column.column_default.startsWith("nextval")
tables[tableName].schema[columnName] = {
+ autocolumn: isAuto,
name: columnName,
type,
}
diff --git a/packages/server/src/integrations/tests/postgres.spec.js b/packages/server/src/integrations/tests/postgres.spec.js
index 348fa20b6..f973f6910 100644
--- a/packages/server/src/integrations/tests/postgres.spec.js
+++ b/packages/server/src/integrations/tests/postgres.spec.js
@@ -17,7 +17,7 @@ describe("Postgres Integration", () => {
it("calls the create method with the correct params", async () => {
const sql = "insert into users (name, age) values ('Joe', 123);"
- const response = await config.integration.create({
+ await config.integration.create({
sql
})
expect(pg.queryMock).toHaveBeenCalledWith(sql, {})
@@ -25,7 +25,7 @@ describe("Postgres Integration", () => {
it("calls the read method with the correct params", async () => {
const sql = "select * from users;"
- const response = await config.integration.read({
+ await config.integration.read({
sql
})
expect(pg.queryMock).toHaveBeenCalledWith(sql, {})
diff --git a/packages/server/src/middleware/currentapp.js b/packages/server/src/middleware/currentapp.js
index f599fa2bf..5eab32a80 100644
--- a/packages/server/src/middleware/currentapp.js
+++ b/packages/server/src/middleware/currentapp.js
@@ -36,7 +36,7 @@ module.exports = async (ctx, next) => {
const globalUser = await getCachedSelf(ctx, requestAppId)
appId = requestAppId
// retrieving global user gets the right role
- roleId = globalUser.roleId || BUILTIN_ROLE_IDS.PUBLIC
+ roleId = globalUser.roleId || BUILTIN_ROLE_IDS.BASIC
}
// nothing more to do
if (!appId) {
diff --git a/packages/server/src/utilities/fileSystem/index.js b/packages/server/src/utilities/fileSystem/index.js
index ddda274ef..afacbf8cd 100644
--- a/packages/server/src/utilities/fileSystem/index.js
+++ b/packages/server/src/utilities/fileSystem/index.js
@@ -238,7 +238,10 @@ exports.readFileSync = (filepath, options = "utf8") => {
*/
exports.cleanup = appIds => {
for (let appId of appIds) {
- fs.rmdirSync(join(budibaseTempDir(), appId), { recursive: true })
+ const path = join(budibaseTempDir(), appId)
+ if (fs.existsSync(path)) {
+ fs.rmdirSync(path, { recursive: true })
+ }
}
}
diff --git a/packages/server/src/utilities/global.js b/packages/server/src/utilities/global.js
index 8c4bb7845..3ce794b40 100644
--- a/packages/server/src/utilities/global.js
+++ b/packages/server/src/utilities/global.js
@@ -20,7 +20,7 @@ exports.updateAppRole = (appId, user) => {
if (!user.roleId && user.builder && user.builder.global) {
user.roleId = BUILTIN_ROLE_IDS.ADMIN
} else if (!user.roleId) {
- user.roleId = BUILTIN_ROLE_IDS.PUBLIC
+ user.roleId = BUILTIN_ROLE_IDS.BASIC
}
delete user.roles
return user
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index 0939a1add..68ec6436d 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -2,11 +2,6 @@
# 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==
-
"@azure/abort-controller@^1.0.0":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.0.4.tgz#fd3c4d46c8ed67aace42498c8e2270960250eafd"
@@ -1146,6 +1141,8 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+<<<<<<< HEAD
+=======
"@budibase/auth@^0.9.66":
version "0.9.66"
resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-0.9.66.tgz#543eb6e0cbc0072d8567fdb5ce0f60a601e84f9f"
@@ -1284,6 +1281,7 @@
handlebars-utils "^1.0.6"
lodash "^4.17.20"
+>>>>>>> 2258f43bc104946d9960d6c91722defc4a16f554
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
@@ -2090,205 +2088,6 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
-"@spectrum-css/actionbutton@^1.0.1":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/actionbutton/-/actionbutton-1.0.3.tgz#8f7342a69b303c5acdcfa0a59f5e9267b9f3cb30"
- integrity sha512-P9qoCPSiZ1SB6ZYqK5hub0vGty00YYqonQE0KTjtb1i+T1nYR/87vWqVPERx9j63uhgZncjwFYaThTvRqye7eQ==
-
-"@spectrum-css/actiongroup@^1.0.1":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/actiongroup/-/actiongroup-1.0.3.tgz#4713ce65e6f5c72c404a7b638fbc3b4fd7e3874f"
- integrity sha512-NlB9Q4ZlWixXxymoPIYG6g2hkwAGKFodHWPFfxHD8ddkjXWRB9G2akUP7cfsJ4DcYn4VisUORCOYQwqDiSmboQ==
-
-"@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":
- 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.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/buttongroup/-/buttongroup-3.0.3.tgz#719d868845ac9d2c4f939c1b9f6044507902d5aa"
- integrity sha512-eXl8U4QWMWXqyTu654FdQdEGnmczgOYlpIFSHyCMVjhtPqZp2xwnLFiGh6LKw+bLio6eeOZ0L+vpk1GcoYqgkw==
-
-"@spectrum-css/checkbox@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/checkbox/-/checkbox-3.0.3.tgz#8577067fc8b97e4609f92bd242364937a533a7bb"
- integrity sha512-QVG9uMHq+lh70Dh6mDNnY+vEvNz2p7VC6xgLfDYfijp2qeiqYPq72fQK6p/SiyqPk96ZACzNRwgeROU6Xf6Wgg==
-
-"@spectrum-css/dialog@^3.0.1":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/dialog/-/dialog-3.0.3.tgz#7715a4ea435e753afb623d99ca5917ed1bcd6f34"
- integrity sha512-AhmKgfRIVyTe3ABiJ8lLUQL34VB/H6fN16na2LlbDRJvyRMzkdN1Xf2i6U3f4OMd3qQ8Gm5xat4BvMxIQPBAUQ==
-
-"@spectrum-css/divider@^1.0.1":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/divider/-/divider-1.0.3.tgz#639e2ebaa0834efa40f42397668bbd5c153ea385"
- integrity sha512-Zy4Rn40w8UtzMh3wx/U9+CepSCpm1aOCGftHgWDub0XZuVTzh0c1WwyzTuLCx2Hf21z5VRGNiDh8bGEEzSbtNA==
- dependencies:
- "@spectrum-css/vars" "^3.0.2"
-
-"@spectrum-css/dropzone@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/dropzone/-/dropzone-3.0.3.tgz#aee71697a2c195947599d7541b858c3c198741dc"
- integrity sha512-ujrswdtB6bHigklyHsm6zomFd6rUnKJ3xVVRjroVF4+ouK4DxK5tX0iVd0EW6AOfOjx4Cc28uyFot3fpxp+MQw==
-
-"@spectrum-css/fieldgroup@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/fieldgroup/-/fieldgroup-3.0.3.tgz#85d85da048d08200f25ceab378026dd2b11e0bb2"
- integrity sha512-wXUXTXN1CPnR7M4Ltd+3uh7BfcNGUV1+Xe0/h0tCpq/j+S2Sd4xo7/pUMdU19sIDrAAtpEFp1tt+nouHcU5HGQ==
-
-"@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.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/icon/-/icon-3.0.3.tgz#5c612822380927087aebd526855d82ed2c3e2cba"
- integrity sha512-hyloKOejPCXhP3MBNsm3SjR9j8xT1R1S19p32KW/0Qhj+VMUtfyEPmevyFptpn7wcovQccdl/vZVIVDuML/imw==
-
-"@spectrum-css/illustratedmessage@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/illustratedmessage/-/illustratedmessage-3.0.2.tgz#6a480be98b027e050b086e7899e40d87adb0a8c0"
- integrity sha512-dqnE8X27bGcO0HN8+dYx8O4o0dNNIAqeivOzDHhe2El+V4dTzMrNIerF6G0NLm3GjVf6XliwmitsZK+K6FmbtA==
-
-"@spectrum-css/inputgroup@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/inputgroup/-/inputgroup-3.0.3.tgz#00c9a370ddc2c55cf0f37dd6069faa9501fd7eb5"
- integrity sha512-FqRJTiLL7jiGfzDVXWUGVLqHryJjCcqQIrqAi+Tq0oenapzsBe2qc/zIrKgh2wtMI+NTIBLXTECvij3L1HlqAg==
-
-"@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.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/link/-/link-3.1.3.tgz#b0e560a7e0acdb4a2b329b6669696aa3438f5993"
- integrity sha512-8Pmy5d73MwKcATTPaj+fSrZYnIw7GmfX40AvpC1xx5LauOxsbUb4AVNp1kn2H8rrOBmxF7czyhoBBhEiv66QUg==
-
-"@spectrum-css/menu@^3.0.1":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/menu/-/menu-3.0.3.tgz#46a9b221bb5f470a2f8a934bdfd512d84d2fdc4d"
- integrity sha512-qKA9J/MrikNKIpCEHsAazG2vY3im5tjGCmo6p9Pdnu8/aQMsiuZDHZayukeCttJUZkrb9guDVL9OIHlK5RZvcQ==
-
-"@spectrum-css/modal@^3.0.1":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/modal/-/modal-3.0.2.tgz#58b6621cab65f90788d310374f40df1f7090473f"
- integrity sha512-YnIivJhoaao7Otu+HV7sgebPyFbO6sd/oMvTN/Rb2wwgnaMnIIuIRdGandSrcgotN2uNgs+P0knG6mv/xA1/dg==
-
-"@spectrum-css/page@^3.0.1":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/page/-/page-3.0.2.tgz#8f0c03d25f5565fb13115541a8fcaf0e1d3a8ee0"
- integrity sha512-lCXWjonLwYBg8FHUEkiFX0Mmfk+9Uivgvxq0DTulPlWrJcULTwjaOiY28/YBz7Fy1wuv/0KORbkPRALpYldBZg==
- dependencies:
- "@spectrum-css/vars" "^3.0.2"
-
-"@spectrum-css/pagination@^3.0.3":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/pagination/-/pagination-3.0.3.tgz#b204c3ada384c4af751a354bc428346d82eeea65"
- integrity sha512-OJ/v9GeNXJOZ9Yr9LDBYPrR2NCiLOWP9wANT/a5sqFuugRnQbn/HYMnRp9TBxwpDY6ihaPo0T/wi7kLiAJFdDw==
-
-"@spectrum-css/picker@^1.0.1":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/picker/-/picker-1.0.3.tgz#21379bcf8ae94277deeb6ad65dcd9e2bbfacb487"
- integrity sha512-oHLGxBx5BwVCSGo7/T1C9PTHX1+/5AmVjyLiTJ4UoIdSJmOERw9YcRZbcGZgBJNWbxcjr4TyGtwj1EcSjEy97w==
-
-"@spectrum-css/popover@^3.0.1":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/popover/-/popover-3.0.3.tgz#6fb69873474fb968afb738eacb9e121f93e83a09"
- integrity sha512-KvmXv4TV19FBx39KfmgVlDYtvtBqv/8RRK7RRLDDHGViTxZtShjVsVpwIgfkfgn4iJztCnXpWzFqRXWUu2XCpQ==
-
-"@spectrum-css/progressbar@^1.0.2":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/progressbar/-/progressbar-1.0.3.tgz#f70bcc38a2a21cff2f422ec825724ebbb9455e67"
- integrity sha512-vJHplefUuy8+NjCw1X7fLbqHVGNVBpvGFXNAeaIj4SFf4ygxiUq/5c9iRhhsCQixEsJlfD/b7BnGXU7BUDkr6Q==
-
-"@spectrum-css/progresscircle@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/progresscircle/-/progresscircle-1.0.2.tgz#258ea9170fb70f795edda03e38a61d93bef4487c"
- integrity sha512-JLULpyzjIY95lzlWR1yE1gv4l1K6p+scQ+edmuZZUHBzwM3pUtkvHJmUlA9TYdResUYW6Uka60VRdY6lZ8gnFQ==
-
-"@spectrum-css/radio@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/radio/-/radio-3.0.3.tgz#25c3bc5e9c30a8a8ae728717b7c7fb736cdae640"
- integrity sha512-LaLGfz/eGNR2iyqouXYILIA+pKRqF769iPdwM0REm5RpWvMQDD7rPZ/kWlg18owjaFsyllEp25gEjmhRJIIVOw==
-
-"@spectrum-css/search@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/search/-/search-3.0.3.tgz#3415dc106aca0d5dd996e87084a1b47c2b95a882"
- integrity sha512-kdLpKTt0obljuhS1q1tukujRlvSs8sBwij76D4Qp8KpMzwePfZyvv1kYzuWPNZfTeISxWsmyZ6Wxd1uvzjn+UA==
-
-"@spectrum-css/sidenav@^3.0.2":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/sidenav/-/sidenav-3.0.3.tgz#132141fbd2500a927c312fa4e1d712c438b3d597"
- integrity sha512-cQ+CgwjxGftrcc79i1XnGd66QTl7H7zopSU0UTV4Qq7hvqfrjjWxfZ6b+3tezrrhNlDope1ff9o8sm67PsPXtg==
-
-"@spectrum-css/statuslight@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/statuslight/-/statuslight-3.0.2.tgz#dc54b6cd113413dcdb909c486b5d7bae60db65c5"
- integrity sha512-xodB8g8vGJH20XmUj9ZsPlM1jHrGeRbvmVXkz0q7YvQrYAhim8pP3W+XKKZAletPFAuu8cmUOc6SWn6i4X4z6w==
-
-"@spectrum-css/switch@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/switch/-/switch-1.0.2.tgz#f0b4c69271964573e02b08e90998096e49e1de44"
- integrity sha512-zqmHpgWPNg1gEwdUNFYV3CBX5JaeALfIqcJIxE0FLZqr9d1C4+oLE0ItIFzt1bwr4bFAOmkEpvtiY+amluzGxQ==
-
-"@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.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/tabs/-/tabs-3.0.3.tgz#51dd6f168c897b0fdc3a7e9f901df7bd2288b4fc"
- integrity sha512-iLP1I72bJWz9APdQB1jiw+pOv5a7N+hYOCJvRoc56Us/hJKVzowkyGRe3uH+8v36nCG9bHxiAQNLoU8eXisVrg==
-
-"@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.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/textfield/-/textfield-3.0.2.tgz#907f62d2dc82852dd6236a820be99e252b531631"
- integrity sha512-nkFgAb0cP4jUodkUBErMNfyF78jJLtgL1Mrr9/rvGpGobo10IAbb8zZY4CkZ64o8XmMy/85+wZTKcx+KHatqpg==
-
-"@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.0.3"
- resolved "https://registry.yarnpkg.com/@spectrum-css/tooltip/-/tooltip-3.0.3.tgz#26b8ca3b3d30e29630244d85eb4fc11d0c841281"
- integrity sha512-ztRF7WW1FzyNavXBRc+80z67UoOrY9wl3cMYsVD3MpDnyxdzP8cjza1pCcolKBaFqRTcQKkxKw3GWtGICRKR5A==
-
-"@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":
- 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.10"
- resolved "https://registry.yarnpkg.com/@spectrum-css/underlay/-/underlay-2.0.10.tgz#8b75b646605a311850f6620caa18d4996cd64ed7"
- integrity sha512-PmsmkzeGD/rY4pp3ILXHt9w8BW7uaEqXe08hQRS7rGki7wqCpG4mE0/8N3yEcA3QxWQclmG9gdkg5uz6wMmYzA==
-
-"@spectrum-css/vars@^3.0.1", "@spectrum-css/vars@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@spectrum-css/vars/-/vars-3.0.2.tgz#ea9062c3c98dfc6ba59e5df14a03025ad8969999"
- integrity sha512-vzS9KqYXot4J3AEER/u618MXWAS+IoMvYMNrOoscKiLLKYQWenaueakUWulFonToPd/9vIpqtdbwxznqrK5qDw==
-
"@szmarczak/http-timer@^1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
@@ -2835,130 +2634,6 @@ ansi-align@^3.0.0:
dependencies:
string-width "^3.0.0"
-ansi-bgblack@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgblack/-/ansi-bgblack-0.1.1.tgz#a68ba5007887701b6aafbe3fa0dadfdfa8ee3ca2"
- integrity sha1-poulAHiHcBtqr74/oNrf36juPKI=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bgblue@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgblue/-/ansi-bgblue-0.1.1.tgz#67bdc04edc9b9b5278969da196dea3d75c8c3613"
- integrity sha1-Z73ATtybm1J4lp2hlt6j11yMNhM=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bgcyan@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgcyan/-/ansi-bgcyan-0.1.1.tgz#58489425600bde9f5507068dd969ebfdb50fe768"
- integrity sha1-WEiUJWAL3p9VBwaN2Wnr/bUP52g=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bggreen@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bggreen/-/ansi-bggreen-0.1.1.tgz#4e3191248529943f4321e96bf131d1c13816af49"
- integrity sha1-TjGRJIUplD9DIelr8THRwTgWr0k=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bgmagenta@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgmagenta/-/ansi-bgmagenta-0.1.1.tgz#9b28432c076eaa999418672a3efbe19391c2c7a1"
- integrity sha1-myhDLAduqpmUGGcqPvvhk5HCx6E=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bgred@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgred/-/ansi-bgred-0.1.1.tgz#a76f92838382ba43290a6c1778424f984d6f1041"
- integrity sha1-p2+Sg4OCukMpCmwXeEJPmE1vEEE=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bgwhite@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgwhite/-/ansi-bgwhite-0.1.1.tgz#6504651377a58a6ececd0331994e480258e11ba8"
- integrity sha1-ZQRlE3elim7OzQMxmU5IAljhG6g=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bgyellow@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bgyellow/-/ansi-bgyellow-0.1.1.tgz#c3fe2eb08cd476648029e6874d15a0b38f61d44f"
- integrity sha1-w/4usIzUdmSAKeaHTRWgs49h1E8=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-black@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-black/-/ansi-black-0.1.1.tgz#f6185e889360b2545a1ec50c0bf063fc43032453"
- integrity sha1-9hheiJNgslRaHsUMC/Bj/EMDJFM=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-blue@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-blue/-/ansi-blue-0.1.1.tgz#15b804990e92fc9ca8c5476ce8f699777c21edbf"
- integrity sha1-FbgEmQ6S/JyoxUds6PaZd3wh7b8=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-bold@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-bold/-/ansi-bold-0.1.1.tgz#3e63950af5acc2ae2e670e6f67deb115d1a5f505"
- integrity sha1-PmOVCvWswq4uZw5vZ96xFdGl9QU=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-colors@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-0.2.0.tgz#72c31de2a0d9a2ccd0cac30cc9823eeb2f6434b5"
- integrity sha1-csMd4qDZoszQysMMyYI+6y9kNLU=
- dependencies:
- ansi-bgblack "^0.1.1"
- ansi-bgblue "^0.1.1"
- ansi-bgcyan "^0.1.1"
- ansi-bggreen "^0.1.1"
- ansi-bgmagenta "^0.1.1"
- ansi-bgred "^0.1.1"
- ansi-bgwhite "^0.1.1"
- ansi-bgyellow "^0.1.1"
- ansi-black "^0.1.1"
- ansi-blue "^0.1.1"
- ansi-bold "^0.1.1"
- ansi-cyan "^0.1.1"
- ansi-dim "^0.1.1"
- ansi-gray "^0.1.1"
- ansi-green "^0.1.1"
- ansi-grey "^0.1.1"
- ansi-hidden "^0.1.1"
- ansi-inverse "^0.1.1"
- ansi-italic "^0.1.1"
- ansi-magenta "^0.1.1"
- ansi-red "^0.1.1"
- ansi-reset "^0.1.1"
- ansi-strikethrough "^0.1.1"
- ansi-underline "^0.1.1"
- ansi-white "^0.1.1"
- ansi-yellow "^0.1.1"
- lazy-cache "^2.0.1"
-
-ansi-cyan@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873"
- integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-dim@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-dim/-/ansi-dim-0.1.1.tgz#40de4c603aa8086d8e7a86b8ff998d5c36eefd6c"
- integrity sha1-QN5MYDqoCG2Oeoa4/5mNXDbu/Ww=
- dependencies:
- ansi-wrap "0.1.0"
-
ansi-escapes@^4.2.1:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
@@ -2966,62 +2641,6 @@ ansi-escapes@^4.2.1:
dependencies:
type-fest "^0.21.3"
-ansi-gray@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
- integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-green@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-green/-/ansi-green-0.1.1.tgz#8a5d9a979e458d57c40e33580b37390b8e10d0f7"
- integrity sha1-il2al55FjVfEDjNYCzc5C44Q0Pc=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-grey@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-grey/-/ansi-grey-0.1.1.tgz#59d98b6ac2ba19f8a51798e9853fba78339a33c1"
- integrity sha1-WdmLasK6GfilF5jphT+6eDOaM8E=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-hidden@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-hidden/-/ansi-hidden-0.1.1.tgz#ed6a4c498d2bb7cbb289dbf2a8d1dcc8567fae0f"
- integrity sha1-7WpMSY0rt8uyidvyqNHcyFZ/rg8=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-inverse@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-inverse/-/ansi-inverse-0.1.1.tgz#b6af45826fe826bfb528a6c79885794355ccd269"
- integrity sha1-tq9Fgm/oJr+1KKbHmIV5Q1XM0mk=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-italic@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-italic/-/ansi-italic-0.1.1.tgz#104743463f625c142a036739cf85eda688986f23"
- integrity sha1-EEdDRj9iXBQqA2c5z4XtpoiYbyM=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-magenta@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-magenta/-/ansi-magenta-0.1.1.tgz#063b5ba16fb3f23e1cfda2b07c0a89de11e430ae"
- integrity sha1-BjtboW+z8j4c/aKwfAqJ3hHkMK4=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-red@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c"
- integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=
- dependencies:
- ansi-wrap "0.1.0"
-
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -3037,20 +2656,6 @@ ansi-regex@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
-ansi-reset@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-reset/-/ansi-reset-0.1.1.tgz#e7e71292c3c7ddcd4d62ef4a6c7c05980911c3b7"
- integrity sha1-5+cSksPH3c1NYu9KbHwFmAkRw7c=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-strikethrough@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-strikethrough/-/ansi-strikethrough-0.1.1.tgz#d84877140b2cff07d1c93ebce69904f68885e568"
- integrity sha1-2Eh3FAss/wfRyT685pkE9oiF5Wg=
- dependencies:
- ansi-wrap "0.1.0"
-
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -3070,32 +2675,6 @@ ansi-styles@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
-ansi-underline@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-underline/-/ansi-underline-0.1.1.tgz#dfc920f4c97b5977ea162df8ffb988308aaa71a4"
- integrity sha1-38kg9Ml7WXfqFi34/7mIMIqqcaQ=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-white@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-white/-/ansi-white-0.1.1.tgz#9c77b7c193c5ee992e6011d36ec4c921b4578944"
- integrity sha1-nHe3wZPF7pkuYBHTbsTJIbRXiUQ=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-wrap@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
- integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
-
-ansi-yellow@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-yellow/-/ansi-yellow-0.1.1.tgz#cb9356f2f46c732f0e3199e6102955a77da83c1d"
- integrity sha1-y5NW8vRscy8OMZnmEClVp32oPB0=
- dependencies:
- ansi-wrap "0.1.0"
-
any-base@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe"
@@ -3122,18 +2701,6 @@ anymatch@^3.0.3, anymatch@~3.1.1:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-apexcharts@^3.19.2, apexcharts@^3.22.1:
- version "3.27.1"
- resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.27.1.tgz#b0e6dd3b3ace028f29b32fcd88e19a2420a18089"
- integrity sha512-2pfw3pxeWhI0ap5lfxyfGNGoGScfEwfc8XnTpbnzgRdr1AOH5JJN9hh3MvfwrC9TQQfJYC2TZc8P/q9qXUj1bQ==
- 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"
-
arangojs@7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/arangojs/-/arangojs-7.2.0.tgz#e576926b4b3469c5a130cceba45fada8b5f015d1"
@@ -3157,7 +2724,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==
@@ -3204,15 +2771,6 @@ array-flatten@1.1.1:
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-array-sort@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-0.1.4.tgz#662855eaeb671b4188df4451b2f24a0753992b23"
- integrity sha512-BNcM+RXxndPxiZ2rd76k6nyQLRZr2/B/sdi8pQ+Joafr5AH279L40dfokSUTp8O+AaqYjXWhblBWa2st2nc4fQ==
- 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"
@@ -3270,13 +2828,6 @@ async@>=0.6.0:
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
-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"
@@ -3292,13 +2843,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.924.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.924.0.tgz#daefcd11729638d9c9279633a0cc5ba1c98fee64"
@@ -3314,21 +2858,6 @@ aws-sdk@^2.767.0:
uuid "3.3.2"
xml2js "0.4.19"
-aws-sdk@^2.901.0:
- version "2.934.0"
- resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.934.0.tgz#1c26bd8ded15d2f6b2aa3301d35fc5daf1a61d68"
- integrity sha512-k7p08ewrKcbs0ikCLFi9OI98Iv9dMND5244xPxUIjK5BLtuT/9Gr6eSCHfN70eCQyM5Y2xG1VJP6zhpkihu9Ew==
- 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"
@@ -3510,11 +3039,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:
- 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"
@@ -3535,7 +3059,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=
@@ -3580,15 +3104,6 @@ bl@^3.0.0:
dependencies:
readable-stream "^3.0.1"
-bl@^4.0.3:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
- integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
- dependencies:
- buffer "^5.5.0"
- inherits "^2.0.4"
- readable-stream "^3.4.0"
-
bluebird@^3.5.1:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -3948,11 +3463,6 @@ chokidar@^3.2.2:
optionalDependencies:
fsevents "~2.3.1"
-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"
@@ -4141,13 +3651,6 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-with-sourcemaps@*:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
- integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
- dependencies:
- source-map "^0.6.1"
-
configstore@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
@@ -4361,23 +3864,11 @@ 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"
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
-dayjs@^1.10.4, dayjs@^1.10.5:
- version "1.10.5"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.5.tgz#5600df4548fc2453b3f163ebb2abbe965ccfb986"
- integrity sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==
-
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"
@@ -4511,13 +4002,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"
@@ -4787,7 +4271,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==
@@ -4801,11 +4285,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"
@@ -4825,11 +4304,6 @@ error-inject@^1.0.0:
resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=
-error-symbol@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/error-symbol/-/error-symbol-0.1.0.tgz#0a4dae37d600d15a29ba453d8ef920f1844333f6"
- integrity sha1-Ck2uN9YA0VopukU9jvkg8YRDM/Y=
-
es-abstract@^1.17.0-next.0, es-abstract@^1.18.0-next.2:
version "1.18.3"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0"
@@ -5306,13 +4780,6 @@ falafel@^1.0.1:
isarray "0.0.1"
object-keys "^1.0.6"
-"falsey@^0.3.2":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/falsey/-/falsey-0.3.2.tgz#b21c90c5c34660fc192bf909575db95b6880d597"
- integrity sha512-lxEuefF5MBIVDmE6XeqCdM4BWk1+vYmGZtkbKZ/VFcg6uBBw6fXNEbWmxCjDdQlFc9hy450nkiWwM3VAW6G1qg==
- dependencies:
- kind-of "^5.0.2"
-
fast-deep-equal@^3.1.1:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -5529,11 +4996,6 @@ flat-cache@^2.0.1:
rimraf "2.6.3"
write "1.0.3"
-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==
-
flatstr@^1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931"
@@ -5556,18 +5018,11 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
-for-in@^1.0.1, for-in@^1.0.2:
+for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-for-own@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
- integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
- dependencies:
- for-in "^1.0.1"
-
foreach@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
@@ -5640,11 +5095,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"
@@ -5701,14 +5151,6 @@ get-intrinsic@^1.0.2, 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"
@@ -5845,32 +5287,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"
@@ -5916,45 +5332,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.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
-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.0.11, handlebars@^4.7.6:
- 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"
@@ -6043,39 +5420,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"
@@ -6105,14 +5449,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.4.1"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
@@ -6298,11 +5634,6 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-info-symbol@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/info-symbol/-/info-symbol-0.1.0.tgz#27841d72867ddb4242cd612d79c10633881c6a78"
- integrity sha1-J4QdcoZ920JCzWEtecEGM4gcang=
-
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
@@ -6391,22 +5722,6 @@ ioredis@^4.27.0:
redis-parser "^3.0.0"
standard-as-callback "^2.1.0"
-ioredis@^4.27.1:
- version "4.27.6"
- resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.6.tgz#a53d427d3fe75fbd10ed7ad150ce00559df8dcf8"
- integrity sha512-6W3ZHMbpCa8ByMyC1LJGOi7P2WiOKP9B3resoZOVLDhi+6dDBOW+KNsRq3yI36Hmnb2sifCxHX+YSarTeXh48A==
- 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"
- 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"
-
ipaddr.js@1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
@@ -6528,13 +5843,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"
@@ -6620,13 +5928,6 @@ is-number-object@^1.0.4:
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"
integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
-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"
@@ -6634,11 +5935,6 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
-is-number@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
- integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
-
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -6654,13 +5950,6 @@ is-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==
-is-odd@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7"
- integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc=
- dependencies:
- is-number "^3.0.0"
-
is-path-inside@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -6696,13 +5985,6 @@ is-retry-allowed@^1.1.0:
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
-is-self-closing@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4"
- integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg==
- dependencies:
- self-closing-tags "^1.0.1"
-
is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -6776,11 +6058,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"
@@ -7794,22 +7071,6 @@ jsonschema@1.4.0:
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2"
integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==
-jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1:
- version "8.5.1"
- resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
- integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
- dependencies:
- jws "^3.2.2"
- lodash.includes "^4.3.0"
- lodash.isboolean "^3.0.3"
- lodash.isinteger "^4.0.4"
- lodash.isnumber "^3.0.3"
- lodash.isplainobject "^4.0.6"
- lodash.isstring "^4.0.1"
- lodash.once "^4.0.0"
- ms "^2.1.1"
- semver "^5.6.0"
-
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -7849,7 +7110,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==
@@ -7876,7 +7137,7 @@ keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -7890,7 +7151,7 @@ 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==
@@ -7974,13 +7235,6 @@ koa-is-json@^1.0.0:
resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=
-koa-passport@^4.1.4:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa"
- integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg==
- dependencies:
- passport "^0.4.0"
-
koa-pino-logger@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba"
@@ -8062,13 +7316,6 @@ latest-version@^5.0.0:
dependencies:
package-json "^6.3.0"
-lazy-cache@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
- integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=
- dependencies:
- set-getter "^0.1.0"
-
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
@@ -8269,11 +7516,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"
@@ -8289,41 +7531,11 @@ 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.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"
@@ -8334,21 +7546,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"
@@ -8359,21 +7561,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"
@@ -8384,40 +7571,11 @@ lodash.xor@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6"
integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=
-lodash@4.17.21, lodash@4.x, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
+lodash@4.17.21, lodash@4.x, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-ok@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/log-ok/-/log-ok-0.1.1.tgz#bea3dd36acd0b8a7240d78736b5b97c65444a334"
- integrity sha1-vqPdNqzQuKckDXhza1uXxlREozQ=
- dependencies:
- ansi-green "^0.1.1"
- success-symbol "^0.1.0"
-
-log-utils@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/log-utils/-/log-utils-0.2.1.tgz#a4c217a0dd9a50515d9b920206091ab3d4e031cf"
- integrity sha1-pMIXoN2aUFFdm5ICBgkas9TgMc8=
- dependencies:
- ansi-colors "^0.2.0"
- error-symbol "^0.1.0"
- info-symbol "^0.1.0"
- log-ok "^0.1.1"
- success-symbol "^0.1.0"
- time-stamp "^1.0.1"
- warning-symbol "^0.1.0"
-
-logging-helpers@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/logging-helpers/-/logging-helpers-1.0.0.tgz#b5a37b32ad53eb0137c58c7898a47b175ddb7c36"
- integrity sha512-qyIh2goLt1sOgQQrrIWuwkRjUx4NUcEqEGAcYqD8VOnOC6ItwkrVE8/tA4smGpjzyp4Svhc6RodDp9IO5ghpyA==
- dependencies:
- isobject "^3.0.0"
- log-utils "^0.2.1"
-
loose-envify@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -8658,11 +7816,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@1.x, mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
@@ -8682,7 +7835,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==
@@ -8776,11 +7929,6 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
-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"
@@ -8828,11 +7976,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"
@@ -8853,11 +7996,6 @@ node-fetch@^2.6.1:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
-node-forge@^0.7.1:
- version "0.7.6"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
- integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
-
node-gyp-build@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
@@ -8969,11 +8107,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:
- 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"
@@ -9271,84 +8404,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.1.0"
- resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.1.0.tgz#a7de988a211f9cf4687377130ea74df32730c918"
- integrity sha1-p96YiiEfnPRoc3cTDqdN8ycwyRg=
- dependencies:
- oauth "0.9.x"
- passport-strategy "1.x.x"
- utils-merge "1.x.x"
-
-passport-oauth2@1.x.x:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.5.0.tgz#64babbb54ac46a4dcab35e7f266ed5294e3c4108"
- integrity sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ==
- 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"
@@ -9403,11 +8458,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"
@@ -10110,7 +9160,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==
@@ -10244,16 +9294,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"
@@ -10297,21 +9337,6 @@ regjsparser@^0.6.4:
dependencies:
jsesc "~0.5.0"
-relative@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f"
- integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8=
- dependencies:
- isobject "^2.0.0"
-
-remarkable@^1.6.2, remarkable@^1.7.1:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
- integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
- dependencies:
- argparse "^1.0.10"
- autolinker "~0.28.0"
-
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -10343,7 +9368,7 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-"request@>= 2.52.0", request@^2.72.0, request@^2.74.0, request@^2.87.0:
+"request@>= 2.52.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==
@@ -10535,11 +9560,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"
@@ -10576,11 +9596,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"
@@ -10649,13 +9664,6 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-set-getter@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.1.tgz#a3110e1b461d31a9cfc8c5c9ee2e9737ad447102"
- integrity sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==
- dependencies:
- to-object-path "^0.3.0"
-
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -10721,13 +9729,6 @@ shell-path@^2.1.0:
dependencies:
shell-env "^0.3.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"
-
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -11027,11 +10028,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"
@@ -11157,11 +10153,6 @@ strip-outer@^1.0.0:
dependencies:
escape-string-regexp "^1.0.2"
-striptags@^3.1.0:
- 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"
@@ -11172,11 +10163,6 @@ sublevel-pouchdb@7.2.2:
ltgt "2.2.1"
readable-stream "1.1.14"
-success-symbol@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/success-symbol/-/success-symbol-0.1.0.tgz#24022e486f3bf1cdca094283b769c472d3b72897"
- integrity sha1-JAIuSG878c3KCUKDt2nEctO3KJc=
-
superagent@^3.8.3:
version "3.8.3"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128"
@@ -11237,92 +10223,11 @@ 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-flatpickr@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/svelte-flatpickr/-/svelte-flatpickr-3.1.1.tgz#c79da72a4acab252ed39bac8168f30f79db3ff80"
- integrity sha512-z/sV/AMTqyybeWPCjoWYUOyuMmu9qX2c2f2cRqYos9K9sM5L3CqagtvfVy7GZQrnEYe+K7l/gGDCAyxJNp2+gA==
- dependencies:
- flatpickr "^4.5.2"
-
-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==
-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.2, symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
@@ -11338,16 +10243,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"
@@ -11361,17 +10256,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"
@@ -11501,11 +10385,6 @@ tildify@2.0.0:
resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a"
integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==
-time-stamp@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
- integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
-
timed-out@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
@@ -11548,11 +10427,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"
@@ -11755,28 +10629,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.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"
integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==
-uglify-js@^3.1.4:
- version "3.13.9"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b"
- integrity sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==
-
-uid2@0.0.x:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
- integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
-
unbox-primitive@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
@@ -11963,7 +10820,7 @@ util.promisify@^1.0.0, util.promisify@^1.0.1:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
-utils-merge@1.0.1, utils-merge@1.x.x:
+utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
@@ -11988,7 +10845,7 @@ uuid@^3.1.0, uuid@^3.2.1, 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.2:
+uuid@^8.3.0:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
@@ -12060,11 +10917,6 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.x"
-warning-symbol@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/warning-symbol/-/warning-symbol-0.1.0.tgz#bb31dd11b7a0f9d67ab2ed95f457b65825bbad21"
- integrity sha1-uzHdEbeg+dZ6su2V9Fe2WCW7rSE=
-
webidl-conversions@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
@@ -12161,11 +11013,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"
@@ -12409,11 +11256,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"
@@ -12424,7 +11266,7 @@ yn@3.1.1:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-zlib@1.0.5, zlib@^1.0.5:
+zlib@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0"
integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA=
diff --git a/packages/standard-components/manifest.json b/packages/standard-components/manifest.json
index 28b82fe67..be66a4ce8 100644
--- a/packages/standard-components/manifest.json
+++ b/packages/standard-components/manifest.json
@@ -73,13 +73,13 @@
{
"label": "Column",
"value": "column",
- "barIcon": "ViewRow",
+ "barIcon": "ViewColumn",
"barTitle": "Column layout"
},
{
"label": "Row",
"value": "row",
- "barIcon": "ViewColumn",
+ "barIcon": "ViewRow",
"barTitle": "Row layout"
}
],
@@ -230,7 +230,8 @@
"screenslot": {
"name": "Screenslot",
"icon": "WebPage",
- "description": "Contains your app screens"
+ "description": "Contains your app screens",
+ "editable": false
},
"button": {
"name": "Button",
@@ -290,6 +291,11 @@
],
"defaultValue": "M"
},
+ {
+ "type": "boolean",
+ "label": "Quiet",
+ "key": "quiet"
+ },
{
"type": "boolean",
"label": "Disabled",
@@ -448,6 +454,7 @@
}
},
"stackedlist": {
+ "deprecated": true,
"name": "Stacked List",
"icon": "TaskList",
"description": "A basic card component that can contain content and actions.",
@@ -811,30 +818,29 @@
"type": "select",
"label": "Size",
"key": "size",
- "defaultValue": "md",
+ "defaultValue": "ri-1x",
"options": [
- { "value": "ri-xxs", "label": "xxs" },
- { "value": "ri-xs", "label": "xs" },
- { "value": "ri-sm", "label": "sm" },
- { "value": "ri-1x", "label": "md" },
- { "value": "ri-lg", "label": "lg" },
- { "value": "ri-xl", "label": "xl" },
- { "value": "ri-2x", "label": "2x" },
- { "value": "ri-3x", "label": "3x" },
- { "value": "ri-4x", "label": "4x" },
- { "value": "ri-5x", "label": "5x" },
- { "value": "ri-6x", "label": "6x" },
- { "value": "ri-7x", "label": "7x" },
- { "value": "ri-8x", "label": "8x" },
- { "value": "ri-9x", "label": "9x" },
- { "value": "ri-10x", "label": "10x" }
+ { "value": "ri-xxs", "label": "XXS" },
+ { "value": "ri-xs", "label": "XS" },
+ { "value": "ri-sm", "label": "Small" },
+ { "value": "ri-1x", "label": "Medium" },
+ { "value": "ri-lg", "label": "Large" },
+ { "value": "ri-xl", "label": "XL" },
+ { "value": "ri-2x", "label": "2XL" },
+ { "value": "ri-3x", "label": "3XL" },
+ { "value": "ri-4x", "label": "4XL" },
+ { "value": "ri-5x", "label": "5XL" },
+ { "value": "ri-6x", "label": "6XL" },
+ { "value": "ri-7x", "label": "7XL" },
+ { "value": "ri-8x", "label": "8XL" },
+ { "value": "ri-9x", "label": "9XL" },
+ { "value": "ri-10x", "label": "10XL" }
]
},
{
"type": "color",
"label": "Color",
- "key": "color",
- "defaultValue": "#000"
+ "key": "color"
},
{
"type": "event",
@@ -844,6 +850,7 @@
]
},
"navigation": {
+ "deprecated": true,
"name": "Nav Bar",
"description": "A component for handling the navigation within your app.",
"icon": "BreadcrumbNavigation",
@@ -876,7 +883,7 @@
"key": "text"
},
{
- "type": "text",
+ "type": "url",
"label": "URL",
"key": "url",
"placeholder": "/screen"
@@ -1638,6 +1645,7 @@
"actions": [
"ValidateForm"
],
+ "styles": ["size"],
"settings": [
{
"type": "select",
@@ -1651,46 +1659,6 @@
"label": "Schema",
"key": "dataSource"
},
- {
- "type": "select",
- "label": "Theme",
- "key": "theme",
- "defaultValue": "spectrum--light",
- "options": [
- {
- "label": "Lightest",
- "value": "spectrum--lightest"
- },
- {
- "label": "Light",
- "value": "spectrum--light"
- },
- {
- "label": "Dark",
- "value": "spectrum--dark"
- },
- {
- "label": "Darkest",
- "value": "spectrum--darkest"
- }
- ]
- },
- {
- "type": "select",
- "label": "Size",
- "key": "size",
- "defaultValue": "spectrum--medium",
- "options": [
- {
- "label": "Medium",
- "value": "spectrum--medium"
- },
- {
- "label": "Large",
- "value": "spectrum--large"
- }
- ]
- },
{
"type": "boolean",
"label": "Disabled",
@@ -2067,46 +2035,6 @@
"key": "rowCount",
"defaultValue": 8
},
- {
- "type": "select",
- "label": "Theme",
- "key": "theme",
- "defaultValue": "spectrum--light",
- "options": [
- {
- "label": "Lightest",
- "value": "spectrum--lightest"
- },
- {
- "label": "Light",
- "value": "spectrum--light"
- },
- {
- "label": "Dark",
- "value": "spectrum--dark"
- },
- {
- "label": "Darkest",
- "value": "spectrum--darkest"
- }
- ]
- },
- {
- "type": "select",
- "label": "Size",
- "key": "size",
- "defaultValue": "spectrum--medium",
- "options": [
- {
- "label": "Medium",
- "value": "spectrum--medium"
- },
- {
- "label": "Large",
- "value": "spectrum--large"
- }
- ]
- },
{
"type": "multifield",
"label": "Columns",
@@ -2161,5 +2089,42 @@
"defaultValue": "Last 30 days"
}
]
+ },
+ "spectrumcard": {
+ "name": "Card",
+ "icon": "Card",
+ "styles": ["size"],
+ "settings": [
+ {
+ "type": "text",
+ "key": "title",
+ "label": "Title"
+ },
+ {
+ "type": "text",
+ "key": "subtitle",
+ "label": "Subtitle"
+ },
+ {
+ "type": "text",
+ "key": "description",
+ "label": "Description"
+ },
+ {
+ "type": "text",
+ "key": "imageURL",
+ "label": "Image URL"
+ },
+ {
+ "type": "url",
+ "key": "linkURL",
+ "label": "Link URL"
+ },
+ {
+ "type": "boolean",
+ "key": "horizontal",
+ "label": "Horizontal"
+ }
+ ]
}
}
diff --git a/packages/standard-components/package.json b/packages/standard-components/package.json
index 526800443..0e9ab7869 100644
--- a/packages/standard-components/package.json
+++ b/packages/standard-components/package.json
@@ -29,13 +29,15 @@
"keywords": [
"svelte"
],
- "version": "0.9.70",
+ "version": "0.9.71",
"license": "MIT",
"gitHead": "d1836a898cab3f8ab80ee6d8f42be1a9eed7dcdc",
"dependencies": {
- "@budibase/bbui": "^0.9.70",
+ "@budibase/bbui": "^0.9.71",
+ "@spectrum-css/card": "^3.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",
diff --git a/packages/standard-components/src/Button.svelte b/packages/standard-components/src/Button.svelte
index 3086fe95c..22cc286bf 100644
--- a/packages/standard-components/src/Button.svelte
+++ b/packages/standard-components/src/Button.svelte
@@ -9,10 +9,12 @@
export let onClick
export let size = "M"
export let type = "primary"
+ export let quiet = false
import { getContext } from "svelte"
+ import "@spectrum-css/typography/dist/index-vars.css"
const { styleable, builderStore } = getContext("sdk")
const component = getContext("component")
@@ -14,8 +15,10 @@
$: placeholder = $builderStore.inBuilder && !text
$: componentText = $builderStore.inBuilder
- ? text || "Placeholder text"
+ ? text || $component.name || "Placeholder text"
: text || ""
+ $: sizeClass = `spectrum-Heading--size${size || "M"}`
+ $: alignClass = `align--${align || "left"}`
// Add color styles to main styles object, otherwise the styleable helper
// overrides the color when it's passed as inline style.
@@ -41,25 +44,19 @@
class:bold
class:italic
class:underline
- class="align--{align || 'left'} size--{size || 'M'}"
+ class="spectrum-Heading {sizeClass} {alignClass}"
>
- {#if bold}
- {componentText}
- {:else}
- {componentText}
- {/if}
+ {componentText}
diff --git a/packages/standard-components/src/Layout.svelte b/packages/standard-components/src/Layout.svelte
index 19a840469..df0bd1952 100644
--- a/packages/standard-components/src/Layout.svelte
+++ b/packages/standard-components/src/Layout.svelte
@@ -125,6 +125,7 @@
overflow: auto;
overflow-x: hidden;
position: relative;
+ background: var(--spectrum-alias-background-color-secondary);
}
.nav-wrapper {
@@ -132,9 +133,10 @@
flex-direction: row;
justify-content: center;
align-items: stretch;
- background: white;
+ background: var(--spectrum-alias-background-color-primary);
z-index: 2;
- box-shadow: 0 0 8px -1px rgba(0, 0, 0, 0.075);
+ border-bottom: 1px solid var(--spectrum-global-color-gray-300);
+ box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.05);
}
.layout--top .nav-wrapper.sticky {
position: sticky;
@@ -312,7 +314,7 @@
transition: transform 0.26s ease-in-out, opacity 0.26s ease-in-out;
height: 100vh;
opacity: 0;
- background: white;
+ background: var(--spectrum-alias-background-color-secondary);
z-index: 999;
flex-direction: column;
justify-content: flex-start;
@@ -326,7 +328,8 @@
.links.visible {
opacity: 1;
transform: translateX(250px);
- box-shadow: 0 0 40px 20px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0 80px 20px rgba(0, 0, 0, 0.2);
+ border-right: 1px solid var(--spectrum-global-color-gray-300);
}
.mobile-click-handler.visible {
position: fixed;
diff --git a/packages/standard-components/src/Link.svelte b/packages/standard-components/src/Link.svelte
index d58d75f5c..7498311e4 100644
--- a/packages/standard-components/src/Link.svelte
+++ b/packages/standard-components/src/Link.svelte
@@ -74,12 +74,15 @@
diff --git a/packages/standard-components/src/Repeater.svelte b/packages/standard-components/src/Repeater.svelte
index b7db019c0..79f044f40 100644
--- a/packages/standard-components/src/Repeater.svelte
+++ b/packages/standard-components/src/Repeater.svelte
@@ -33,7 +33,7 @@
diff --git a/packages/standard-components/src/ScreenSlot.svelte b/packages/standard-components/src/ScreenSlot.svelte
index 724f228c7..f6c2387cf 100644
--- a/packages/standard-components/src/ScreenSlot.svelte
+++ b/packages/standard-components/src/ScreenSlot.svelte
@@ -30,6 +30,6 @@
}
span {
font-size: var(--font-size-s);
- color: var(--grey-6);
+ color: var(--spectrum-global-color-gray-600);
}
diff --git a/packages/standard-components/src/Section.svelte b/packages/standard-components/src/Section.svelte
index 9557f43e8..5bd3364b9 100644
--- a/packages/standard-components/src/Section.svelte
+++ b/packages/standard-components/src/Section.svelte
@@ -67,7 +67,7 @@
grid-template-columns: 1fr 1fr;
}
.placeholder {
- border: 2px dashed var(--grey-5);
+ border: 2px dashed var(--spectrum-global-color-gray-600);
padding: var(--spacing-l);
}
diff --git a/packages/standard-components/src/SpectrumCard.svelte b/packages/standard-components/src/SpectrumCard.svelte
new file mode 100644
index 000000000..5a2596bd2
--- /dev/null
+++ b/packages/standard-components/src/SpectrumCard.svelte
@@ -0,0 +1,119 @@
+
+
+
+ {#if imageURL}
+
+ {/if}
+
+
+
+ {#if subtitle}
+
+ {/if}
+
+ {#if description}
+
+ {/if}
+
+
+
+
diff --git a/packages/standard-components/src/Text.svelte b/packages/standard-components/src/Text.svelte
index cc962b572..ff35eeb38 100644
--- a/packages/standard-components/src/Text.svelte
+++ b/packages/standard-components/src/Text.svelte
@@ -14,7 +14,7 @@
$: placeholder = $builderStore.inBuilder && !text
$: componentText = $builderStore.inBuilder
- ? text || "Placeholder text"
+ ? text || $component.name || "Placeholder text"
: text || ""
// Add color styles to main styles object, otherwise the styleable helper
@@ -54,7 +54,7 @@
}
.placeholder {
font-style: italic;
- color: var(--grey-6);
+ color: var(--spectrum-global-color-gray-600);
}
.bold {
font-weight: 600;
diff --git a/packages/standard-components/src/charts/ApexChart.svelte b/packages/standard-components/src/charts/ApexChart.svelte
index 4782ecb86..173bfd8c6 100644
--- a/packages/standard-components/src/charts/ApexChart.svelte
+++ b/packages/standard-components/src/charts/ApexChart.svelte
@@ -23,6 +23,16 @@
text-transform: capitalize;
}
div :global(.apexcharts-yaxis-label, .apexcharts-xaxis-label) {
- fill: #aaa;
+ fill: var(--spectrum-global-color-gray-600);
+ }
+
+ div :global(.apexcharts-gridline) {
+ stroke: var(--spectrum-global-color-gray-600);
+ }
+ div :global(.apexcharts-legend-text) {
+ color: var(--spectrum-global-color-gray-700) !important;
+ }
+ div :global(.apexcharts-datalabel) {
+ fill: var(--spectrum-global-color-gray-800);
}
diff --git a/packages/standard-components/src/Card.svelte b/packages/standard-components/src/deprecated/Card.svelte
similarity index 100%
rename from packages/standard-components/src/Card.svelte
rename to packages/standard-components/src/deprecated/Card.svelte
diff --git a/packages/standard-components/src/CardHorizontal.svelte b/packages/standard-components/src/deprecated/CardHorizontal.svelte
similarity index 100%
rename from packages/standard-components/src/CardHorizontal.svelte
rename to packages/standard-components/src/deprecated/CardHorizontal.svelte
diff --git a/packages/standard-components/src/Navigation.svelte b/packages/standard-components/src/deprecated/Navigation.svelte
similarity index 100%
rename from packages/standard-components/src/Navigation.svelte
rename to packages/standard-components/src/deprecated/Navigation.svelte
diff --git a/packages/standard-components/src/StackedList.svelte b/packages/standard-components/src/deprecated/StackedList.svelte
similarity index 100%
rename from packages/standard-components/src/StackedList.svelte
rename to packages/standard-components/src/deprecated/StackedList.svelte
diff --git a/packages/standard-components/src/forms/InnerForm.svelte b/packages/standard-components/src/forms/InnerForm.svelte
index b2a174629..3a63b63bd 100644
--- a/packages/standard-components/src/forms/InnerForm.svelte
+++ b/packages/standard-components/src/forms/InnerForm.svelte
@@ -5,8 +5,6 @@
import { generateID } from "../helpers"
export let dataSource
- export let theme
- export let size
export let disabled = false
export let initialValues
@@ -160,24 +158,9 @@
{actions}
data={{ ...$formState.values, tableId: dataSource?.tableId }}
>
-
+
{#if loaded}
{/if}
-
-
diff --git a/packages/standard-components/src/index.js b/packages/standard-components/src/index.js
index 2a2c763d2..a137c8c3d 100644
--- a/packages/standard-components/src/index.js
+++ b/packages/standard-components/src/index.js
@@ -20,20 +20,23 @@ export { default as dataprovider } from "./DataProvider.svelte"
export { default as screenslot } from "./ScreenSlot.svelte"
export { default as button } from "./Button.svelte"
export { default as repeater } from "./Repeater.svelte"
-export { default as stackedlist } from "./StackedList.svelte"
-export { default as card } from "./Card.svelte"
export { default as text } from "./Text.svelte"
-export { default as navigation } from "./Navigation.svelte"
export { default as layout } from "./Layout.svelte"
export { default as link } from "./Link.svelte"
export { default as heading } from "./Heading.svelte"
export { default as image } from "./Image.svelte"
export { default as embed } from "./Embed.svelte"
-export { default as cardhorizontal } from "./CardHorizontal.svelte"
-export { default as cardstat } from "./CardStat.svelte"
export { default as icon } from "./Icon.svelte"
export { default as backgroundimage } from "./BackgroundImage.svelte"
export { default as daterangepicker } from "./DateRangePicker.svelte"
+export { default as cardstat } from "./CardStat.svelte"
+export { default as spectrumcard } from "./SpectrumCard.svelte"
export * from "./charts"
export * from "./forms"
export * from "./table"
+
+// Deprecated component left for compatibility in old apps
+export { default as navigation } from "./deprecated/Navigation.svelte"
+export { default as cardhorizontal } from "./deprecated/CardHorizontal.svelte"
+export { default as stackedlist } from "./deprecated/StackedList.svelte"
+export { default as card } from "./deprecated/Card.svelte"
diff --git a/packages/standard-components/src/lucene.js b/packages/standard-components/src/lucene.js
index 8cbd1ea0f..91c69dfda 100644
--- a/packages/standard-components/src/lucene.js
+++ b/packages/standard-components/src/lucene.js
@@ -13,9 +13,12 @@ export const buildLuceneQuery = filter => {
notEmpty: {},
}
if (Array.isArray(filter)) {
- // Build up proper range filters
filter.forEach(expression => {
- const { operator, field, type, value } = expression
+ let { operator, field, type, value } = expression
+ // Ensure date fields are transformed into ISO strings
+ if (type === "datetime" && value) {
+ value = new Date(value).toISOString()
+ }
if (operator.startsWith("range")) {
if (!query.range[field]) {
query.range[field] = {
diff --git a/packages/standard-components/src/table/Table.svelte b/packages/standard-components/src/table/Table.svelte
index ad3fb46d5..3620146ce 100644
--- a/packages/standard-components/src/table/Table.svelte
+++ b/packages/standard-components/src/table/Table.svelte
@@ -3,8 +3,6 @@
import { Table } from "@budibase/bbui"
import SlotRenderer from "./SlotRenderer.svelte"
- export let theme
- export let size
export let dataProvider
export let columns
export let showAutoColumns
@@ -73,12 +71,7 @@
}
-