directus 9.22.4 → 9.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +19 -14
- package/dist/auth/auth.d.ts +3 -3
- package/dist/auth/auth.js +2 -0
- package/dist/auth/drivers/ldap.d.ts +2 -2
- package/dist/auth/drivers/ldap.js +47 -36
- package/dist/auth/drivers/local.d.ts +1 -1
- package/dist/auth/drivers/local.js +13 -10
- package/dist/auth/drivers/oauth2.d.ts +1 -1
- package/dist/auth/drivers/oauth2.js +22 -15
- package/dist/auth/drivers/openid.d.ts +1 -1
- package/dist/auth/drivers/openid.js +23 -16
- package/dist/auth/drivers/saml.d.ts +1 -1
- package/dist/auth/drivers/saml.js +10 -7
- package/dist/auth.d.ts +1 -1
- package/dist/auth.js +4 -4
- package/dist/cache.d.ts +9 -1
- package/dist/cache.js +59 -16
- package/dist/cli/commands/bootstrap/index.js +2 -2
- package/dist/cli/commands/init/index.js +3 -3
- package/dist/cli/commands/schema/apply.js +21 -20
- package/dist/cli/commands/schema/snapshot.js +2 -2
- package/dist/cli/utils/create-db-connection.d.ts +2 -1
- package/dist/cli/utils/create-db-connection.js +2 -1
- package/dist/cli/utils/create-env/env-stub.liquid +1 -1
- package/dist/cli/utils/create-env/index.d.ts +2 -2
- package/dist/cli/utils/drivers.d.ts +3 -9
- package/dist/constants.d.ts +3 -9
- package/dist/constants.js +5 -10
- package/dist/controllers/activity.js +1 -2
- package/dist/controllers/assets.js +17 -12
- package/dist/controllers/auth.js +29 -15
- package/dist/controllers/dashboards.js +5 -2
- package/dist/controllers/extensions.js +7 -7
- package/dist/controllers/fields.js +4 -4
- package/dist/controllers/files.js +11 -6
- package/dist/controllers/flows.js +5 -2
- package/dist/controllers/folders.js +5 -2
- package/dist/controllers/graphql.js +6 -0
- package/dist/controllers/items.js +5 -2
- package/dist/controllers/not-found.d.ts +1 -1
- package/dist/controllers/not-found.js +1 -2
- package/dist/controllers/notifications.js +5 -2
- package/dist/controllers/operations.js +5 -2
- package/dist/controllers/panels.js +5 -2
- package/dist/controllers/permissions.js +5 -2
- package/dist/controllers/presets.js +5 -2
- package/dist/controllers/roles.js +5 -2
- package/dist/controllers/schema.d.ts +2 -0
- package/dist/controllers/schema.js +98 -0
- package/dist/controllers/shares.js +8 -5
- package/dist/controllers/users.js +16 -20
- package/dist/controllers/utils.js +6 -11
- package/dist/controllers/webhooks.js +5 -2
- package/dist/database/helpers/fn/dialects/mssql.d.ts +1 -1
- package/dist/database/helpers/fn/dialects/mssql.js +10 -11
- package/dist/database/helpers/fn/dialects/mysql.d.ts +1 -1
- package/dist/database/helpers/fn/dialects/mysql.js +2 -3
- package/dist/database/helpers/fn/dialects/oracle.d.ts +1 -1
- package/dist/database/helpers/fn/dialects/oracle.js +10 -11
- package/dist/database/helpers/fn/dialects/postgres.d.ts +1 -1
- package/dist/database/helpers/fn/dialects/postgres.js +10 -11
- package/dist/database/helpers/fn/dialects/sqlite.d.ts +1 -1
- package/dist/database/helpers/fn/dialects/sqlite.js +10 -11
- package/dist/database/helpers/fn/types.d.ts +5 -5
- package/dist/database/helpers/fn/types.js +5 -4
- package/dist/database/helpers/geometry/dialects/mssql.d.ts +3 -3
- package/dist/database/helpers/geometry/dialects/mysql.d.ts +1 -1
- package/dist/database/helpers/geometry/dialects/oracle.d.ts +3 -3
- package/dist/database/helpers/geometry/dialects/postgres.d.ts +3 -3
- package/dist/database/helpers/geometry/dialects/postgres.js +1 -2
- package/dist/database/helpers/geometry/dialects/redshift.d.ts +2 -2
- package/dist/database/helpers/geometry/dialects/sqlite.d.ts +1 -1
- package/dist/database/helpers/geometry/types.d.ts +2 -2
- package/dist/database/helpers/geometry/types.js +1 -2
- package/dist/database/helpers/index.d.ts +5 -5
- package/dist/database/helpers/schema/dialects/cockroachdb.d.ts +2 -2
- package/dist/database/helpers/schema/dialects/mssql.d.ts +1 -1
- package/dist/database/helpers/schema/dialects/mysql.d.ts +1 -1
- package/dist/database/helpers/schema/dialects/mysql.js +1 -2
- package/dist/database/helpers/schema/dialects/oracle.d.ts +5 -2
- package/dist/database/helpers/schema/dialects/oracle.js +23 -0
- package/dist/database/helpers/schema/types.d.ts +9 -7
- package/dist/database/helpers/schema/types.js +7 -1
- package/dist/database/helpers/types.d.ts +1 -1
- package/dist/database/helpers/types.js +1 -0
- package/dist/database/index.d.ts +2 -1
- package/dist/database/index.js +8 -8
- package/dist/database/migrations/20201028A-remove-collection-foreign-keys.d.ts +1 -1
- package/dist/database/migrations/20201029A-remove-system-relations.d.ts +1 -1
- package/dist/database/migrations/20201029B-remove-system-collections.d.ts +1 -1
- package/dist/database/migrations/20201029C-remove-system-fields.d.ts +1 -1
- package/dist/database/migrations/20201105A-add-cascade-system-relations.d.ts +1 -1
- package/dist/database/migrations/20201105B-change-webhook-url-type.d.ts +1 -1
- package/dist/database/migrations/20210225A-add-relations-sort-field.d.ts +1 -1
- package/dist/database/migrations/20210225A-add-relations-sort-field.js +1 -2
- package/dist/database/migrations/20210304A-remove-locked-fields.d.ts +1 -1
- package/dist/database/migrations/20210312A-webhooks-collections-text.d.ts +1 -1
- package/dist/database/migrations/20210331A-add-refresh-interval.d.ts +1 -1
- package/dist/database/migrations/20210415A-make-filesize-nullable.d.ts +1 -1
- package/dist/database/migrations/20210416A-add-collections-accountability.d.ts +1 -1
- package/dist/database/migrations/20210422A-remove-files-interface.d.ts +1 -1
- package/dist/database/migrations/20210506A-rename-interfaces.d.ts +1 -1
- package/dist/database/migrations/20210510A-restructure-relations.d.ts +1 -1
- package/dist/database/migrations/20210518A-add-foreign-key-constraints.d.ts +1 -1
- package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +1 -1
- package/dist/database/migrations/20210519A-add-system-fk-triggers.d.ts +1 -1
- package/dist/database/migrations/20210519A-add-system-fk-triggers.js +2 -2
- package/dist/database/migrations/20210521A-add-collections-icon-color.d.ts +1 -1
- package/dist/database/migrations/20210525A-add-insights.d.ts +1 -1
- package/dist/database/migrations/20210608A-add-deep-clone-config.d.ts +1 -1
- package/dist/database/migrations/20210626A-change-filesize-bigint.d.ts +1 -1
- package/dist/database/migrations/20210716A-add-conditions-to-fields.d.ts +1 -1
- package/dist/database/migrations/20210721A-add-default-folder.d.ts +1 -1
- package/dist/database/migrations/20210802A-replace-groups.d.ts +1 -1
- package/dist/database/migrations/20210803A-add-required-to-fields.d.ts +1 -1
- package/dist/database/migrations/20210805A-update-groups.d.ts +1 -1
- package/dist/database/migrations/20210805B-change-image-metadata-structure.d.ts +1 -1
- package/dist/database/migrations/20210811A-add-geometry-config.d.ts +1 -1
- package/dist/database/migrations/20210831A-remove-limit-column.d.ts +1 -1
- package/dist/database/migrations/20210903A-add-auth-provider.d.ts +1 -1
- package/dist/database/migrations/20210907A-webhooks-collections-not-null.d.ts +1 -1
- package/dist/database/migrations/20210910A-move-module-setup.d.ts +1 -1
- package/dist/database/migrations/20210920A-webhooks-url-not-null.d.ts +1 -1
- package/dist/database/migrations/20210924A-add-collection-organization.d.ts +1 -1
- package/dist/database/migrations/20210927A-replace-fields-group.d.ts +1 -1
- package/dist/database/migrations/20210927B-replace-m2m-interface.d.ts +1 -1
- package/dist/database/migrations/20210929A-rename-login-action.d.ts +1 -1
- package/dist/database/migrations/20211007A-update-presets.d.ts +1 -1
- package/dist/database/migrations/20211007A-update-presets.js +7 -9
- package/dist/database/migrations/20211009A-add-auth-data.d.ts +1 -1
- package/dist/database/migrations/20211016A-add-webhook-headers.d.ts +1 -1
- package/dist/database/migrations/20211103A-set-unique-to-user-token.d.ts +1 -1
- package/dist/database/migrations/20211103B-update-special-geometry.d.ts +1 -1
- package/dist/database/migrations/20211104A-remove-collections-listing.d.ts +1 -1
- package/dist/database/migrations/20211118A-add-notifications.d.ts +1 -1
- package/dist/database/migrations/20211211A-add-shares.d.ts +1 -1
- package/dist/database/migrations/20211230A-add-project-descriptor.d.ts +1 -1
- package/dist/database/migrations/20220303A-remove-default-project-color.d.ts +1 -1
- package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.d.ts +1 -1
- package/dist/database/migrations/20220314A-add-translation-strings.d.ts +1 -1
- package/dist/database/migrations/20220322A-rename-field-typecast-flags.d.ts +1 -1
- package/dist/database/migrations/20220323A-add-field-validation.d.ts +1 -1
- package/dist/database/migrations/20220325A-fix-typecast-flags.d.ts +1 -1
- package/dist/database/migrations/20220325B-add-default-language.d.ts +1 -1
- package/dist/database/migrations/20220402A-remove-default-value-panel-icon.d.ts +1 -1
- package/dist/database/migrations/20220429A-add-flows.d.ts +1 -1
- package/dist/database/migrations/20220429B-add-color-to-insights-icon.d.ts +1 -1
- package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.d.ts +1 -1
- package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.d.ts +1 -1
- package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.d.ts +1 -1
- package/dist/database/migrations/20220801A-update-notifications-timestamp-column.d.ts +1 -1
- package/dist/database/migrations/20220802A-add-custom-aspect-ratios.d.ts +1 -1
- package/dist/database/migrations/20220826A-add-origin-to-accountability.d.ts +1 -1
- package/dist/database/migrations/run.d.ts +1 -1
- package/dist/database/run-ast.d.ts +3 -3
- package/dist/database/run-ast.js +19 -28
- package/dist/database/seeds/run.d.ts +1 -1
- package/dist/database/seeds/run.js +1 -2
- package/dist/database/system-data/app-access-permissions/index.d.ts +1 -1
- package/dist/database/system-data/collections/index.d.ts +1 -1
- package/dist/database/system-data/fields/collections.yaml +2 -0
- package/dist/database/system-data/fields/index.d.ts +1 -1
- package/dist/database/system-data/fields/index.js +1 -2
- package/dist/database/system-data/fields/settings.yaml +4 -0
- package/dist/database/system-data/relations/index.d.ts +1 -1
- package/dist/emitter.d.ts +1 -1
- package/dist/emitter.js +3 -0
- package/dist/env.js +19 -4
- package/dist/exceptions/database/dialects/mssql.d.ts +1 -1
- package/dist/exceptions/database/dialects/mssql.js +5 -6
- package/dist/exceptions/database/dialects/mysql.d.ts +1 -1
- package/dist/exceptions/database/dialects/mysql.js +19 -25
- package/dist/exceptions/database/dialects/oracle.d.ts +1 -1
- package/dist/exceptions/database/dialects/postgres.d.ts +1 -1
- package/dist/exceptions/database/dialects/sqlite.d.ts +1 -1
- package/dist/exceptions/database/translate.d.ts +1 -1
- package/dist/exceptions/database/value-out-of-range.js +1 -1
- package/dist/exceptions/range-not-satisfiable.js +2 -3
- package/dist/extensions.d.ts +1 -1
- package/dist/extensions.js +34 -24
- package/dist/flows.js +56 -30
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +19 -3
- package/dist/messenger.js +8 -6
- package/dist/middleware/authenticate.d.ts +1 -1
- package/dist/middleware/authenticate.js +12 -5
- package/dist/middleware/cache.d.ts +1 -1
- package/dist/middleware/cache.js +7 -7
- package/dist/middleware/check-ip.d.ts +1 -1
- package/dist/middleware/check-ip.js +1 -1
- package/dist/middleware/collection-exists.d.ts +1 -1
- package/dist/middleware/collection-exists.js +2 -2
- package/dist/middleware/cors.d.ts +1 -1
- package/dist/middleware/error-handler.d.ts +1 -1
- package/dist/middleware/error-handler.js +9 -10
- package/dist/middleware/extract-token.d.ts +1 -1
- package/dist/middleware/get-permissions.d.ts +1 -1
- package/dist/middleware/graphql.d.ts +1 -1
- package/dist/middleware/graphql.js +3 -3
- package/dist/middleware/rate-limiter-global.d.ts +5 -0
- package/dist/middleware/rate-limiter-global.js +48 -0
- package/dist/middleware/{rate-limiter.d.ts → rate-limiter-ip.d.ts} +2 -2
- package/dist/middleware/{rate-limiter.js → rate-limiter-ip.js} +3 -3
- package/dist/middleware/respond.d.ts +1 -1
- package/dist/middleware/respond.js +18 -14
- package/dist/middleware/sanitize-query.d.ts +1 -1
- package/dist/middleware/schema.d.ts +1 -1
- package/dist/middleware/use-collection.d.ts +1 -1
- package/dist/operations/condition/index.d.ts +1 -1
- package/dist/operations/exec/index.js +14 -3
- package/dist/operations/item-create/index.js +1 -2
- package/dist/operations/item-delete/index.d.ts +1 -1
- package/dist/operations/item-read/index.d.ts +1 -1
- package/dist/operations/item-update/index.d.ts +1 -1
- package/dist/operations/item-update/index.js +1 -2
- package/dist/operations/notification/index.js +1 -2
- package/dist/operations/request/index.js +21 -20
- package/dist/operations/trigger/index.d.ts +2 -0
- package/dist/operations/trigger/index.js +27 -11
- package/dist/rate-limiter.d.ts +1 -1
- package/dist/rate-limiter.js +8 -8
- package/dist/request/index.d.ts +5 -0
- package/dist/request/index.js +18 -0
- package/dist/request/index.test.d.ts +1 -0
- package/dist/request/request-interceptor.d.ts +2 -0
- package/dist/request/request-interceptor.js +33 -0
- package/dist/request/request-interceptor.test.d.ts +1 -0
- package/dist/request/response-interceptor.d.ts +2 -0
- package/dist/request/response-interceptor.js +9 -0
- package/dist/request/response-interceptor.test.d.ts +1 -0
- package/dist/request/validate-ip.d.ts +1 -0
- package/dist/request/validate-ip.js +27 -0
- package/dist/request/validate-ip.test.d.ts +1 -0
- package/dist/server.js +8 -9
- package/dist/services/activity.d.ts +1 -1
- package/dist/services/activity.js +7 -6
- package/dist/services/assets.d.ts +3 -3
- package/dist/services/assets.js +33 -26
- package/dist/services/authentication.d.ts +2 -2
- package/dist/services/authentication.js +18 -15
- package/dist/services/authorization.d.ts +3 -3
- package/dist/services/authorization.js +27 -31
- package/dist/services/collections.d.ts +5 -5
- package/dist/services/collections.js +52 -48
- package/dist/services/dashboards.d.ts +1 -1
- package/dist/services/fields.d.ts +5 -5
- package/dist/services/fields.js +49 -48
- package/dist/services/files.d.ts +1 -2
- package/dist/services/files.js +70 -108
- package/dist/services/flows.d.ts +2 -2
- package/dist/services/folders.d.ts +1 -1
- package/dist/services/graphql/index.d.ts +4 -4
- package/dist/services/graphql/index.js +181 -170
- package/dist/services/graphql/utils/add-path-to-validation-error.js +1 -2
- package/dist/services/graphql/utils/process-error.d.ts +2 -2
- package/dist/services/graphql/utils/process-error.js +29 -9
- package/dist/services/import-export.d.ts +7 -5
- package/dist/services/import-export.js +41 -24
- package/dist/services/import-export.test.d.ts +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/services/items.d.ts +3 -3
- package/dist/services/items.js +67 -42
- package/dist/services/mail/index.d.ts +4 -4
- package/dist/services/mail/index.js +9 -5
- package/dist/services/meta.d.ts +3 -3
- package/dist/services/meta.js +10 -9
- package/dist/services/notifications.d.ts +3 -3
- package/dist/services/notifications.js +7 -6
- package/dist/services/operations.d.ts +2 -2
- package/dist/services/panels.d.ts +1 -1
- package/dist/services/payload.d.ts +3 -3
- package/dist/services/payload.js +124 -122
- package/dist/services/permissions.d.ts +3 -3
- package/dist/services/permissions.js +11 -11
- package/dist/services/presets.d.ts +1 -1
- package/dist/services/relations.d.ts +6 -6
- package/dist/services/relations.js +47 -43
- package/dist/services/revisions.d.ts +1 -1
- package/dist/services/roles.d.ts +2 -2
- package/dist/services/roles.js +34 -13
- package/dist/services/schema.d.ts +15 -0
- package/dist/services/schema.js +56 -0
- package/dist/services/schema.test.d.ts +1 -0
- package/dist/services/server.d.ts +3 -3
- package/dist/services/server.js +69 -13
- package/dist/services/settings.d.ts +1 -1
- package/dist/services/shares.d.ts +2 -2
- package/dist/services/shares.js +14 -15
- package/dist/services/specifications.d.ts +4 -4
- package/dist/services/specifications.js +132 -116
- package/dist/services/tfa.d.ts +2 -2
- package/dist/services/tfa.js +7 -5
- package/dist/services/users.d.ts +3 -3
- package/dist/services/users.js +89 -62
- package/dist/services/utils.d.ts +3 -3
- package/dist/services/utils.js +10 -8
- package/dist/services/webhooks.d.ts +2 -2
- package/dist/services/webhooks.js +2 -1
- package/dist/types/assets.d.ts +2 -2
- package/dist/types/ast.d.ts +1 -1
- package/dist/types/auth.d.ts +2 -2
- package/dist/types/collection.d.ts +2 -2
- package/dist/types/database.d.ts +3 -0
- package/dist/types/database.js +4 -0
- package/dist/types/events.d.ts +2 -2
- package/dist/types/graphql.d.ts +2 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/items.d.ts +7 -2
- package/dist/types/services.d.ts +5 -5
- package/dist/types/snapshot.d.ts +25 -3
- package/dist/types/snapshot.js +14 -0
- package/dist/utils/apply-diff.d.ts +9 -0
- package/dist/utils/apply-diff.js +256 -0
- package/dist/utils/apply-diff.test.d.ts +1 -0
- package/dist/utils/apply-query.d.ts +3 -3
- package/dist/utils/apply-query.js +15 -16
- package/dist/utils/apply-snapshot.d.ts +3 -5
- package/dist/utils/apply-snapshot.js +9 -240
- package/dist/utils/construct-flow-tree.d.ts +1 -1
- package/dist/utils/construct-flow-tree.js +2 -2
- package/dist/utils/filter-items.d.ts +1 -1
- package/dist/utils/get-accountability-for-role.d.ts +2 -2
- package/dist/utils/get-accountability-for-role.js +1 -1
- package/dist/utils/get-ast-from-query.d.ts +3 -3
- package/dist/utils/get-ast-from-query.js +22 -28
- package/dist/utils/get-cache-headers.d.ts +4 -2
- package/dist/utils/get-cache-headers.js +21 -21
- package/dist/utils/get-cache-headers.test.d.ts +1 -0
- package/dist/utils/get-cache-key.d.ts +1 -1
- package/dist/utils/get-cache-key.js +2 -3
- package/dist/utils/get-collection-from-alias.d.ts +1 -1
- package/dist/utils/get-column-path.d.ts +2 -2
- package/dist/utils/get-column-path.js +3 -4
- package/dist/utils/get-column.d.ts +4 -4
- package/dist/utils/get-column.js +4 -5
- package/dist/utils/get-default-value.d.ts +2 -2
- package/dist/utils/get-default-value.js +1 -2
- package/dist/utils/get-graphql-query-and-variables.d.ts +1 -1
- package/dist/utils/get-graphql-query-and-variables.js +1 -2
- package/dist/utils/get-graphql-type.d.ts +2 -2
- package/dist/utils/get-graphql-type.js +1 -1
- package/dist/utils/get-ip-from-req.d.ts +1 -1
- package/dist/utils/get-local-type.d.ts +1 -1
- package/dist/utils/get-local-type.js +3 -3
- package/dist/utils/get-milliseconds.d.ts +4 -0
- package/dist/utils/get-milliseconds.js +14 -0
- package/dist/utils/get-milliseconds.test.d.ts +1 -0
- package/dist/utils/get-permissions.d.ts +1 -1
- package/dist/utils/get-permissions.js +1 -1
- package/dist/utils/get-relation-info.d.ts +1 -1
- package/dist/utils/get-relation-info.js +3 -5
- package/dist/utils/get-relation-type.d.ts +1 -1
- package/dist/utils/get-relation-type.js +3 -4
- package/dist/utils/get-schema.d.ts +2 -2
- package/dist/utils/get-schema.js +19 -21
- package/dist/utils/get-snapshot-diff.js +10 -7
- package/dist/utils/get-snapshot.d.ts +3 -3
- package/dist/utils/get-snapshot.js +35 -14
- package/dist/utils/get-versioned-hash.d.ts +1 -0
- package/dist/utils/get-versioned-hash.js +12 -0
- package/dist/utils/get-versioned-hash.test.d.ts +1 -0
- package/dist/utils/is-directus-jwt.js +1 -1
- package/dist/utils/job-queue.js +2 -0
- package/dist/utils/jwt.d.ts +1 -1
- package/dist/utils/map-values-deep.d.ts +1 -0
- package/dist/utils/map-values-deep.js +29 -0
- package/dist/utils/map-values-deep.test.d.ts +1 -0
- package/dist/utils/merge-permissions-for-share.d.ts +1 -1
- package/dist/utils/merge-permissions-for-share.js +3 -4
- package/dist/utils/merge-permissions.d.ts +3 -3
- package/dist/utils/redact-header-cookies.d.ts +1 -0
- package/dist/utils/redact-header-cookies.js +11 -0
- package/dist/utils/redact-header-cookies.test.d.ts +1 -0
- package/dist/utils/reduce-schema.d.ts +1 -1
- package/dist/utils/reduce-schema.js +12 -12
- package/dist/utils/sanitize-query.d.ts +1 -1
- package/dist/utils/sanitize-query.js +1 -1
- package/dist/utils/sanitize-schema.d.ts +30 -0
- package/dist/utils/sanitize-schema.js +80 -0
- package/dist/utils/sanitize-schema.test.d.ts +1 -0
- package/dist/utils/should-skip-cache.d.ts +7 -0
- package/dist/utils/should-skip-cache.js +21 -0
- package/dist/utils/should-skip-cache.test.d.ts +1 -0
- package/dist/utils/track.js +3 -3
- package/dist/utils/transformations.d.ts +1 -1
- package/dist/utils/transformations.js +2 -4
- package/dist/utils/url.js +9 -8
- package/dist/utils/url.test.d.ts +1 -0
- package/dist/utils/user-name.d.ts +1 -1
- package/dist/utils/validate-diff.d.ts +7 -0
- package/dist/utils/validate-diff.js +113 -0
- package/dist/utils/validate-diff.test.d.ts +1 -0
- package/dist/utils/validate-keys.d.ts +2 -2
- package/dist/utils/validate-keys.js +1 -1
- package/dist/utils/validate-query.d.ts +1 -1
- package/dist/utils/validate-query.js +3 -3
- package/dist/utils/validate-query.test.d.ts +1 -0
- package/dist/utils/validate-snapshot.d.ts +5 -0
- package/dist/utils/validate-snapshot.js +71 -0
- package/dist/utils/validate-snapshot.test.d.ts +1 -0
- package/dist/webhooks.js +4 -3
- package/package.json +62 -62
package/dist/controllers/auth.js
CHANGED
|
@@ -4,17 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const express_1 = require("express");
|
|
7
|
+
const drivers_1 = require("../auth/drivers");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
7
9
|
const env_1 = __importDefault(require("../env"));
|
|
8
10
|
const exceptions_1 = require("../exceptions");
|
|
11
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
9
12
|
const respond_1 = require("../middleware/respond");
|
|
10
13
|
const services_1 = require("../services");
|
|
11
14
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
12
15
|
const get_auth_providers_1 = require("../utils/get-auth-providers");
|
|
13
|
-
const logger_1 = __importDefault(require("../logger"));
|
|
14
|
-
const drivers_1 = require("../auth/drivers");
|
|
15
|
-
const constants_1 = require("../constants");
|
|
16
16
|
const get_ip_from_req_1 = require("../utils/get-ip-from-req");
|
|
17
|
-
const constants_2 = require("../constants");
|
|
18
17
|
const router = (0, express_1.Router)();
|
|
19
18
|
const authProviders = (0, get_auth_providers_1.getAuthProviders)();
|
|
20
19
|
for (const authProvider of authProviders) {
|
|
@@ -48,10 +47,14 @@ if (!env_1.default.AUTH_DISABLE_DEFAULT) {
|
|
|
48
47
|
router.post('/refresh', (0, async_handler_1.default)(async (req, res, next) => {
|
|
49
48
|
const accountability = {
|
|
50
49
|
ip: (0, get_ip_from_req_1.getIPFromReq)(req),
|
|
51
|
-
userAgent: req.get('user-agent'),
|
|
52
|
-
origin: req.get('origin'),
|
|
53
50
|
role: null,
|
|
54
51
|
};
|
|
52
|
+
const userAgent = req.get('user-agent');
|
|
53
|
+
if (userAgent)
|
|
54
|
+
accountability.userAgent = userAgent;
|
|
55
|
+
const origin = req.get('origin');
|
|
56
|
+
if (origin)
|
|
57
|
+
accountability.origin = origin;
|
|
55
58
|
const authenticationService = new services_1.AuthenticationService({
|
|
56
59
|
accountability: accountability,
|
|
57
60
|
schema: req.schema,
|
|
@@ -69,19 +72,22 @@ router.post('/refresh', (0, async_handler_1.default)(async (req, res, next) => {
|
|
|
69
72
|
payload.data.refresh_token = refreshToken;
|
|
70
73
|
}
|
|
71
74
|
if (mode === 'cookie') {
|
|
72
|
-
res.cookie(env_1.default.REFRESH_TOKEN_COOKIE_NAME, refreshToken,
|
|
75
|
+
res.cookie(env_1.default.REFRESH_TOKEN_COOKIE_NAME, refreshToken, constants_1.COOKIE_OPTIONS);
|
|
73
76
|
}
|
|
74
77
|
res.locals.payload = payload;
|
|
75
78
|
return next();
|
|
76
79
|
}), respond_1.respond);
|
|
77
80
|
router.post('/logout', (0, async_handler_1.default)(async (req, res, next) => {
|
|
78
|
-
var _a;
|
|
79
81
|
const accountability = {
|
|
80
82
|
ip: (0, get_ip_from_req_1.getIPFromReq)(req),
|
|
81
|
-
userAgent: req.get('user-agent'),
|
|
82
|
-
origin: req.get('origin'),
|
|
83
83
|
role: null,
|
|
84
84
|
};
|
|
85
|
+
const userAgent = req.get('user-agent');
|
|
86
|
+
if (userAgent)
|
|
87
|
+
accountability.userAgent = userAgent;
|
|
88
|
+
const origin = req.get('origin');
|
|
89
|
+
if (origin)
|
|
90
|
+
accountability.origin = origin;
|
|
85
91
|
const authenticationService = new services_1.AuthenticationService({
|
|
86
92
|
accountability: accountability,
|
|
87
93
|
schema: req.schema,
|
|
@@ -95,7 +101,7 @@ router.post('/logout', (0, async_handler_1.default)(async (req, res, next) => {
|
|
|
95
101
|
res.clearCookie(env_1.default.REFRESH_TOKEN_COOKIE_NAME, {
|
|
96
102
|
httpOnly: true,
|
|
97
103
|
domain: env_1.default.REFRESH_TOKEN_COOKIE_DOMAIN,
|
|
98
|
-
secure:
|
|
104
|
+
secure: env_1.default.REFRESH_TOKEN_COOKIE_SECURE ?? false,
|
|
99
105
|
sameSite: env_1.default.REFRESH_TOKEN_COOKIE_SAME_SITE || 'strict',
|
|
100
106
|
});
|
|
101
107
|
}
|
|
@@ -107,10 +113,14 @@ router.post('/password/request', (0, async_handler_1.default)(async (req, res, n
|
|
|
107
113
|
}
|
|
108
114
|
const accountability = {
|
|
109
115
|
ip: (0, get_ip_from_req_1.getIPFromReq)(req),
|
|
110
|
-
userAgent: req.get('user-agent'),
|
|
111
|
-
origin: req.get('origin'),
|
|
112
116
|
role: null,
|
|
113
117
|
};
|
|
118
|
+
const userAgent = req.get('user-agent');
|
|
119
|
+
if (userAgent)
|
|
120
|
+
accountability.userAgent = userAgent;
|
|
121
|
+
const origin = req.get('origin');
|
|
122
|
+
if (origin)
|
|
123
|
+
accountability.origin = origin;
|
|
114
124
|
const service = new services_1.UsersService({ accountability, schema: req.schema });
|
|
115
125
|
try {
|
|
116
126
|
await service.requestPasswordReset(req.body.email, req.body.reset_url || null);
|
|
@@ -135,10 +145,14 @@ router.post('/password/reset', (0, async_handler_1.default)(async (req, res, nex
|
|
|
135
145
|
}
|
|
136
146
|
const accountability = {
|
|
137
147
|
ip: (0, get_ip_from_req_1.getIPFromReq)(req),
|
|
138
|
-
userAgent: req.get('user-agent'),
|
|
139
|
-
origin: req.get('origin'),
|
|
140
148
|
role: null,
|
|
141
149
|
};
|
|
150
|
+
const userAgent = req.get('user-agent');
|
|
151
|
+
if (userAgent)
|
|
152
|
+
accountability.userAgent = userAgent;
|
|
153
|
+
const origin = req.get('origin');
|
|
154
|
+
if (origin)
|
|
155
|
+
accountability.origin = origin;
|
|
142
156
|
const service = new services_1.UsersService({ accountability, schema: req.schema });
|
|
143
157
|
await service.resetPassword(req.body.token, req.body.password);
|
|
144
158
|
return next();
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_dashboards'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -82,7 +83,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
82
83
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
85
|
-
|
|
86
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
87
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
86
88
|
}
|
|
87
89
|
try {
|
|
88
90
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -126,7 +128,8 @@ router.delete('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
|
126
128
|
await service.deleteMany(req.body.keys);
|
|
127
129
|
}
|
|
128
130
|
else {
|
|
129
|
-
|
|
131
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
132
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
130
133
|
}
|
|
131
134
|
return next();
|
|
132
135
|
}), respond_1.respond);
|
|
@@ -3,16 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("@directus/shared/constants");
|
|
7
|
+
const utils_1 = require("@directus/shared/utils");
|
|
6
8
|
const express_1 = require("express");
|
|
7
|
-
const
|
|
9
|
+
const env_1 = __importDefault(require("../env"));
|
|
8
10
|
const exceptions_1 = require("../exceptions");
|
|
9
11
|
const extensions_1 = require("../extensions");
|
|
10
|
-
const ms_1 = __importDefault(require("ms"));
|
|
11
|
-
const env_1 = __importDefault(require("../env"));
|
|
12
|
-
const get_cache_headers_1 = require("../utils/get-cache-headers");
|
|
13
12
|
const respond_1 = require("../middleware/respond");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
13
|
+
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
14
|
+
const get_cache_headers_1 = require("../utils/get-cache-headers");
|
|
15
|
+
const get_milliseconds_1 = require("../utils/get-milliseconds");
|
|
16
16
|
const router = (0, express_1.Router)();
|
|
17
17
|
router.get('/:type', (0, async_handler_1.default)(async (req, res, next) => {
|
|
18
18
|
const type = (0, utils_1.depluralize)(req.params.type);
|
|
@@ -33,7 +33,7 @@ router.get('/sources/index.js', (0, async_handler_1.default)(async (req, res) =>
|
|
|
33
33
|
throw new exceptions_1.RouteNotFoundException(req.path);
|
|
34
34
|
}
|
|
35
35
|
res.setHeader('Content-Type', 'application/javascript; charset=UTF-8');
|
|
36
|
-
res.setHeader('Cache-Control',
|
|
36
|
+
res.setHeader('Cache-Control', (0, get_cache_headers_1.getCacheControlHeader)(req, (0, get_milliseconds_1.getMilliseconds)(env_1.default.EXTENSIONS_CACHE_TTL), false, false));
|
|
37
37
|
res.setHeader('Vary', 'Origin, Cache-Control');
|
|
38
38
|
res.end(extensionSource);
|
|
39
39
|
}));
|
|
@@ -3,15 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("@directus/shared/constants");
|
|
6
7
|
const express_1 = require("express");
|
|
7
8
|
const joi_1 = __importDefault(require("joi"));
|
|
8
|
-
const
|
|
9
|
+
const constants_2 = require("../constants");
|
|
9
10
|
const exceptions_1 = require("../exceptions");
|
|
10
11
|
const collection_exists_1 = __importDefault(require("../middleware/collection-exists"));
|
|
11
12
|
const respond_1 = require("../middleware/respond");
|
|
12
13
|
const use_collection_1 = __importDefault(require("../middleware/use-collection"));
|
|
13
14
|
const fields_1 = require("../services/fields");
|
|
14
|
-
const constants_2 = require("@directus/shared/constants");
|
|
15
15
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
16
16
|
const router = (0, express_1.Router)();
|
|
17
17
|
router.use((0, use_collection_1.default)('directus_fields'));
|
|
@@ -46,7 +46,7 @@ const newFieldSchema = joi_1.default.object({
|
|
|
46
46
|
collection: joi_1.default.string().optional(),
|
|
47
47
|
field: joi_1.default.string().required(),
|
|
48
48
|
type: joi_1.default.string()
|
|
49
|
-
.valid(...
|
|
49
|
+
.valid(...constants_1.TYPES, ...constants_2.ALIAS_TYPES)
|
|
50
50
|
.allow(null)
|
|
51
51
|
.optional(),
|
|
52
52
|
schema: joi_1.default.object({
|
|
@@ -110,7 +110,7 @@ router.patch('/:collection', collection_exists_1.default, (0, async_handler_1.de
|
|
|
110
110
|
}), respond_1.respond);
|
|
111
111
|
const updateSchema = joi_1.default.object({
|
|
112
112
|
type: joi_1.default.string()
|
|
113
|
-
.valid(...
|
|
113
|
+
.valid(...constants_1.TYPES, ...constants_2.ALIAS_TYPES)
|
|
114
114
|
.allow(null),
|
|
115
115
|
schema: joi_1.default.object({
|
|
116
116
|
default_value: joi_1.default.any(),
|
|
@@ -18,6 +18,7 @@ const services_1 = require("../services");
|
|
|
18
18
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
19
19
|
// @ts-ignore
|
|
20
20
|
const format_title_1 = __importDefault(require("@directus/format-title"));
|
|
21
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
21
22
|
const router = express_1.default.Router();
|
|
22
23
|
router.use((0, use_collection_1.default)('directus_files'));
|
|
23
24
|
const multipartHandler = (req, res, next) => {
|
|
@@ -63,12 +64,14 @@ const multipartHandler = (req, res, next) => {
|
|
|
63
64
|
return busboy.emit('error', new exceptions_1.InvalidPayloadException(`File is missing filename`));
|
|
64
65
|
}
|
|
65
66
|
fileCount++;
|
|
66
|
-
if (!
|
|
67
|
-
payload.title
|
|
67
|
+
if (!existingPrimaryKey) {
|
|
68
|
+
if (!payload.title) {
|
|
69
|
+
payload.title = (0, format_title_1.default)(path_1.default.parse(filename).name);
|
|
70
|
+
}
|
|
71
|
+
payload.filename_download = filename;
|
|
68
72
|
}
|
|
69
73
|
const payloadWithRequiredFields = {
|
|
70
74
|
...payload,
|
|
71
|
-
filename_download: filename,
|
|
72
75
|
type: mimeType,
|
|
73
76
|
storage: payload.storage || disk,
|
|
74
77
|
};
|
|
@@ -93,7 +96,7 @@ const multipartHandler = (req, res, next) => {
|
|
|
93
96
|
function tryDone() {
|
|
94
97
|
if (savedFiles.length === fileCount) {
|
|
95
98
|
if (fileCount === 0) {
|
|
96
|
-
return next(new exceptions_1.InvalidPayloadException(`No files
|
|
99
|
+
return next(new exceptions_1.InvalidPayloadException(`No files were included in the body`));
|
|
97
100
|
}
|
|
98
101
|
res.locals.savedFiles = savedFiles;
|
|
99
102
|
return next();
|
|
@@ -209,7 +212,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
209
212
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
210
213
|
}
|
|
211
214
|
else {
|
|
212
|
-
|
|
215
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
216
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
213
217
|
}
|
|
214
218
|
try {
|
|
215
219
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -253,7 +257,8 @@ router.delete('/', (0, validate_batch_1.validateBatch)('delete'), (0, async_hand
|
|
|
253
257
|
await service.deleteMany(req.body.keys);
|
|
254
258
|
}
|
|
255
259
|
else {
|
|
256
|
-
|
|
260
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
261
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
257
262
|
}
|
|
258
263
|
return next();
|
|
259
264
|
}), respond_1.respond);
|
|
@@ -12,6 +12,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
12
12
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
13
13
|
const services_1 = require("../services");
|
|
14
14
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
15
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
15
16
|
const router = express_1.default.Router();
|
|
16
17
|
router.use((0, use_collection_1.default)('directus_flows'));
|
|
17
18
|
const webhookFlowHandler = (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -101,7 +102,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
101
102
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
102
103
|
}
|
|
103
104
|
else {
|
|
104
|
-
|
|
105
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
106
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
105
107
|
}
|
|
106
108
|
try {
|
|
107
109
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -145,7 +147,8 @@ router.delete('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
|
145
147
|
await service.deleteMany(req.body.keys);
|
|
146
148
|
}
|
|
147
149
|
else {
|
|
148
|
-
|
|
150
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
151
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
149
152
|
}
|
|
150
153
|
return next();
|
|
151
154
|
}), respond_1.respond);
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_folders'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -91,7 +92,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
91
92
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
92
93
|
}
|
|
93
94
|
else {
|
|
94
|
-
|
|
95
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
96
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
95
97
|
}
|
|
96
98
|
try {
|
|
97
99
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -135,7 +137,8 @@ router.delete('/', (0, validate_batch_1.validateBatch)('delete'), (0, async_hand
|
|
|
135
137
|
await service.deleteMany(req.body.keys);
|
|
136
138
|
}
|
|
137
139
|
else {
|
|
138
|
-
|
|
140
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
141
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
139
142
|
}
|
|
140
143
|
return next();
|
|
141
144
|
}), respond_1.respond);
|
|
@@ -16,6 +16,9 @@ router.use('/system', graphql_1.parseGraphQL, (0, async_handler_1.default)(async
|
|
|
16
16
|
scope: 'system',
|
|
17
17
|
});
|
|
18
18
|
res.locals.payload = await service.execute(res.locals.graphqlParams);
|
|
19
|
+
if (res.locals.payload?.errors?.length > 0) {
|
|
20
|
+
res.locals.cache = false;
|
|
21
|
+
}
|
|
19
22
|
return next();
|
|
20
23
|
}), respond_1.respond);
|
|
21
24
|
router.use('/', graphql_1.parseGraphQL, (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -25,6 +28,9 @@ router.use('/', graphql_1.parseGraphQL, (0, async_handler_1.default)(async (req,
|
|
|
25
28
|
scope: 'items',
|
|
26
29
|
});
|
|
27
30
|
res.locals.payload = await service.execute(res.locals.graphqlParams);
|
|
31
|
+
if (res.locals.payload?.errors?.length > 0) {
|
|
32
|
+
res.locals.cache = false;
|
|
33
|
+
}
|
|
28
34
|
return next();
|
|
29
35
|
}), respond_1.respond);
|
|
30
36
|
exports.default = router;
|
|
@@ -10,6 +10,7 @@ const respond_1 = require("../middleware/respond");
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.post('/:collection', collection_exists_1.default, (0, async_handler_1.default)(async (req, res, next) => {
|
|
15
16
|
if (req.params.collection.startsWith('directus_'))
|
|
@@ -112,7 +113,8 @@ router.patch('/:collection', collection_exists_1.default, (0, validate_batch_1.v
|
|
|
112
113
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
113
114
|
}
|
|
114
115
|
else {
|
|
115
|
-
|
|
116
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
117
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
116
118
|
}
|
|
117
119
|
try {
|
|
118
120
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -163,7 +165,8 @@ router.delete('/:collection', collection_exists_1.default, (0, validate_batch_1.
|
|
|
163
165
|
await service.deleteMany(req.body.keys);
|
|
164
166
|
}
|
|
165
167
|
else {
|
|
166
|
-
|
|
168
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
169
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
167
170
|
}
|
|
168
171
|
return next();
|
|
169
172
|
}), respond_1.respond);
|
|
@@ -18,12 +18,11 @@ const exceptions_1 = require("../exceptions");
|
|
|
18
18
|
* @param next
|
|
19
19
|
*/
|
|
20
20
|
const notFound = async (req, res, next) => {
|
|
21
|
-
var _a;
|
|
22
21
|
try {
|
|
23
22
|
const hooksResult = await emitter_1.default.emitFilter('request.not_found', false, { request: req, response: res }, {
|
|
24
23
|
database: (0, database_1.default)(),
|
|
25
24
|
schema: req.schema,
|
|
26
|
-
accountability:
|
|
25
|
+
accountability: req.accountability ?? null,
|
|
27
26
|
});
|
|
28
27
|
if (hooksResult) {
|
|
29
28
|
return next();
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_notifications'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -91,7 +92,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
91
92
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
92
93
|
}
|
|
93
94
|
else {
|
|
94
|
-
|
|
95
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
96
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
95
97
|
}
|
|
96
98
|
try {
|
|
97
99
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -135,7 +137,8 @@ router.delete('/', (0, validate_batch_1.validateBatch)('delete'), (0, async_hand
|
|
|
135
137
|
await service.deleteMany(req.body.keys);
|
|
136
138
|
}
|
|
137
139
|
else {
|
|
138
|
-
|
|
140
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
141
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
139
142
|
}
|
|
140
143
|
return next();
|
|
141
144
|
}), respond_1.respond);
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_operations'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -82,7 +83,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
82
83
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
85
|
-
|
|
86
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
87
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
86
88
|
}
|
|
87
89
|
try {
|
|
88
90
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -126,7 +128,8 @@ router.delete('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
|
126
128
|
await service.deleteMany(req.body.keys);
|
|
127
129
|
}
|
|
128
130
|
else {
|
|
129
|
-
|
|
131
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
132
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
130
133
|
}
|
|
131
134
|
return next();
|
|
132
135
|
}), respond_1.respond);
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_panels'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -82,7 +83,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
82
83
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
85
|
-
|
|
86
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
87
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
86
88
|
}
|
|
87
89
|
try {
|
|
88
90
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -126,7 +128,8 @@ router.delete('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
|
126
128
|
await service.deleteMany(req.body.keys);
|
|
127
129
|
}
|
|
128
130
|
else {
|
|
129
|
-
|
|
131
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
132
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
130
133
|
}
|
|
131
134
|
return next();
|
|
132
135
|
}), respond_1.respond);
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_permissions'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -93,7 +94,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
93
94
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
94
95
|
}
|
|
95
96
|
else {
|
|
96
|
-
|
|
97
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
98
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
97
99
|
}
|
|
98
100
|
try {
|
|
99
101
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -137,7 +139,8 @@ router.delete('/', (0, validate_batch_1.validateBatch)('delete'), (0, async_hand
|
|
|
137
139
|
await service.deleteMany(req.body.keys);
|
|
138
140
|
}
|
|
139
141
|
else {
|
|
140
|
-
|
|
142
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
143
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
141
144
|
}
|
|
142
145
|
return next();
|
|
143
146
|
}), respond_1.respond);
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_presets'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -91,7 +92,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
91
92
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
92
93
|
}
|
|
93
94
|
else {
|
|
94
|
-
|
|
95
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
96
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
95
97
|
}
|
|
96
98
|
try {
|
|
97
99
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -135,7 +137,8 @@ router.delete('/', (0, validate_batch_1.validateBatch)('delete'), (0, async_hand
|
|
|
135
137
|
await service.deleteMany(req.body.keys);
|
|
136
138
|
}
|
|
137
139
|
else {
|
|
138
|
-
|
|
140
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
141
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
139
142
|
}
|
|
140
143
|
return next();
|
|
141
144
|
}), respond_1.respond);
|
|
@@ -10,6 +10,7 @@ const use_collection_1 = __importDefault(require("../middleware/use-collection")
|
|
|
10
10
|
const validate_batch_1 = require("../middleware/validate-batch");
|
|
11
11
|
const services_1 = require("../services");
|
|
12
12
|
const async_handler_1 = __importDefault(require("../utils/async-handler"));
|
|
13
|
+
const sanitize_query_1 = require("../utils/sanitize-query");
|
|
13
14
|
const router = express_1.default.Router();
|
|
14
15
|
router.use((0, use_collection_1.default)('directus_roles'));
|
|
15
16
|
router.post('/', (0, async_handler_1.default)(async (req, res, next) => {
|
|
@@ -82,7 +83,8 @@ router.patch('/', (0, validate_batch_1.validateBatch)('update'), (0, async_handl
|
|
|
82
83
|
keys = await service.updateMany(req.body.keys, req.body.data);
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
85
|
-
|
|
86
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
87
|
+
keys = await service.updateByQuery(sanitizedQuery, req.body.data);
|
|
86
88
|
}
|
|
87
89
|
try {
|
|
88
90
|
const result = await service.readMany(keys, req.sanitizedQuery);
|
|
@@ -126,7 +128,8 @@ router.delete('/', (0, validate_batch_1.validateBatch)('delete'), (0, async_hand
|
|
|
126
128
|
await service.deleteMany(req.body.keys);
|
|
127
129
|
}
|
|
128
130
|
else {
|
|
129
|
-
|
|
131
|
+
const sanitizedQuery = (0, sanitize_query_1.sanitizeQuery)(req.body.query, req.accountability);
|
|
132
|
+
await service.deleteByQuery(sanitizedQuery);
|
|
130
133
|
}
|
|
131
134
|
return next();
|
|
132
135
|
}), respond_1.respond);
|