From c1b30a6d8c9bce61c8ca2f808d3a4cb7e65342b4 Mon Sep 17 00:00:00 2001 From: Adam Sparks Date: Wed, 9 Jun 2021 14:12:34 -0500 Subject: [PATCH 01/38] match url whitelist to domain (#5694) * match url whitelist to domain * Improve url-domain check * Update lockfile Co-authored-by: rijkvanzanten --- api/src/services/users.ts | 9 +++------ api/src/utils/is-url-allowed.ts | 29 +++++++++++++++++++++++++++++ package-lock.json | 2 +- 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 api/src/utils/is-url-allowed.ts diff --git a/api/src/services/users.ts b/api/src/services/users.ts index 667d14a942..a8f0ece3a5 100644 --- a/api/src/services/users.ts +++ b/api/src/services/users.ts @@ -14,6 +14,7 @@ import { import { RecordNotUniqueException } from '../exceptions/database/record-not-unique'; import logger from '../logger'; import { AbstractServiceOptions, Accountability, Item, PrimaryKey, Query, SchemaOverview } from '../types'; +import isUrlAllowed from '../utils/is-url-allowed'; import { toArray } from '../utils/to-array'; import { AuthenticationService } from './authentication'; import { ItemsService, MutationOptions } from './items'; @@ -226,9 +227,7 @@ export class UsersService extends ItemsService { async inviteUser(email: string | string[], role: string, url: string | null, subject?: string | null): Promise { const emails = toArray(email); - const urlWhitelist = toArray(env.USER_INVITE_URL_ALLOW_LIST); - - if (url && urlWhitelist.includes(url) === false) { + if (url && isUrlAllowed(url, env.USER_INVITE_URL_ALLOW_LIST) === false) { throw new InvalidPayloadException(`Url "${url}" can't be used to invite users.`); } @@ -305,9 +304,7 @@ export class UsersService extends ItemsService { const payload = { email, scope: 'password-reset' }; const token = jwt.sign(payload, env.SECRET as string, { expiresIn: '1d' }); - const urlWhitelist = toArray(env.PASSWORD_RESET_URL_ALLOW_LIST); - - if (url && urlWhitelist.includes(url) === false) { + if (url && isUrlAllowed(url, env.PASSWORD_RESET_URL_ALLOW_LIST) === false) { throw new InvalidPayloadException(`Url "${url}" can't be used to reset passwords.`); } diff --git a/api/src/utils/is-url-allowed.ts b/api/src/utils/is-url-allowed.ts new file mode 100644 index 0000000000..52a9018914 --- /dev/null +++ b/api/src/utils/is-url-allowed.ts @@ -0,0 +1,29 @@ +import { toArray } from './to-array'; +import logger from '../logger'; + +/** + * Check if url matches allow list either exactly or by domain+path + */ +export default function isUrlAllowed(url: string, allowList: string | string[]): boolean { + console.log(url, allowList); + + const urlAllowList = toArray(allowList); + + if (urlAllowList.includes(url)) return true; + + const parsedWhitelist = urlAllowList.map((allowedURL) => { + try { + const { hostname, pathname } = new URL(allowedURL); + return hostname + pathname; + } catch { + logger.warn(`Invalid URL used "${url}"`); + } + }); + + try { + const { hostname, pathname } = new URL(url); + return parsedWhitelist.includes(hostname + pathname); + } catch { + return false; + } +} diff --git a/package-lock.json b/package-lock.json index c856f8944b..88741248bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72848,7 +72848,7 @@ "keyv": "^4.0.3", "keyv-memcache": "^1.2.5", "knex": "^0.95.6", - "knex-schema-inspector": "^1.5.6", + "knex-schema-inspector": "^1.5.7", "liquidjs": "^9.25.0", "lodash": "^4.17.21", "macos-release": "^2.4.1", From b5abb0fb20f1f8984ce506ea45727ddd8e5621e3 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Wed, 9 Jun 2021 16:39:03 -0400 Subject: [PATCH 02/38] New translations en-US.yaml (Spanish) (#6164) --- app/src/lang/translations/es-ES.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/lang/translations/es-ES.yaml b/app/src/lang/translations/es-ES.yaml index 91990a571e..af3c6b1e3a 100644 --- a/app/src/lang/translations/es-ES.yaml +++ b/app/src/lang/translations/es-ES.yaml @@ -932,8 +932,8 @@ interfaces: input-hash: hash: Hash description: Introduzca un valor para ser cifrado - masked: Cifrado - masked_label: Ocultar los verdaderos valores + masked: Enmascarado + masked_label: Ocultar los valores reales select-icon: icon: Ícono description: Seleccione un ícono de la lista desplegable @@ -983,7 +983,7 @@ interfaces: alphabetize_label: Forzar Orden Alfabético add_tags: Agregar etiquetas... input: - mask: Cifrado + mask: Enmascarado boolean: toggle: Alternar label_default: Habilitado From fb908efe8ff2d435f962152d84ab383bfc323488 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Wed, 9 Jun 2021 17:02:47 -0400 Subject: [PATCH 03/38] Cleanup one_allowed_collections field on collection delete (#6167) Fixes #6161 --- api/src/services/collections.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/api/src/services/collections.ts b/api/src/services/collections.ts index 0c136e6306..6ed9c097df 100644 --- a/api/src/services/collections.ts +++ b/api/src/services/collections.ts @@ -399,6 +399,19 @@ export class CollectionsService { } } + const m2aRelationsThatIncludeThisCollection = this.schema.relations.filter((relation) => { + return relation.meta?.one_allowed_collections?.includes(collectionKey); + }); + + for (const relation of m2aRelationsThatIncludeThisCollection) { + const newAllowedCollections = relation + .meta!.one_allowed_collections!.filter((collection) => collectionKey !== collection) + .join(','); + await trx('directus_relations') + .update({ one_allowed_collections: newAllowedCollections }) + .where({ id: relation.meta!.id }); + } + await collectionItemsService.deleteOne(collectionKey); await trx.schema.dropTable(collectionKey); }); From c2c57ef567543b88e836fa7de986d696c2d94b0b Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Wed, 9 Jun 2021 17:14:56 -0400 Subject: [PATCH 04/38] Show better message for improperly formatted emails (#6168) Closes #6115 --- .../routes/login/components/login-form/login-form.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/routes/login/components/login-form/login-form.vue b/app/src/routes/login/components/login-form/login-form.vue index 360d950c60..63f97dd402 100644 --- a/app/src/routes/login/components/login-form/login-form.vue +++ b/app/src/routes/login/components/login-form/login-form.vue @@ -47,7 +47,7 @@ export default defineComponent({ const loggingIn = ref(false); const email = ref(null); const password = ref(null); - const error = ref(null); + const error = ref(null); const otp = ref(null); const requiresTFA = ref(false); const userStore = useUserStore(); @@ -57,6 +57,11 @@ export default defineComponent({ }); const errorFormatted = computed(() => { + // Show "Wrong username or password" for wrongly formatted emails as well + if (error.value === 'INVALID_PAYLOAD') { + return translateAPIError('INVALID_CREDENTIALS'); + } + if (error.value) { return translateAPIError(error.value); } @@ -89,7 +94,7 @@ export default defineComponent({ if (err.response?.data?.errors?.[0]?.extensions?.code === 'INVALID_OTP' && requiresTFA.value === false) { requiresTFA.value = true; } else { - error.value = err; + error.value = err.response?.data?.errors?.[0]?.extensions?.code || err; } } finally { loggingIn.value = false; From 61f66eaf5d50b9435b650d7213de5ddd7edcf9fd Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Wed, 9 Jun 2021 17:26:00 -0400 Subject: [PATCH 05/38] Fix m2m relationship not showing current col/pk --- .../data-model/field-detail/components/relationship-m2m.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue b/app/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue index d488e9a5e6..2c0ea490e0 100644 --- a/app/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue +++ b/app/src/modules/settings/routes/data-model/field-detail/components/relationship-m2m.vue @@ -3,7 +3,7 @@
{{ t('this_collection') }}
- +
{{ t('junction_collection') }}
@@ -126,7 +126,7 @@
- + Date: Wed, 9 Jun 2021 17:31:50 -0400 Subject: [PATCH 06/38] Don't initialize mailer on startup (#6169) * Fix m2m relationship not showing current col/pk * Don't initialize mailer on first boot Another step to serverless! --- api/src/mailer.ts | 85 ++++++++++++++++------------------ api/src/services/mail/index.ts | 17 +++++-- api/src/services/server.ts | 6 ++- 3 files changed, 55 insertions(+), 53 deletions(-) diff --git a/api/src/mailer.ts b/api/src/mailer.ts index 1926768058..9a664e6d08 100644 --- a/api/src/mailer.ts +++ b/api/src/mailer.ts @@ -2,54 +2,47 @@ import nodemailer, { Transporter } from 'nodemailer'; import env from './env'; import logger from './logger'; -let transporter: Transporter | null = null; +let transporter: Transporter; -if (env.EMAIL_TRANSPORT === 'sendmail') { - transporter = nodemailer.createTransport({ - sendmail: true, - newline: env.EMAIL_SENDMAIL_NEW_LINE || 'unix', - path: env.EMAIL_SENDMAIL_PATH || '/usr/sbin/sendmail', - }); -} else if (env.EMAIL_TRANSPORT.toLowerCase() === 'smtp') { - let auth: boolean | { user?: string; pass?: string } = false; +export default function getMailer(): Transporter { + if (transporter) return transporter; - if (env.EMAIL_SMTP_USER || env.EMAIL_SMTP_PASSWORD) { - auth = { - user: env.EMAIL_SMTP_USER, - pass: env.EMAIL_SMTP_PASSWORD, - }; + if (env.EMAIL_TRANSPORT === 'sendmail') { + transporter = nodemailer.createTransport({ + sendmail: true, + newline: env.EMAIL_SENDMAIL_NEW_LINE || 'unix', + path: env.EMAIL_SENDMAIL_PATH || '/usr/sbin/sendmail', + }); + } else if (env.EMAIL_TRANSPORT.toLowerCase() === 'smtp') { + let auth: boolean | { user?: string; pass?: string } = false; + + if (env.EMAIL_SMTP_USER || env.EMAIL_SMTP_PASSWORD) { + auth = { + user: env.EMAIL_SMTP_USER, + pass: env.EMAIL_SMTP_PASSWORD, + }; + } + + transporter = nodemailer.createTransport({ + pool: env.EMAIL_SMTP_POOL, + host: env.EMAIL_SMTP_HOST, + port: env.EMAIL_SMTP_PORT, + secure: env.EMAIL_SMTP_SECURE, + auth: auth, + } as Record); + } else if (env.EMAIL_TRANSPORT.toLowerCase() === 'mailgun') { + const mg = require('nodemailer-mailgun-transport'); + transporter = nodemailer.createTransport( + mg({ + auth: { + api_key: env.EMAIL_MAILGUN_API_KEY, + domain: env.EMAIL_MAILGUN_DOMAIN, + }, + }) as any + ); + } else { + logger.warn('Illegal transport given for email. Check the EMAIL_TRANSPORT env var.'); } - transporter = nodemailer.createTransport({ - pool: env.EMAIL_SMTP_POOL, - host: env.EMAIL_SMTP_HOST, - port: env.EMAIL_SMTP_PORT, - secure: env.EMAIL_SMTP_SECURE, - auth: auth, - } as Record); -} else if (env.EMAIL_TRANSPORT.toLowerCase() === 'mailgun') { - const mg = require('nodemailer-mailgun-transport'); - transporter = nodemailer.createTransport( - mg({ - auth: { - api_key: env.EMAIL_MAILGUN_API_KEY, - domain: env.EMAIL_MAILGUN_DOMAIN, - }, - }) as any - ); -} else { - logger.warn('Illegal transport given for email. Check the EMAIL_TRANSPORT env var.'); + return transporter; } - -if (transporter) { - transporter.verify((error) => { - if (error) { - logger.warn(`Couldn't connect to email server.`); - logger.warn(`Email verification error: ${error}`); - } else { - logger.info(`Email connection established`); - } - }); -} - -export default transporter; diff --git a/api/src/services/mail/index.ts b/api/src/services/mail/index.ts index 8cd29da5d4..4569a5870e 100644 --- a/api/src/services/mail/index.ts +++ b/api/src/services/mail/index.ts @@ -7,8 +7,8 @@ import env from '../../env'; import { InvalidPayloadException } from '../../exceptions'; import logger from '../../logger'; import { AbstractServiceOptions, Accountability, SchemaOverview } from '../../types'; -import mailer from '../../mailer'; -import { SendMailOptions } from 'nodemailer'; +import getMailer from '../../mailer'; +import { Transporter, SendMailOptions } from 'nodemailer'; const liquidEngine = new Liquid({ root: [path.resolve(env.EXTENSIONS_PATH, 'templates'), path.resolve(__dirname, 'templates')], @@ -26,16 +26,23 @@ export class MailService { schema: SchemaOverview; accountability: Accountability | null; knex: Knex; + mailer: Transporter; constructor(opts: AbstractServiceOptions) { this.schema = opts.schema; this.accountability = opts.accountability || null; this.knex = opts?.knex || getDatabase(); + this.mailer = getMailer(); + + this.mailer.verify((error) => { + if (error) { + logger.warn(`Email connection failed:`); + logger.warn(error); + } + }); } async send(options: EmailOptions): Promise { - if (!mailer) return; - const { template, ...emailOptions } = options; let { html } = options; @@ -55,7 +62,7 @@ export class MailService { } try { - await mailer.sendMail({ ...emailOptions, from, html }); + await this.mailer.sendMail({ ...emailOptions, from, html }); } catch (error) { logger.warn('[Email] Unexpected error while sending an email:'); logger.warn(error); diff --git a/api/src/services/server.ts b/api/src/services/server.ts index 20129a3742..2bf4ef5913 100644 --- a/api/src/services/server.ts +++ b/api/src/services/server.ts @@ -14,7 +14,7 @@ import { rateLimiter } from '../middleware/rate-limiter'; import storage from '../storage'; import { AbstractServiceOptions, Accountability, SchemaOverview } from '../types'; import { toArray } from '../utils/to-array'; -import mailer from '../mailer'; +import getMailer from '../mailer'; import { SettingsService } from './settings'; export class ServerService { @@ -316,8 +316,10 @@ export class ServerService { ], }; + const mailer = getMailer(); + try { - await mailer?.verify(); + await mailer.verify(); } catch (err) { checks['email:connection'][0].status = 'error'; checks['email:connection'][0].output = err; From 094819acb7dc7ede265bc95961fad3eef090793e Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Wed, 9 Jun 2021 17:46:22 -0400 Subject: [PATCH 07/38] Fix styling of list-rows --- app/src/components/v-list/v-list-item.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/components/v-list/v-list-item.vue b/app/src/components/v-list/v-list-item.vue index 8dabfade3b..e98d1f8d14 100644 --- a/app/src/components/v-list/v-list-item.vue +++ b/app/src/components/v-list/v-list-item.vue @@ -204,7 +204,7 @@ body { border-radius: var(--border-radius); transition: border-color var(--fast) var(--transition); - .v-icon { + :slotted(.v-icon) { color: var(--foreground-subdued); &:hover { @@ -212,15 +212,15 @@ body { } } - .drag-handle { + :slotted(.drag-handle) { cursor: grab; } - .drag-handle:active { + :slotted(.drag-handle:active) { cursor: grabbing; } - .spacer { + :slotted(.spacer) { flex-grow: 1; } From 8ac6c44c95cb4027c736909cb7c2aced3b253f1c Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Wed, 9 Jun 2021 17:48:54 -0400 Subject: [PATCH 08/38] Align styling of list-m2m list-o2m --- app/src/interfaces/list-m2m/list-m2m.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/interfaces/list-m2m/list-m2m.vue b/app/src/interfaces/list-m2m/list-m2m.vue index ef2ad39334..3ab835a580 100644 --- a/app/src/interfaces/list-m2m/list-m2m.vue +++ b/app/src/interfaces/list-m2m/list-m2m.vue @@ -312,10 +312,10 @@ export default defineComponent({ } .actions { - margin-top: 12px; + margin-top: 8px; .v-button + .v-button { - margin-left: 12px; + margin-left: 8px; } } From 927b9f8cc20037be91d3975ecd012986b8078b58 Mon Sep 17 00:00:00 2001 From: Pascal Jufer Date: Thu, 10 Jun 2021 00:30:59 +0200 Subject: [PATCH 09/38] Fix DB column update for data types with length or boolean as default value (#6163) * Fix DB column update for types with length or boolean as default value * Add docs/index.json to gitignore * Remove specificType support Co-authored-by: rijkvanzanten --- api/src/services/fields.ts | 2 -- docs/.gitignore | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/api/src/services/fields.ts b/api/src/services/fields.ts index c2d866cfb3..ec0d9c89ce 100644 --- a/api/src/services/fields.ts +++ b/api/src/services/fields.ts @@ -417,8 +417,6 @@ export class FieldsService { if (field.schema?.has_auto_increment) { column = table.increments(field.field); - } else if (field.schema?.data_type) { - column = table.specificType(field.field, field.schema.data_type); } else if (field.type === 'string') { column = table.string(field.field, field.schema?.max_length ?? undefined); } else if (['float', 'decimal'].includes(field.type)) { diff --git a/docs/.gitignore b/docs/.gitignore index 1521c8b765..f642b89394 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,2 @@ -dist +dist/ +index.json From e20ad6c6b5f75b39ec3174c0ac7e5c0499ff93d7 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Wed, 9 Jun 2021 18:52:48 -0400 Subject: [PATCH 10/38] Use JSON editor for JSON field type default value (#6171) Fixes #6088 --- app/src/interfaces/input-code/input-code.vue | 19 ++++++++++--------- .../field-detail/components/schema.vue | 10 +++++++++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/interfaces/input-code/input-code.vue b/app/src/interfaces/input-code/input-code.vue index bfd955ee18..88a54c1c97 100644 --- a/app/src/interfaces/input-code/input-code.vue +++ b/app/src/interfaces/input-code/input-code.vue @@ -10,9 +10,9 @@ diff --git a/app/src/displays/related-values/related-values.vue b/app/src/displays/related-values/related-values.vue index 86e6960dea..3665c49214 100644 --- a/app/src/displays/related-values/related-values.vue +++ b/app/src/displays/related-values/related-values.vue @@ -104,7 +104,7 @@ export default defineComponent({ if (!relatedCollection.value || !primaryKeyField.value) return null; const primaryKey = item[primaryKeyField.value.field]; - return `/collections/${relatedCollection.value}/-/${encodeURIComponent(primaryKey)}`; + return `/collections/${relatedCollection.value}/${encodeURIComponent(primaryKey)}`; } }, }); diff --git a/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue b/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue index aa7d90a69b..4a068c7416 100644 --- a/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue +++ b/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue @@ -519,8 +519,8 @@ textarea { --v-button-color: var(--foreground-subdued); --v-button-background-color-hover: var(--border-normal); --v-button-color-hover: var(--foreground-normal); - --v-button-background-color-activated: var(--border-normal); - --v-button-color-activated: var(--foreground-normal); + --v-button-background-color-active: var(--border-normal); + --v-button-color-active: var(--foreground-normal); } } diff --git a/app/src/layouts/calendar/index.ts b/app/src/layouts/calendar/index.ts index 35fbadd769..7b0e899cfe 100644 --- a/app/src/layouts/calendar/index.ts +++ b/app/src/layouts/calendar/index.ts @@ -188,7 +188,7 @@ export default defineLayout({ const endpoint = collection.value.startsWith('directus') ? collection.value.substring(9) : `/collections/${collection.value}`; - router.push(`${endpoint}/-/${primaryKey}`); + router.push(`${endpoint}/${primaryKey}`); }, async eventChange(info) { if (!collection.value || !startDateField.value || !startDateFieldInfo.value) return; diff --git a/app/src/layouts/cards/index.ts b/app/src/layouts/cards/index.ts index 0cf2ba9ec3..dd63334d44 100644 --- a/app/src/layouts/cards/index.ts +++ b/app/src/layouts/cards/index.ts @@ -81,7 +81,7 @@ export default defineLayout({ }); const newLink = computed(() => { - return `/collections/${collection.value}/-/+`; + return `/collections/${collection.value}/+`; }); const showingCount = computed(() => { @@ -273,7 +273,7 @@ export default defineLayout({ function getLinkForItem(item: Record) { if (!primaryKeyField.value) return; - return `/collections/${props.collection}/-/${encodeURIComponent(item[primaryKeyField.value.field])}`; + return `/collections/${props.collection}/${encodeURIComponent(item[primaryKeyField.value.field])}`; } function selectAll() { diff --git a/app/src/layouts/tabular/index.ts b/app/src/layouts/tabular/index.ts index 77786c2a6a..9e953750dc 100644 --- a/app/src/layouts/tabular/index.ts +++ b/app/src/layouts/tabular/index.ts @@ -362,7 +362,7 @@ export default defineLayout({ } else { const primaryKey = item[primaryKeyField.value.field]; - router.push(`/collections/${collection.value}/-/${encodeURIComponent(primaryKey)}`); + router.push(`/collections/${collection.value}/${encodeURIComponent(primaryKey)}`); } } diff --git a/app/src/modules/activity/routes/item.vue b/app/src/modules/activity/routes/item.vue index cd49c3d7f7..9bb6072f46 100644 --- a/app/src/modules/activity/routes/item.vue +++ b/app/src/modules/activity/routes/item.vue @@ -89,7 +89,7 @@ export default defineComponent({ const openItemLink = computed(() => { if (!item.value) return; - return `/collections/${item.value.collection}/-/${encodeURIComponent(item.value.item)}`; + return `/collections/${item.value.collection}/${encodeURIComponent(item.value.item)}`; }); watch(() => props.primaryKey, loadActivity, { immediate: true }); diff --git a/app/src/modules/collections/components/navigation-bookmark.vue b/app/src/modules/collections/components/navigation-bookmark.vue index f5d81ba3be..b2c1cabcb1 100644 --- a/app/src/modules/collections/components/navigation-bookmark.vue +++ b/app/src/modules/collections/components/navigation-bookmark.vue @@ -1,5 +1,5 @@ - + @@ -65,13 +65,7 @@ - + - + -
- - {{ t('tfa_scan_code') }} - - - - {{ secret }} - - - {{ t('done') }} - +
+
+ + {{ t('tfa_scan_code') }} + + + + {{ secret }} + + + + + {{ t('cancel') }} + {{ t('done') }} + +
- + - - {{ t('enter_otp_to_disable_tfa') }} - - - - - - - - {{ t('disable_tfa') }} - - +
+ + {{ t('enter_otp_to_disable_tfa') }} + + + + + + + + {{ t('disable_tfa') }} + + +
@@ -85,6 +92,7 @@ export default defineComponent({ const userStore = useUserStore(); const tfaEnabled = ref(!!props.value); + const tfaGenerated = ref(false); const enableActive = ref(false); const disableActive = ref(false); const loading = ref(false); @@ -110,6 +118,9 @@ export default defineComponent({ return { t, tfaEnabled, + tfaGenerated, + generateTFA, + cancelAndClose, enableTFA, toggle, password, @@ -132,17 +143,46 @@ export default defineComponent({ } } + async function generateTFA() { + if (loading.value === true) return; + + loading.value = true; + + try { + const response = await api.post('/users/me/tfa/generate', { password: password.value }); + const url = response.data.data.otpauth_url; + secret.value = response.data.data.secret; + await qrcode.toCanvas(document.getElementById(canvasID), url); + tfaGenerated.value = true; + error.value = null; + } catch (err) { + error.value = err; + } finally { + loading.value = false; + } + } + + function cancelAndClose() { + tfaGenerated.value = false; + enableActive.value = false; + password.value = ''; + otp.value = ''; + secret.value = ''; + } + async function enableTFA() { if (loading.value === true) return; loading.value = true; try { - const response = await api.post('/users/me/tfa/enable', { password: password.value }); - const url = response.data.data.otpauth_url; - secret.value = response.data.data.secret; - await qrcode.toCanvas(document.getElementById(canvasID), url); + await api.post('/users/me/tfa/enable', { otp: otp.value, secret: secret.value }); tfaEnabled.value = true; + tfaGenerated.value = false; + enableActive.value = false; + password.value = ''; + otp.value = ''; + secret.value = ''; error.value = null; } catch (err) { error.value = err; @@ -159,6 +199,7 @@ export default defineComponent({ tfaEnabled.value = false; disableActive.value = false; + otp.value = ''; } catch (err) { error.value = err; } finally { @@ -189,7 +230,7 @@ export default defineComponent({ .secret { display: block; - margin: 0 auto; + margin: 0 auto 16px auto; color: var(--foreground-subdued); font-family: var(--family-monospace); letter-spacing: 2.6px; diff --git a/app/src/routes/login/components/login-form/login-form.vue b/app/src/routes/login/components/login-form/login-form.vue index 63f97dd402..f3c290a3c0 100644 --- a/app/src/routes/login/components/login-form/login-form.vue +++ b/app/src/routes/login/components/login-form/login-form.vue @@ -4,7 +4,7 @@ - + diff --git a/docs/reference/api/system/users.md b/docs/reference/api/system/users.md index a06a489d27..d4991bf0f5 100644 --- a/docs/reference/api/system/users.md +++ b/docs/reference/api/system/users.md @@ -819,7 +819,7 @@ mutation { --- -## Enable Two-Factor Authentication +## Generate Two-Factor Authentication Secret Generates a secret and returns the URL to be used in an authenticator app. @@ -853,13 +853,13 @@ OTP secret to be saved in the authenticator app. ### REST API ``` -POST /users/me/tfa/enable +POST /users/me/tfa/generate ``` ##### Example ```json -// POST /users/me/tfa/enable +// POST /users/me/tfa/generate { "password": "d1r3ctu5" } @@ -873,7 +873,7 @@ POST /graphql/system ```graphql type Mutation { - users_me_tfa_enable(password: String!): users_me_tfa_enable_data + users_me_tfa_generate(password: String!): users_me_tfa_generate_data } ``` @@ -881,7 +881,7 @@ type Mutation { ```graphql mutation { - users_me_tfa_enable(password: "d1r3ctu5") { + users_me_tfa_generate(password: "d1r3ctu5") { secret otpauth_url } @@ -893,6 +893,77 @@ mutation { --- +## Enable Two-Factor Authentication + +Adds a TFA secret to the user account. + +
+
+ +### Request Body + +
+ +`secret` **Required**\ +The TFA secret from tfa/generate. + +`otp` **Required**\ +OTP generated with the secret, to recheck if the user has a correct TFA setup + +
+ +### Returns + +
+ +Empty response. + +
+ +
+
+ +### REST API + +``` +POST /users/me/tfa/enable +``` + +##### Example + +```json +// POST /users/me/tfa/enable +{ + "otp": "123456", + "secret": "3CtiutsNBmY3szHE" +} +``` + +### GraphQL + +``` +POST /graphql/system +``` + +```graphql +type Mutation { + users_me_tfa_enable(otp: String!, secret: String!): Boolean +} +``` + +##### Example + +```graphql +mutation { + users_me_tfa_enable(otp: "123456", secret: "3CtiutsNBmY3szHE") +} +``` + +
+
+ +--- + ## Disable Two-Factor Authentication Disables two-factor authentication by removing the OTP secret from the user. From 5826fd6110b5c534a5cb25bf524a1e995aadfc83 Mon Sep 17 00:00:00 2001 From: Juan Carlos Blanco Delgado <36451129+juancarlosjr97@users.noreply.github.com> Date: Thu, 10 Jun 2021 21:16:33 +0100 Subject: [PATCH 21/38] Adding an example to cron hook (#6188) * Adding an example to cron hook * Update docs/guides/api-hooks.md Co-authored-by: Rijk van Zanten --- docs/guides/api-hooks.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/guides/api-hooks.md b/docs/guides/api-hooks.md index f4e0697168..6d9e226d2a 100644 --- a/docs/guides/api-hooks.md +++ b/docs/guides/api-hooks.md @@ -108,7 +108,17 @@ module.exports = function registerHook({ exceptions }) { Hooks support running on an interval through [`node-cron`](https://www.npmjs.com/package/node-cron). To set this up, provide a cron statement in the event scope as follows: `cron()`, for example `cron(15 14 1 * *)` (at 14:15 -on day-of-month 1) or `cron(5 4 * * sun)` (at 04:05 on Sunday). +on day-of-month 1) or `cron(5 4 * * sun)` (at 04:05 on Sunday). See example below: + +```js +module.exports = function registerHook() { + return { + 'cron(*/15 * * * *)': async function () { + await axios.post('http://example.com/webhook', { message: "Another 15 minutes passed..." }); + }, + }; +}; +``` ## 3. Register your Hook From 9af8d43cdd1ea8bd756a42e590dd7ff83bb871cc Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Thu, 10 Jun 2021 16:17:01 -0400 Subject: [PATCH 22/38] npm vs dependabot round 5 --- package-lock.json | 127 +++++++++++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index 25b0d4ae6e..3fc4b09df4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11699,7 +11699,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "devOptional": true, + "dev": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -11733,7 +11733,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.8" } @@ -11998,7 +11998,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -12007,7 +12007,7 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "devOptional": true + "dev": true }, "node_modules/axe-core": { "version": "4.2.2", @@ -12611,7 +12611,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "devOptional": true, + "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -12733,6 +12733,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, "optional": true, "dependencies": { "inherits": "~2.0.0" @@ -13620,7 +13621,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "devOptional": true + "dev": true }, "node_modules/ccount": { "version": "1.1.0", @@ -16260,7 +16261,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -17333,7 +17334,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "devOptional": true, + "dev": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -19566,7 +19567,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ] @@ -20070,7 +20071,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -20557,6 +20558,7 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -20572,6 +20574,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -23899,7 +23902,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -25070,7 +25073,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "devOptional": true, + "dev": true, "engines": { "node": ">=4" } @@ -25080,7 +25083,7 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", - "devOptional": true, + "dev": true, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -25741,7 +25744,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -27095,7 +27098,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "devOptional": true + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.0.0", @@ -29397,7 +29400,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "devOptional": true + "dev": true }, "node_modules/jsdom": { "version": "16.6.0", @@ -29538,7 +29541,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "devOptional": true + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -29709,7 +29712,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ], @@ -29776,6 +29779,7 @@ "version": "7.7.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", + "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { @@ -36677,7 +36681,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "devOptional": true + "dev": true }, "node_modules/pg": { "version": "8.6.0", @@ -40356,7 +40360,7 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "devOptional": true, + "dev": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -40416,7 +40420,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "devOptional": true, + "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -40430,7 +40434,7 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.6" } @@ -40439,7 +40443,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, + "dev": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -42260,6 +42264,7 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, "optional": true, "dependencies": { "fstream": "^1.0.0", @@ -42286,6 +42291,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, "optional": true, "dependencies": { "abbrev": "1" @@ -42298,6 +42304,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -42310,6 +42317,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, "optional": true, "bin": { "semver": "bin/semver" @@ -42319,6 +42327,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, "optional": true, "dependencies": { "block-stream": "*", @@ -42330,6 +42339,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "optional": true, "dependencies": { "isexe": "^2.0.0" @@ -42377,7 +42387,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "devOptional": true, + "dev": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -46323,7 +46333,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "devOptional": true + "dev": true }, "node_modules/type": { "version": "1.2.0", @@ -47327,7 +47337,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ], @@ -64040,6 +64050,7 @@ "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz", "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==", "requires": { + "@oclif/config": "^1.15.1", "@oclif/errors": "^1.3.3", "@oclif/parser": "^3.8.3", "@oclif/plugin-help": "^3", @@ -65979,6 +65990,7 @@ "integrity": "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==", "dev": true, "requires": { + "@babel/core": "^7.11.0", "@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-module-imports": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3", @@ -65991,6 +66003,7 @@ "@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-preset-jsx": "^1.2.4", "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", "core-js-compat": "^3.6.5", "semver": "^6.1.0" }, @@ -68368,7 +68381,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "devOptional": true, + "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -68419,7 +68432,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "devOptional": true + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -68633,13 +68646,13 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "devOptional": true + "dev": true }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "devOptional": true + "dev": true }, "axe-core": { "version": "4.2.2", @@ -69100,7 +69113,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "devOptional": true, + "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -69203,6 +69216,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, "optional": true, "requires": { "inherits": "~2.0.0" @@ -69920,7 +69934,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "devOptional": true + "dev": true }, "ccount": { "version": "1.1.0", @@ -72144,7 +72158,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -73316,7 +73330,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "devOptional": true, + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -75042,7 +75056,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "devOptional": true + "dev": true }, "fast-copy": { "version": "2.1.1", @@ -75449,7 +75463,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "devOptional": true + "dev": true }, "fork-ts-checker-webpack-plugin": { "version": "3.1.1", @@ -75836,6 +75850,7 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.2", @@ -75848,6 +75863,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -78420,7 +78436,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -79320,13 +79336,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "devOptional": true + "dev": true }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "devOptional": true, + "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -79857,7 +79873,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -80825,7 +80841,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "devOptional": true + "dev": true }, "istanbul-lib-coverage": { "version": "3.0.0", @@ -82573,7 +82589,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "devOptional": true + "dev": true }, "jsdom": { "version": "16.6.0", @@ -82686,7 +82702,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "devOptional": true + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -82820,7 +82836,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -82878,6 +82894,7 @@ "version": "7.7.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", + "dev": true, "optional": true, "requires": { "node-addon-api": "^3.0.0", @@ -88402,7 +88419,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "devOptional": true + "dev": true }, "pg": { "version": "8.6.0", @@ -91396,7 +91413,7 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "devOptional": true, + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -91424,7 +91441,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "devOptional": true, + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -91435,13 +91452,13 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "devOptional": true + "dev": true }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, + "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -92946,6 +92963,7 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, "optional": true, "requires": { "fstream": "^1.0.0", @@ -92966,6 +92984,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, "optional": true, "requires": { "abbrev": "1" @@ -92975,6 +92994,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -92984,12 +93004,14 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, "optional": true }, "tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, "optional": true, "requires": { "block-stream": "*", @@ -93001,6 +93023,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "optional": true, "requires": { "isexe": "^2.0.0" @@ -93038,7 +93061,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "devOptional": true, + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -96138,7 +96161,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "devOptional": true + "dev": true }, "type": { "version": "1.2.0", @@ -96931,7 +96954,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", From 779a252ce22733c53da5c14e068d5254e365f3a6 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Thu, 10 Jun 2021 16:17:32 -0400 Subject: [PATCH 23/38] v9.0.0-rc.75 --- api/package.json | 18 +++++++++--------- app/package.json | 6 +++--- docs/package.json | 2 +- lerna.json | 2 +- packages/cli/package.json | 6 +++--- packages/create-directus-project/package.json | 2 +- packages/drive-azure/package.json | 4 ++-- packages/drive-gcs/package.json | 4 ++-- packages/drive-s3/package.json | 4 ++-- packages/drive/package.json | 2 +- packages/format-title/package.json | 2 +- packages/gatsby-source-directus/package.json | 2 +- packages/schema/package.json | 2 +- packages/sdk/package.json | 2 +- packages/specs/package.json | 2 +- 15 files changed, 30 insertions(+), 30 deletions(-) diff --git a/api/package.json b/api/package.json index a0abd860fc..830098f2e7 100644 --- a/api/package.json +++ b/api/package.json @@ -1,6 +1,6 @@ { "name": "directus", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "GPL-3.0-only", "homepage": "https://github.com/directus/directus#readme", "description": "Directus is a real-time API and App dashboard for managing SQL database content.", @@ -66,14 +66,14 @@ "example.env" ], "dependencies": { - "@directus/app": "9.0.0-rc.74", - "@directus/drive": "9.0.0-rc.74", - "@directus/drive-azure": "9.0.0-rc.74", - "@directus/drive-gcs": "9.0.0-rc.74", - "@directus/drive-s3": "9.0.0-rc.74", - "@directus/format-title": "9.0.0-rc.74", - "@directus/schema": "9.0.0-rc.74", - "@directus/specs": "9.0.0-rc.74", + "@directus/app": "9.0.0-rc.75", + "@directus/drive": "9.0.0-rc.75", + "@directus/drive-azure": "9.0.0-rc.75", + "@directus/drive-gcs": "9.0.0-rc.75", + "@directus/drive-s3": "9.0.0-rc.75", + "@directus/format-title": "9.0.0-rc.75", + "@directus/schema": "9.0.0-rc.75", + "@directus/specs": "9.0.0-rc.75", "@godaddy/terminus": "^4.9.0", "argon2": "^0.28.1", "async": "^3.2.0", diff --git a/app/package.json b/app/package.json index 3792dfa7a8..b24acf2748 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "@directus/app", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "private": false, "description": "Directus is an Open-Source Headless CMS & API for Managing Custom Databases", "author": "Rijk van Zanten ", @@ -28,8 +28,8 @@ }, "gitHead": "24621f3934dc77eb23441331040ed13c676ceffd", "devDependencies": { - "@directus/docs": "9.0.0-rc.74", - "@directus/format-title": "9.0.0-rc.74", + "@directus/docs": "9.0.0-rc.75", + "@directus/format-title": "9.0.0-rc.75", "@fullcalendar/core": "^5.7.2", "@fullcalendar/daygrid": "^5.7.2", "@fullcalendar/interaction": "^5.7.2", diff --git a/docs/package.json b/docs/package.json index 13f7fb7b95..4c5e31c77e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,7 +1,7 @@ { "name": "@directus/docs", "private": false, - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "", "main": "dist/index.js", "scripts": { diff --git a/lerna.json b/lerna.json index cd8806fc88..4399ee3c9f 100644 --- a/lerna.json +++ b/lerna.json @@ -5,7 +5,7 @@ "docs", "api" ], - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/cli/package.json b/packages/cli/package.json index 83b1e25d5f..c88a11f08c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@directus/cli", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "The official Directus CLI", "repository": { "type": "git", @@ -41,8 +41,8 @@ "author": "João Biondo ", "license": "MIT", "dependencies": { - "@directus/format-title": "9.0.0-rc.74", - "@directus/sdk": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.75", + "@directus/sdk": "9.0.0-rc.75", "@types/yargs": "^17.0.0", "app-module-path": "^2.2.0", "chalk": "^4.1.0", diff --git a/packages/create-directus-project/package.json b/packages/create-directus-project/package.json index d6712aa719..333993d158 100644 --- a/packages/create-directus-project/package.json +++ b/packages/create-directus-project/package.json @@ -1,6 +1,6 @@ { "name": "create-directus-project", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "A small installer util that will create a directory, add boilerplate folders, and install Directus through npm.", "main": "lib/index.js", "bin": "./lib/index.js", diff --git a/packages/drive-azure/package.json b/packages/drive-azure/package.json index 67092ecf9e..3a328dfdb6 100644 --- a/packages/drive-azure/package.json +++ b/packages/drive-azure/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive-azure", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "Azure Blob driver for @directus/drive", "license": "MIT", "main": "dist/index.js", @@ -35,7 +35,7 @@ ], "dependencies": { "@azure/storage-blob": "^12.6.0", - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "normalize-path": "^3.0.0" }, "devDependencies": { diff --git a/packages/drive-gcs/package.json b/packages/drive-gcs/package.json index c25e9881a0..8bc9716241 100644 --- a/packages/drive-gcs/package.json +++ b/packages/drive-gcs/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive-gcs", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "Google Cloud Storage driver for @directus/drive", "license": "MIT", "main": "dist/index.js", @@ -33,7 +33,7 @@ "dev": "npm run build -- -w --preserveWatchOutput --incremental" }, "dependencies": { - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "@google-cloud/storage": "^5.8.5", "normalize-path": "^3.0.0" }, diff --git a/packages/drive-s3/package.json b/packages/drive-s3/package.json index b6fff497b2..99cb4f303d 100644 --- a/packages/drive-s3/package.json +++ b/packages/drive-s3/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive-s3", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "AWS S3 driver for @directus/drive", "license": "MIT", "main": "dist/index.js", @@ -34,7 +34,7 @@ "dev": "npm run build -- -w --preserveWatchOutput --incremental" }, "dependencies": { - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "aws-sdk": "^2.925.0", "normalize-path": "^3.0.0" }, diff --git a/packages/drive/package.json b/packages/drive/package.json index e91c3e7e19..5ea0cabd0c 100644 --- a/packages/drive/package.json +++ b/packages/drive/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "Flexible and Fluent way to manage storage in Node.js.", "license": "MIT", "main": "dist/index.js", diff --git a/packages/format-title/package.json b/packages/format-title/package.json index 7aaee73a09..bf541f0a8d 100644 --- a/packages/format-title/package.json +++ b/packages/format-title/package.json @@ -1,6 +1,6 @@ { "name": "@directus/format-title", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "Custom string formatter that converts any string into [Title Case](http://www.grammar-monster.com/lessons/capital_letters_title_case.htm)", "keywords": [ "title-case", diff --git a/packages/gatsby-source-directus/package.json b/packages/gatsby-source-directus/package.json index 38fed737fb..9173738dbb 100644 --- a/packages/gatsby-source-directus/package.json +++ b/packages/gatsby-source-directus/package.json @@ -1,6 +1,6 @@ { "name": "@directus/gatsby-source-directus", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "Source plugin for pulling data into Gatsby from a Directus API.", "author": "João Biondo ", "license": "MIT", diff --git a/packages/schema/package.json b/packages/schema/package.json index 0de2eeb7ef..64e71947fb 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@directus/schema", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "Utility for extracting information about existing DB schema", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 7aec92946b..09c7ef3ec5 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@directus/sdk", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "The official Directus SDK for use in JavaScript!", "repository": { "type": "git", diff --git a/packages/specs/package.json b/packages/specs/package.json index ba61fa7c4e..eb115bd4f9 100644 --- a/packages/specs/package.json +++ b/packages/specs/package.json @@ -1,6 +1,6 @@ { "name": "@directus/specs", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "description": "OpenAPI Specification of the Directus API", "main": "index.js", "scripts": { From 4ac610c795532b92df53af4ecc4a3e8d97f63cfc Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Thu, 10 Jun 2021 16:26:33 -0400 Subject: [PATCH 24/38] Update changelog.md --- changelog.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/changelog.md b/changelog.md index 792062e30a..64b76f7014 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,66 @@ _Changes marked with a :warning: contain potential breaking changes depending on your use of the package._ +## v9.0.0-rc.75 (June 10, 2021) + +### 🚨 App Extensions + +This release includes the big switch from Vue 2 to Vue 3. If you have (complicated) app extensions, make sure to update the build chain of your extension and make sure you're aware of [the breaking changes you might have to account for](https://v3.vuejs.org/guide/migration/introduction.html#breaking-changes). We'll be upgrading the documentation and providing new boilerplates for Vue 3 based extensions in the coming days. + +### :sparkles: New Features + +- **API** + - [#6155](https://github.com/directus/directus/pull/6155) Allow any of grant's (nested) configuration parameters (oAuth) ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6140](https://github.com/directus/directus/pull/6140) Add item duplicate fields configuration option to directus_collections ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6101](https://github.com/directus/directus/pull/6101) Add support for _FILE environment variables ([@paescuj](https://github.com/paescuj)) +- **App** + - :warning: [#5339](https://github.com/directus/directus/pull/5339) Port the app to Vue 3 ([@nickrum](https://github.com/nickrum)) + +### :rocket: Improvements + +- **API** + - :warning: [#6187](https://github.com/directus/directus/pull/6187) Add additional check to Two-Factor Authentication (by @masterwendu) ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6119](https://github.com/directus/directus/pull/6119) Don't treat numbers larger than the JS max number size as number values in environment variables ([@skizer](https://github.com/skizer)) +- **App** + - :warning: [#6187](https://github.com/directus/directus/pull/6187) Add additional check to Two-Factor Authentication (by @masterwendu) ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6186](https://github.com/directus/directus/pull/6186) Add number formatting to formatted-values display ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6171](https://github.com/directus/directus/pull/6171) Use JSON editor for JSON field type default value ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6168](https://github.com/directus/directus/pull/6168) Show better message for improperly formatted emails on login ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6118](https://github.com/directus/directus/pull/6118) Support async preRegisterCheck for custom modules ([@t7tran](https://github.com/t7tran)) + +### :bug: Bug Fixes + +- **App** + - [#6174](https://github.com/directus/directus/pull/6174) Fix issue that would cause sort order of fields to be corrupted on field changes ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6173](https://github.com/directus/directus/pull/6173) Prevent translation rows from being edited before existing values are loaded ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6172](https://github.com/directus/directus/pull/6172) Fix translations hint not linking to collection ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6171](https://github.com/directus/directus/pull/6171) Use JSON editor for JSON field type default value ([@rijkvanzanten](https://github.com/rijkvanzanten)) +- **API** + - [#6167](https://github.com/directus/directus/pull/6167) Cleanup one_allowed_collections field on collection delete ([@rijkvanzanten](https://github.com/rijkvanzanten)) + - [#6163](https://github.com/directus/directus/pull/6163) Fix field update for data types with length or boolean as default value ([@paescuj](https://github.com/paescuj)) + - [#6153](https://github.com/directus/directus/pull/6153) Fixed issue that would cause foreign key constraints to be missed in pascal cased table names in postgres ([@rijkvanzanten](https://github.com/rijkvanzanten)) + +### :memo: Documentation + +- [#6188](https://github.com/directus/directus/pull/6188) Adding an example to cron hook ([@juancarlosjr97](https://github.com/juancarlosjr97)) +- [#6150](https://github.com/directus/directus/pull/6150) Describe breaking change in filter syntax in v8 migration information ([@nachogarcia](https://github.com/nachogarcia)) +- [#6135](https://github.com/directus/directus/pull/6135) List cron in Event Format Options ([@benhaynes](https://github.com/benhaynes)) + +### :package: Dependency Updates + +- [#6177](https://github.com/directus/directus/pull/6177) Bump aws-sdk from 2.924.0 to 2.925.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6176](https://github.com/directus/directus/pull/6176) Bump @azure/storage-blob from 12.5.0 to 12.6.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6175](https://github.com/directus/directus/pull/6175) Bump jest-environment-jsdom from 26.6.2 to 27.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6147](https://github.com/directus/directus/pull/6147) Bump dotenv from 9.0.2 to 10.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6146](https://github.com/directus/directus/pull/6146) Bump jest-environment-jsdom from 26.6.2 to 27.0.3 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6145](https://github.com/directus/directus/pull/6145) Bump @types/codemirror from 0.0.109 to 5.60.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6144](https://github.com/directus/directus/pull/6144) Bump lint-staged from 10.5.4 to 11.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6126](https://github.com/directus/directus/pull/6126) Bump execa from 5.0.1 to 5.1.1 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6125](https://github.com/directus/directus/pull/6125) Bump slugify from 1.5.0 to 1.5.3 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6124](https://github.com/directus/directus/pull/6124) Bump prettier from 2.3.0 to 2.3.1 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6123](https://github.com/directus/directus/pull/6123) Bump connect-redis from 5.2.0 to 6.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6122](https://github.com/directus/directus/pull/6122) Bump @types/sharp from 0.28.1 to 0.28.3 ([@dependabot[bot]](https://github.com/apps/dependabot)) + ## v9.0.0-rc.74 (June 7, 2021) ### :sparkles: New Features From 31fbb5f06fed2460efd2bec31b8994e7d47f51f8 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Thu, 10 Jun 2021 16:44:56 -0400 Subject: [PATCH 25/38] Fix type casting of boolean env var (#6190) Fixes #6189 --- api/src/env.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/api/src/env.ts b/api/src/env.ts index f028959f4d..5873a5e1de 100644 --- a/api/src/env.ts +++ b/api/src/env.ts @@ -220,14 +220,21 @@ function processValues(env: Record) { // - boolean values to boolean // - 'null' to null // - number values (> 0 <= Number.MAX_SAFE_INTEGER) to number - if (value === 'true' || value === 'false') { - env[key] = !!value; + if (value === 'true') { + env[key] = true; continue; } + + if (value === 'false') { + env[key] = false; + continue; + } + if (value === 'null') { env[key] = null; continue; } + if ( String(value).startsWith('0') === false && isNaN(value) === false && From 46c77f70c8504a62d6fd2270eb3e7e38c96ca54f Mon Sep 17 00:00:00 2001 From: Oreille <33065839+Oreilles@users.noreply.github.com> Date: Fri, 11 Jun 2021 14:59:20 +0200 Subject: [PATCH 26/38] Moved special check above localTypeMap check. (#6208) --- api/src/utils/get-local-type.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/api/src/utils/get-local-type.ts b/api/src/utils/get-local-type.ts index e739a40331..f5759267ff 100644 --- a/api/src/utils/get-local-type.ts +++ b/api/src/utils/get-local-type.ts @@ -93,6 +93,14 @@ export default function getLocalType( ): typeof types[number] | 'unknown' { const type = localTypeMap[column.data_type.toLowerCase().split('(')[0]]; + const special = field?.special; + if (special) { + if (special.includes('json')) return 'json'; + if (special.includes('hash')) return 'hash'; + if (special.includes('csv')) return 'csv'; + if (special.includes('uuid')) return 'uuid'; + } + /** Handle Postgres numeric decimals */ if (column.data_type === 'numeric' && column.numeric_precision !== null && column.numeric_scale !== null) { return 'decimal'; @@ -103,11 +111,6 @@ export default function getLocalType( return 'text'; } - if (field?.special?.includes('json')) return 'json'; - if (field?.special?.includes('hash')) return 'hash'; - if (field?.special?.includes('csv')) return 'csv'; - if (field?.special?.includes('uuid')) return 'uuid'; - if (type) { return type.type; } From 210fe91ebabf4f3efe0c47b49491ff35f511f74b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 09:01:23 -0400 Subject: [PATCH 27/38] Bump gatsby-source-filesystem from 3.7.0 to 3.7.1 (#6198) Bumps [gatsby-source-filesystem](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-source-filesystem) from 3.7.0 to 3.7.1. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/gatsby-source-filesystem@3.7.1/packages/gatsby-source-filesystem/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-source-filesystem@3.7.1/packages/gatsby-source-filesystem) --- updated-dependencies: - dependency-name: gatsby-source-filesystem dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/gatsby-source-directus/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gatsby-source-directus/package.json b/packages/gatsby-source-directus/package.json index 9173738dbb..536906df4a 100644 --- a/packages/gatsby-source-directus/package.json +++ b/packages/gatsby-source-directus/package.json @@ -13,7 +13,7 @@ "@directus/sdk-js": "^9.0.0-rc.53", "@lnfusion/gatsby-source-graphql": "0.0.4", "chalk": "^4.1.1", - "gatsby-source-filesystem": "^3.6.0", + "gatsby-source-filesystem": "^3.7.1", "invariant": "^2.2.4", "ms": "^2.1.3" }, From 6eac933cdf8e7c19332bceff222051f1c74e8031 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 09:01:38 -0400 Subject: [PATCH 28/38] Bump aws-sdk from 2.925.0 to 2.926.0 (#6199) Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.925.0 to 2.926.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.925.0...v2.926.0) --- updated-dependencies: - dependency-name: aws-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 231 +++++++++++++++------------------ packages/drive-s3/package.json | 2 +- 2 files changed, 105 insertions(+), 128 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3fc4b09df4..65f62b55dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,17 +54,17 @@ }, "api": { "name": "directus", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "GPL-3.0-only", "dependencies": { - "@directus/app": "9.0.0-rc.74", - "@directus/drive": "9.0.0-rc.74", - "@directus/drive-azure": "9.0.0-rc.74", - "@directus/drive-gcs": "9.0.0-rc.74", - "@directus/drive-s3": "9.0.0-rc.74", - "@directus/format-title": "9.0.0-rc.74", - "@directus/schema": "9.0.0-rc.74", - "@directus/specs": "9.0.0-rc.74", + "@directus/app": "9.0.0-rc.75", + "@directus/drive": "9.0.0-rc.75", + "@directus/drive-azure": "9.0.0-rc.75", + "@directus/drive-gcs": "9.0.0-rc.75", + "@directus/drive-s3": "9.0.0-rc.75", + "@directus/format-title": "9.0.0-rc.75", + "@directus/schema": "9.0.0-rc.75", + "@directus/specs": "9.0.0-rc.75", "@godaddy/terminus": "^4.9.0", "argon2": "^0.28.1", "async": "^3.2.0", @@ -446,10 +446,10 @@ }, "app": { "name": "@directus/app", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "devDependencies": { - "@directus/docs": "9.0.0-rc.74", - "@directus/format-title": "9.0.0-rc.74", + "@directus/docs": "9.0.0-rc.75", + "@directus/format-title": "9.0.0-rc.75", "@fullcalendar/core": "^5.7.2", "@fullcalendar/daygrid": "^5.7.2", "@fullcalendar/interaction": "^5.7.2", @@ -511,7 +511,7 @@ }, "docs": { "name": "@directus/docs", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "ISC", "devDependencies": { "directory-tree": "^2.2.9", @@ -11699,7 +11699,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, + "devOptional": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -11733,7 +11733,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.8" } @@ -11902,9 +11902,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.925.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.925.0.tgz", - "integrity": "sha512-dHXngzuSTZvIFWizWbU+ceZTAKmgodzEIi/AWbB+z0THKfxD3Iz/CJ7kZ7a9QyZv7X082L68vv3siMhXBMoTLA==", + "version": "2.926.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.926.0.tgz", + "integrity": "sha512-GFdAznnwxBxRPUTLP8gyFG8GhbUQ0sWwNCocYHkS/FB18hr8gmB3xv2m7VVWA/YkPDXvviPnoB680Z47VSEkqA==", "hasInstallScript": true, "dependencies": { "buffer": "4.9.2", @@ -11998,7 +11998,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, + "devOptional": true, "engines": { "node": "*" } @@ -12007,7 +12007,7 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true + "devOptional": true }, "node_modules/axe-core": { "version": "4.2.2", @@ -12611,7 +12611,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, + "devOptional": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -12733,7 +12733,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, "optional": true, "dependencies": { "inherits": "~2.0.0" @@ -13621,7 +13620,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "devOptional": true }, "node_modules/ccount": { "version": "1.1.0", @@ -16261,7 +16260,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, + "devOptional": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -17334,7 +17333,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, + "devOptional": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -19567,7 +19566,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, + "devOptional": true, "engines": [ "node >=0.6.0" ] @@ -20071,7 +20070,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, + "devOptional": true, "engines": { "node": "*" } @@ -20558,7 +20557,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -20574,7 +20572,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -23902,7 +23899,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, + "devOptional": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -25073,7 +25070,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, + "devOptional": true, "engines": { "node": ">=4" } @@ -25083,7 +25080,7 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", - "dev": true, + "devOptional": true, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -25744,7 +25741,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, + "devOptional": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -27098,7 +27095,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "devOptional": true }, "node_modules/istanbul-lib-coverage": { "version": "3.0.0", @@ -29400,7 +29397,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "devOptional": true }, "node_modules/jsdom": { "version": "16.6.0", @@ -29541,7 +29538,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "devOptional": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -29712,7 +29709,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, + "devOptional": true, "engines": [ "node >=0.6.0" ], @@ -29779,7 +29776,6 @@ "version": "7.7.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", - "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { @@ -36681,7 +36677,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "devOptional": true }, "node_modules/pg": { "version": "8.6.0", @@ -40360,7 +40356,7 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, + "devOptional": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -40420,7 +40416,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, + "devOptional": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -40434,7 +40430,7 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.6" } @@ -40443,7 +40439,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, + "devOptional": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -42264,7 +42260,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, "optional": true, "dependencies": { "fstream": "^1.0.0", @@ -42291,7 +42286,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, "optional": true, "dependencies": { "abbrev": "1" @@ -42304,7 +42298,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -42317,7 +42310,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, "optional": true, "bin": { "semver": "bin/semver" @@ -42327,7 +42319,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, "optional": true, "dependencies": { "block-stream": "*", @@ -42339,7 +42330,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "optional": true, "dependencies": { "isexe": "^2.0.0" @@ -42387,7 +42377,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, + "devOptional": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -46333,7 +46323,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "devOptional": true }, "node_modules/type": { "version": "1.2.0", @@ -47337,7 +47327,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, + "devOptional": true, "engines": [ "node >=0.6.0" ], @@ -50336,11 +50326,11 @@ }, "packages/cli": { "name": "@directus/cli", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { - "@directus/format-title": "9.0.0-rc.74", - "@directus/sdk": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.75", + "@directus/sdk": "9.0.0-rc.75", "@types/yargs": "^17.0.0", "app-module-path": "^2.2.0", "chalk": "^4.1.0", @@ -50772,7 +50762,7 @@ } }, "packages/create-directus-project": { - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "GPL-3.0-only", "dependencies": { "chalk": "^4.1.1", @@ -50976,7 +50966,7 @@ }, "packages/drive": { "name": "@directus/drive", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { "fs-extra": "^10.0.0", @@ -50995,11 +50985,11 @@ }, "packages/drive-azure": { "name": "@directus/drive-azure", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { "@azure/storage-blob": "^12.6.0", - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "normalize-path": "^3.0.0" }, "devDependencies": { @@ -51061,10 +51051,10 @@ }, "packages/drive-gcs": { "name": "@directus/drive-gcs", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "@google-cloud/storage": "^5.8.5", "normalize-path": "^3.0.0" }, @@ -51092,11 +51082,11 @@ }, "packages/drive-s3": { "name": "@directus/drive-s3", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { - "@directus/drive": "9.0.0-rc.74", - "aws-sdk": "^2.925.0", + "@directus/drive": "9.0.0-rc.75", + "aws-sdk": "^2.926.0", "normalize-path": "^3.0.0" }, "devDependencies": { @@ -51200,7 +51190,7 @@ }, "packages/format-title": { "name": "@directus/format-title", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "devDependencies": { "@rollup/plugin-commonjs": "^19.0.0", @@ -51219,7 +51209,7 @@ }, "packages/gatsby-source-directus": { "name": "@directus/gatsby-source-directus", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { "@directus/sdk-js": "^9.0.0-rc.53", @@ -55181,7 +55171,7 @@ }, "packages/schema": { "name": "@directus/schema", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "GPL-3.0", "dependencies": { "knex-schema-inspector": "^1.3.0", @@ -55194,7 +55184,7 @@ }, "packages/sdk": { "name": "@directus/sdk", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "MIT", "dependencies": { "axios": "^0.21.1" @@ -55495,7 +55485,7 @@ }, "packages/specs": { "name": "@directus/specs", - "version": "9.0.0-rc.74", + "version": "9.0.0-rc.75", "license": "GPL-3.0", "dependencies": { "openapi3-ts": "^2.0.1" @@ -57185,8 +57175,8 @@ "@directus/app": { "version": "file:app", "requires": { - "@directus/docs": "9.0.0-rc.74", - "@directus/format-title": "9.0.0-rc.74", + "@directus/docs": "9.0.0-rc.75", + "@directus/format-title": "9.0.0-rc.75", "@fullcalendar/core": "^5.7.2", "@fullcalendar/daygrid": "^5.7.2", "@fullcalendar/interaction": "^5.7.2", @@ -57249,8 +57239,8 @@ "@directus/cli": { "version": "file:packages/cli", "requires": { - "@directus/format-title": "9.0.0-rc.74", - "@directus/sdk": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.75", + "@directus/sdk": "9.0.0-rc.75", "@types/figlet": "^1.5.0", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", @@ -57657,7 +57647,7 @@ "version": "file:packages/drive-azure", "requires": { "@azure/storage-blob": "^12.6.0", - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.22", "@types/node": "^15.12.0", @@ -57709,7 +57699,7 @@ "@directus/drive-gcs": { "version": "file:packages/drive-gcs", "requires": { - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "@google-cloud/storage": "^5.8.5", "@lukeed/uuid": "^2.0.0", "@types/fs-extra": "^9.0.11", @@ -57735,13 +57725,13 @@ "@directus/drive-s3": { "version": "file:packages/drive-s3", "requires": { - "@directus/drive": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.75", "@lukeed/uuid": "^2.0.0", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.22", "@types/node": "^15.12.0", "@types/normalize-path": "^3.0.0", - "aws-sdk": "^2.925.0", + "aws-sdk": "^2.926.0", "dotenv": "^10.0.0", "fs-extra": "^10.0.0", "jest": "^27.0.4", @@ -64050,7 +64040,6 @@ "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz", "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==", "requires": { - "@oclif/config": "^1.15.1", "@oclif/errors": "^1.3.3", "@oclif/parser": "^3.8.3", "@oclif/plugin-help": "^3", @@ -65990,7 +65979,6 @@ "integrity": "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==", "dev": true, "requires": { - "@babel/core": "^7.11.0", "@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-module-imports": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3", @@ -66003,7 +65991,6 @@ "@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-preset-jsx": "^1.2.4", "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", "core-js-compat": "^3.6.5", "semver": "^6.1.0" }, @@ -68381,7 +68368,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, + "devOptional": true, "requires": { "safer-buffer": "~2.1.0" } @@ -68432,7 +68419,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "devOptional": true }, "assign-symbols": { "version": "1.0.0", @@ -68562,9 +68549,9 @@ } }, "aws-sdk": { - "version": "2.925.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.925.0.tgz", - "integrity": "sha512-dHXngzuSTZvIFWizWbU+ceZTAKmgodzEIi/AWbB+z0THKfxD3Iz/CJ7kZ7a9QyZv7X082L68vv3siMhXBMoTLA==", + "version": "2.926.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.926.0.tgz", + "integrity": "sha512-GFdAznnwxBxRPUTLP8gyFG8GhbUQ0sWwNCocYHkS/FB18hr8gmB3xv2m7VVWA/YkPDXvviPnoB680Z47VSEkqA==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -68646,13 +68633,13 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "devOptional": true }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true + "devOptional": true }, "axe-core": { "version": "4.2.2", @@ -69113,7 +69100,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, + "devOptional": true, "requires": { "tweetnacl": "^0.14.3" } @@ -69216,7 +69203,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, "optional": true, "requires": { "inherits": "~2.0.0" @@ -69934,7 +69920,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "devOptional": true }, "ccount": { "version": "1.1.0", @@ -72158,7 +72144,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, + "devOptional": true, "requires": { "assert-plus": "^1.0.0" } @@ -72759,14 +72745,14 @@ "directus": { "version": "file:api", "requires": { - "@directus/app": "9.0.0-rc.74", - "@directus/drive": "9.0.0-rc.74", - "@directus/drive-azure": "9.0.0-rc.74", - "@directus/drive-gcs": "9.0.0-rc.74", - "@directus/drive-s3": "9.0.0-rc.74", - "@directus/format-title": "9.0.0-rc.74", - "@directus/schema": "9.0.0-rc.74", - "@directus/specs": "9.0.0-rc.74", + "@directus/app": "9.0.0-rc.75", + "@directus/drive": "9.0.0-rc.75", + "@directus/drive-azure": "9.0.0-rc.75", + "@directus/drive-gcs": "9.0.0-rc.75", + "@directus/drive-s3": "9.0.0-rc.75", + "@directus/format-title": "9.0.0-rc.75", + "@directus/schema": "9.0.0-rc.75", + "@directus/specs": "9.0.0-rc.75", "@godaddy/terminus": "^4.9.0", "@keyv/redis": "^2.1.2", "@types/async": "^3.2.6", @@ -73330,7 +73316,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, + "devOptional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -75056,7 +75042,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "devOptional": true }, "fast-copy": { "version": "2.1.1", @@ -75463,7 +75449,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "devOptional": true }, "fork-ts-checker-webpack-plugin": { "version": "3.1.1", @@ -75850,7 +75836,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.2", @@ -75863,7 +75848,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -78436,7 +78420,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, + "devOptional": true, "requires": { "assert-plus": "^1.0.0" } @@ -79336,13 +79320,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "devOptional": true }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, + "devOptional": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -79873,7 +79857,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, + "devOptional": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -80841,7 +80825,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "devOptional": true }, "istanbul-lib-coverage": { "version": "3.0.0", @@ -82589,7 +82573,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "devOptional": true }, "jsdom": { "version": "16.6.0", @@ -82702,7 +82686,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "devOptional": true }, "json-schema-traverse": { "version": "0.4.1", @@ -82836,7 +82820,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, + "devOptional": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -82894,7 +82878,6 @@ "version": "7.7.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", - "dev": true, "optional": true, "requires": { "node-addon-api": "^3.0.0", @@ -88419,7 +88402,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "devOptional": true }, "pg": { "version": "8.6.0", @@ -91413,7 +91396,7 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, + "devOptional": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -91441,7 +91424,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, + "devOptional": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -91452,13 +91435,13 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "devOptional": true }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, + "devOptional": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -92963,7 +92946,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, "optional": true, "requires": { "fstream": "^1.0.0", @@ -92984,7 +92966,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, "optional": true, "requires": { "abbrev": "1" @@ -92994,7 +92975,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -93004,14 +92984,12 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, "optional": true }, "tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, "optional": true, "requires": { "block-stream": "*", @@ -93023,7 +93001,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "optional": true, "requires": { "isexe": "^2.0.0" @@ -93061,7 +93038,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, + "devOptional": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -96161,7 +96138,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "devOptional": true }, "type": { "version": "1.2.0", @@ -96954,7 +96931,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, + "devOptional": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", diff --git a/packages/drive-s3/package.json b/packages/drive-s3/package.json index 99cb4f303d..3f1408da88 100644 --- a/packages/drive-s3/package.json +++ b/packages/drive-s3/package.json @@ -35,7 +35,7 @@ }, "dependencies": { "@directus/drive": "9.0.0-rc.75", - "aws-sdk": "^2.925.0", + "aws-sdk": "^2.926.0", "normalize-path": "^3.0.0" }, "devDependencies": { From 8695050a4d2ad31a5142c5c4baba72d8173bd722 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 09:21:17 -0400 Subject: [PATCH 29/38] Bump eslint-plugin-vue from 7.10.0 to 7.11.0 (#6200) Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 7.10.0 to 7.11.0. - [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases) - [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v7.10.0...v7.11.0) --- updated-dependencies: - dependency-name: eslint-plugin-vue dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 170 ++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 96 insertions(+), 76 deletions(-) diff --git a/package-lock.json b/package-lock.json index 65f62b55dc..2e38200d3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-prettier-vue": "^3.1.0", - "eslint-plugin-vue": "^7.10.0", + "eslint-plugin-vue": "^7.11.0", "globby": "^11.0.3", "jest": "^27.0.4", "knex": "^0.95.6", @@ -11699,7 +11699,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "devOptional": true, + "dev": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -11733,7 +11733,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.8" } @@ -11998,7 +11998,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -12007,7 +12007,7 @@ "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "devOptional": true + "dev": true }, "node_modules/axe-core": { "version": "4.2.2", @@ -12611,7 +12611,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "devOptional": true, + "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -12733,6 +12733,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, "optional": true, "dependencies": { "inherits": "~2.0.0" @@ -13620,7 +13621,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "devOptional": true + "dev": true }, "node_modules/ccount": { "version": "1.1.0", @@ -16260,7 +16261,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -17333,7 +17334,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "devOptional": true, + "dev": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -18413,9 +18414,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.10.0.tgz", - "integrity": "sha512-xdr6e4t/L2moRAeEQ9HKgge/hFq+w9v5Dj+BA54nTAzSFdUyKLiSOdZaRQjCHMY0Pk2WaQBFH9QiWG60xiC+6A==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.11.0.tgz", + "integrity": "sha512-Qwo8wilqnOXnG9B5auEiTstyaHefyhHd5lEhhxemwXoWsAxIW2yppzuVudowC5n+qn1nMLNV9TANkTthBK7Waw==", "dev": true, "dependencies": { "eslint-utils": "^2.1.0", @@ -19566,7 +19567,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ] @@ -20070,7 +20071,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "devOptional": true, + "dev": true, "engines": { "node": "*" } @@ -20557,6 +20558,7 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -20572,6 +20574,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -23899,7 +23902,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -25070,7 +25073,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "devOptional": true, + "dev": true, "engines": { "node": ">=4" } @@ -25080,7 +25083,7 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", - "devOptional": true, + "dev": true, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -25741,7 +25744,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "devOptional": true, + "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -27095,7 +27098,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "devOptional": true + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.0.0", @@ -29397,7 +29400,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "devOptional": true + "dev": true }, "node_modules/jsdom": { "version": "16.6.0", @@ -29538,7 +29541,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "devOptional": true + "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -29709,7 +29712,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ], @@ -29776,6 +29779,7 @@ "version": "7.7.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", + "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { @@ -36677,7 +36681,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "devOptional": true + "dev": true }, "node_modules/pg": { "version": "8.6.0", @@ -40356,7 +40360,7 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "devOptional": true, + "dev": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -40416,7 +40420,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "devOptional": true, + "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -40430,7 +40434,7 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.6" } @@ -40439,7 +40443,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, + "dev": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -42260,6 +42264,7 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, "optional": true, "dependencies": { "fstream": "^1.0.0", @@ -42286,6 +42291,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, "optional": true, "dependencies": { "abbrev": "1" @@ -42298,6 +42304,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -42310,6 +42317,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, "optional": true, "bin": { "semver": "bin/semver" @@ -42319,6 +42327,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, "optional": true, "dependencies": { "block-stream": "*", @@ -42330,6 +42339,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "optional": true, "dependencies": { "isexe": "^2.0.0" @@ -42377,7 +42387,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "devOptional": true, + "dev": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -46323,7 +46333,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "devOptional": true + "dev": true }, "node_modules/type": { "version": "1.2.0", @@ -47327,7 +47337,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "devOptional": true, + "dev": true, "engines": [ "node >=0.6.0" ], @@ -51215,7 +51225,7 @@ "@directus/sdk-js": "^9.0.0-rc.53", "@lnfusion/gatsby-source-graphql": "0.0.4", "chalk": "^4.1.1", - "gatsby-source-filesystem": "^3.6.0", + "gatsby-source-filesystem": "^3.7.1", "invariant": "^2.2.4", "ms": "^2.1.3" } @@ -53138,9 +53148,9 @@ } }, "packages/gatsby-source-directus/node_modules/gatsby-core-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.7.0.tgz", - "integrity": "sha512-0yma1pr5bNAR4rnd4E+3sct+Fr+wjfWoz5dRQCE5Swb1vZ1b6l7QW4KxTPQhwNgbI+tgYakJhp+pgxPLFpXxHA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.7.1.tgz", + "integrity": "sha512-ofiAzLMeLjkS9huo0JQRbNzOfwCCxzPg7mSXeEhZhHGfbXoqZ9ZufmlTTgSYLc5v6agoM4yi4rHqdMOXu4qXAw==", "dependencies": { "ci-info": "2.0.0", "configstore": "^5.0.1", @@ -53392,16 +53402,16 @@ } }, "packages/gatsby-source-directus/node_modules/gatsby-source-filesystem": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.7.0.tgz", - "integrity": "sha512-6w67rcL2n0YxJ1c7YzWbjDKsMgldroTA9oiYmvRmHwhOF7diUijoj3/6wZDHfrZZtFvRVoDqa6MI0ahlyJt5RA==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.7.1.tgz", + "integrity": "sha512-JLMFJxvGnmVFW0UDr6r3XlqCp9GJ5Eqz4baWe9cVSdn61rz6YuV+BrtZIRBkqaWbnhv14+z7J+59OxpLG/kXHg==", "dependencies": { "@babel/runtime": "^7.14.0", "better-queue": "^3.8.10", "chokidar": "^3.4.3", "file-type": "^16.0.0", "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.7.0", + "gatsby-core-utils": "^2.7.1", "got": "^9.6.0", "md5-file": "^5.0.0", "mime": "^2.4.6", @@ -57796,7 +57806,7 @@ "@directus/sdk-js": "^9.0.0-rc.53", "@lnfusion/gatsby-source-graphql": "0.0.4", "chalk": "^4.1.1", - "gatsby-source-filesystem": "^3.6.0", + "gatsby-source-filesystem": "^3.7.1", "invariant": "^2.2.4", "ms": "^2.1.3" }, @@ -59211,9 +59221,9 @@ } }, "gatsby-core-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.7.0.tgz", - "integrity": "sha512-0yma1pr5bNAR4rnd4E+3sct+Fr+wjfWoz5dRQCE5Swb1vZ1b6l7QW4KxTPQhwNgbI+tgYakJhp+pgxPLFpXxHA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.7.1.tgz", + "integrity": "sha512-ofiAzLMeLjkS9huo0JQRbNzOfwCCxzPg7mSXeEhZhHGfbXoqZ9ZufmlTTgSYLc5v6agoM4yi4rHqdMOXu4qXAw==", "requires": { "ci-info": "2.0.0", "configstore": "^5.0.1", @@ -59413,16 +59423,16 @@ } }, "gatsby-source-filesystem": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.7.0.tgz", - "integrity": "sha512-6w67rcL2n0YxJ1c7YzWbjDKsMgldroTA9oiYmvRmHwhOF7diUijoj3/6wZDHfrZZtFvRVoDqa6MI0ahlyJt5RA==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-3.7.1.tgz", + "integrity": "sha512-JLMFJxvGnmVFW0UDr6r3XlqCp9GJ5Eqz4baWe9cVSdn61rz6YuV+BrtZIRBkqaWbnhv14+z7J+59OxpLG/kXHg==", "requires": { "@babel/runtime": "^7.14.0", "better-queue": "^3.8.10", "chokidar": "^3.4.3", "file-type": "^16.0.0", "fs-extra": "^8.1.0", - "gatsby-core-utils": "^2.7.0", + "gatsby-core-utils": "^2.7.1", "got": "^9.6.0", "md5-file": "^5.0.0", "mime": "^2.4.6", @@ -68368,7 +68378,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "devOptional": true, + "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -68419,7 +68429,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "devOptional": true + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -68633,13 +68643,13 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "devOptional": true + "dev": true }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "devOptional": true + "dev": true }, "axe-core": { "version": "4.2.2", @@ -69100,7 +69110,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "devOptional": true, + "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -69203,6 +69213,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, "optional": true, "requires": { "inherits": "~2.0.0" @@ -69920,7 +69931,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "devOptional": true + "dev": true }, "ccount": { "version": "1.1.0", @@ -72144,7 +72155,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -73316,7 +73327,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "devOptional": true, + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -74291,9 +74302,9 @@ "requires": {} }, "eslint-plugin-vue": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.10.0.tgz", - "integrity": "sha512-xdr6e4t/L2moRAeEQ9HKgge/hFq+w9v5Dj+BA54nTAzSFdUyKLiSOdZaRQjCHMY0Pk2WaQBFH9QiWG60xiC+6A==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.11.0.tgz", + "integrity": "sha512-Qwo8wilqnOXnG9B5auEiTstyaHefyhHd5lEhhxemwXoWsAxIW2yppzuVudowC5n+qn1nMLNV9TANkTthBK7Waw==", "dev": true, "requires": { "eslint-utils": "^2.1.0", @@ -75042,7 +75053,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "devOptional": true + "dev": true }, "fast-copy": { "version": "2.1.1", @@ -75449,7 +75460,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "devOptional": true + "dev": true }, "fork-ts-checker-webpack-plugin": { "version": "3.1.1", @@ -75836,6 +75847,7 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.2", @@ -75848,6 +75860,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -78420,7 +78433,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -79320,13 +79333,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "devOptional": true + "dev": true }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "devOptional": true, + "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -79857,7 +79870,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -80825,7 +80838,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "devOptional": true + "dev": true }, "istanbul-lib-coverage": { "version": "3.0.0", @@ -82573,7 +82586,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "devOptional": true + "dev": true }, "jsdom": { "version": "16.6.0", @@ -82686,7 +82699,7 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "devOptional": true + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -82820,7 +82833,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -82878,6 +82891,7 @@ "version": "7.7.0", "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", + "dev": true, "optional": true, "requires": { "node-addon-api": "^3.0.0", @@ -88402,7 +88416,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "devOptional": true + "dev": true }, "pg": { "version": "8.6.0", @@ -91396,7 +91410,7 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "devOptional": true, + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -91424,7 +91438,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "devOptional": true, + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -91435,13 +91449,13 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "devOptional": true + "dev": true }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "devOptional": true, + "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -92946,6 +92960,7 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, "optional": true, "requires": { "fstream": "^1.0.0", @@ -92966,6 +92981,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, "optional": true, "requires": { "abbrev": "1" @@ -92975,6 +92991,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -92984,12 +93001,14 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, "optional": true }, "tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, "optional": true, "requires": { "block-stream": "*", @@ -93001,6 +93020,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "optional": true, "requires": { "isexe": "^2.0.0" @@ -93038,7 +93058,7 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "devOptional": true, + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -96138,7 +96158,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "devOptional": true + "dev": true }, "type": { "version": "1.2.0", @@ -96931,7 +96951,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "devOptional": true, + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", diff --git a/package.json b/package.json index ea6079b40c..b1ed5fe858 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-prettier-vue": "^3.1.0", - "eslint-plugin-vue": "^7.10.0", + "eslint-plugin-vue": "^7.11.0", "globby": "^11.0.3", "jest": "^27.0.4", "knex": "^0.95.6", From cd2e24d82c57a2fad79dff1da95f977a43d92908 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 09:43:31 -0400 Subject: [PATCH 30/38] Bump vuedraggable from 4.0.1 to 4.0.3 (#6197) * Bump vuedraggable from 4.0.1 to 4.0.3 Bumps [vuedraggable](https://github.com/SortableJS/Vue.Draggable) from 4.0.1 to 4.0.3. - [Release notes](https://github.com/SortableJS/Vue.Draggable/releases) - [Commits](https://github.com/SortableJS/Vue.Draggable/commits) --- updated-dependencies: - dependency-name: vuedraggable dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Update vite as well * Update vite, fix imports Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: rijkvanzanten --- app/package.json | 4 ++-- .../v-field-select/v-field-select.vue | 2 +- app/src/components/v-table/v-table.vue | 2 +- app/src/interfaces/list-m2a/list-m2a.vue | 2 +- app/src/interfaces/list-m2m/list-m2m.vue | 2 +- .../list-o2m-tree-view/nested-draggable.vue | 2 +- app/src/interfaces/list-o2m/list-o2m.vue | 2 +- app/src/interfaces/list/list.vue | 2 +- app/src/layouts/tabular/options.vue | 2 +- .../fields/components/fields-management.vue | 2 +- package-lock.json | 23 +++++++++++-------- 11 files changed, 24 insertions(+), 21 deletions(-) diff --git a/app/package.json b/app/package.json index b24acf2748..89dd9e1ed2 100644 --- a/app/package.json +++ b/app/package.json @@ -82,10 +82,10 @@ "sass": "^1.34.1", "tinymce": "^5.7.1", "typescript": "^4.2.4", - "vite": "^2.1.5", + "vite": "^2.3.7", "vue": "^3.0.5", "vue-i18n": "^9.1.6", "vue-router": "^4.0.6", - "vuedraggable": "^4.0.1" + "vuedraggable": "^4.0.3" } } diff --git a/app/src/components/v-field-select/v-field-select.vue b/app/src/components/v-field-select/v-field-select.vue index 9cb069602f..3131ab4cdc 100644 --- a/app/src/components/v-field-select/v-field-select.vue +++ b/app/src/components/v-field-select/v-field-select.vue @@ -46,7 +46,7 @@ import { useI18n } from 'vue-i18n'; import { defineComponent, toRefs, ref, PropType, computed } from 'vue'; import FieldListItem from '../v-field-template/field-list-item.vue'; import { Field, Collection, Relation } from '@/types'; -import Draggable from 'vuedraggable/src/vuedraggable.js'; +import Draggable from 'vuedraggable'; import useFieldTree from '@/composables/use-field-tree'; import useCollection from '@/composables/use-collection'; import { FieldTree } from '../v-field-template/types'; diff --git a/app/src/components/v-table/v-table.vue b/app/src/components/v-table/v-table.vue index 3774ad800a..1ba4309cab 100644 --- a/app/src/components/v-table/v-table.vue +++ b/app/src/components/v-table/v-table.vue @@ -92,7 +92,7 @@ import TableRow from './table-row/'; import { sortBy, clone, forEach, pick } from 'lodash'; import { i18n } from '@/lang/'; // @TODO Use module import once vuedraggable exports an esm build or vite fixes umd imports -import Draggable from 'vuedraggable/src/vuedraggable.js'; +import Draggable from 'vuedraggable'; import hideDragImage from '@/utils/hide-drag-image'; const HeaderDefaults: Header = { diff --git a/app/src/interfaces/list-m2a/list-m2a.vue b/app/src/interfaces/list-m2a/list-m2a.vue index 25f5b846c0..482cf139af 100644 --- a/app/src/interfaces/list-m2a/list-m2a.vue +++ b/app/src/interfaces/list-m2a/list-m2a.vue @@ -149,7 +149,7 @@ import { getFieldsFromTemplate } from '@/utils/get-fields-from-template'; import { isPlainObject, cloneDeep } from 'lodash'; import { getEndpoint } from '@/utils/get-endpoint'; import { hideDragImage } from '@/utils/hide-drag-image'; -import Draggable from 'vuedraggable/src/vuedraggable.js'; +import Draggable from 'vuedraggable'; export default defineComponent({ emits: ['input'], diff --git a/app/src/interfaces/list-m2m/list-m2m.vue b/app/src/interfaces/list-m2m/list-m2m.vue index 3ab835a580..5008e4444d 100644 --- a/app/src/interfaces/list-m2m/list-m2m.vue +++ b/app/src/interfaces/list-m2m/list-m2m.vue @@ -93,7 +93,7 @@ import { defineComponent, computed, PropType, toRefs, ref } from 'vue'; import DrawerItem from '@/views/private/components/drawer-item'; import DrawerCollection from '@/views/private/components/drawer-collection'; import { get } from 'lodash'; -import Draggable from 'vuedraggable/src/vuedraggable.js'; +import Draggable from 'vuedraggable'; import useActions from './use-actions'; import useRelation from './use-relation'; diff --git a/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue b/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue index 9aeecef50e..f30e0df37d 100644 --- a/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue +++ b/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue @@ -44,7 +44,7 @@