@directus/api 34.0.1 → 35.0.0
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/__utils__/items-utils.js +32 -0
- package/dist/__utils__/schemas.js +297 -0
- package/dist/__utils__/snapshots.js +899 -0
- package/dist/_virtual/rolldown_runtime.js +38 -0
- package/dist/ai/chat/constants/system-prompt.js +5 -1
- package/dist/ai/chat/controllers/chat.post.js +69 -61
- package/dist/ai/chat/lib/create-ui-stream.js +71 -45
- package/dist/ai/chat/lib/transform-file-parts.js +43 -32
- package/dist/ai/chat/middleware/load-settings.js +42 -41
- package/dist/ai/chat/models/chat-request.js +77 -69
- package/dist/ai/chat/models/providers.js +23 -18
- package/dist/ai/chat/router.js +10 -5
- package/dist/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.js +40 -36
- package/dist/ai/chat/utils/fix-error-tool-calls.js +30 -28
- package/dist/ai/chat/utils/format-context.js +87 -89
- package/dist/ai/chat/utils/parse-json-schema-7.js +84 -73
- package/dist/ai/devtools/index.js +38 -0
- package/dist/ai/files/adapters/anthropic.js +29 -24
- package/dist/ai/files/adapters/google.js +60 -57
- package/dist/ai/files/adapters/index.js +5 -3
- package/dist/ai/files/adapters/openai.js +26 -21
- package/dist/ai/files/controllers/upload.js +101 -95
- package/dist/ai/files/lib/fetch-provider.js +27 -22
- package/dist/ai/files/lib/upload-to-provider.js +32 -25
- package/dist/ai/files/router.js +10 -5
- package/dist/ai/files/types.js +1 -1
- package/dist/ai/mcp/index.js +3 -1
- package/dist/ai/mcp/server.js +293 -301
- package/dist/ai/mcp/transport.js +22 -18
- package/dist/ai/mcp/types.js +1 -1
- package/dist/ai/providers/anthropic-file-support.js +91 -89
- package/dist/ai/providers/anthropic-tool-search.js +33 -0
- package/dist/ai/providers/index.js +5 -3
- package/dist/ai/providers/options.js +27 -24
- package/dist/ai/providers/registry.js +65 -60
- package/dist/ai/providers/types.js +1 -1
- package/dist/ai/telemetry/braintrust.js +27 -0
- package/dist/ai/telemetry/index.js +79 -0
- package/dist/ai/telemetry/langfuse.js +67 -0
- package/dist/ai/tools/assets/index.js +56 -55
- package/dist/ai/tools/collections/index.js +96 -89
- package/dist/ai/tools/define-tool.js +6 -2
- package/dist/ai/tools/fields/index.js +157 -162
- package/dist/ai/tools/files/index.js +109 -104
- package/dist/ai/tools/flows/index.js +99 -87
- package/dist/ai/tools/folders/index.js +103 -98
- package/dist/ai/tools/index.js +32 -28
- package/dist/ai/tools/items/index.js +149 -146
- package/dist/ai/tools/operations/index.js +88 -80
- package/dist/ai/tools/relations/index.js +100 -91
- package/dist/ai/tools/schema/index.js +240 -302
- package/dist/ai/tools/schema.js +198 -205
- package/dist/ai/tools/system/index.js +23 -22
- package/dist/ai/tools/trigger-flow/index.js +62 -49
- package/dist/ai/tools/types.js +1 -1
- package/dist/ai/tools/utils.js +20 -15
- package/dist/app.js +296 -288
- package/dist/auth/auth.js +46 -41
- package/dist/auth/drivers/index.js +7 -5
- package/dist/auth/drivers/ldap.js +314 -342
- package/dist/auth/drivers/local.js +86 -89
- package/dist/auth/drivers/oauth2.js +369 -385
- package/dist/auth/drivers/openid.js +429 -447
- package/dist/auth/drivers/saml.js +172 -172
- package/dist/auth/utils/generate-callback-url.js +38 -35
- package/dist/auth/utils/resolve-login-redirect.js +54 -60
- package/dist/auth.js +66 -60
- package/dist/bus/index.js +3 -1
- package/dist/bus/lib/use-bus.js +29 -19
- package/dist/cache.js +136 -124
- package/dist/cli/commands/bootstrap/index.js +61 -59
- package/dist/cli/commands/cache/clear.js +33 -0
- package/dist/cli/commands/count/index.js +25 -21
- package/dist/cli/commands/database/install.js +20 -16
- package/dist/cli/commands/database/migrate.js +26 -23
- package/dist/cli/commands/init/index.js +116 -100
- package/dist/cli/commands/init/questions.js +86 -48
- package/dist/cli/commands/roles/create.js +51 -37
- package/dist/cli/commands/schema/apply.js +188 -203
- package/dist/cli/commands/schema/snapshot.js +55 -56
- package/dist/cli/commands/security/key.js +9 -4
- package/dist/cli/commands/security/secret.js +8 -4
- package/dist/cli/commands/users/create.js +35 -23
- package/dist/cli/commands/users/passwd.js +37 -35
- package/dist/cli/index.js +53 -90
- package/dist/cli/load-extensions.js +25 -19
- package/dist/cli/run.js +9 -7
- package/dist/cli/utils/create-db-connection.js +56 -54
- package/dist/cli/utils/create-env/index.js +33 -35
- package/dist/cli/utils/drivers.js +16 -13
- package/dist/constants.js +132 -89
- package/dist/controllers/access.js +137 -140
- package/dist/controllers/activity.js +47 -46
- package/dist/controllers/assets.js +200 -241
- package/dist/controllers/auth.js +175 -175
- package/dist/controllers/collections.js +99 -99
- package/dist/controllers/comments.js +136 -138
- package/dist/controllers/dashboards.js +131 -132
- package/dist/controllers/deployment-webhooks.js +92 -93
- package/dist/controllers/deployment.js +330 -350
- package/dist/controllers/extensions.js +205 -199
- package/dist/controllers/fields.js +155 -164
- package/dist/controllers/files.js +250 -269
- package/dist/controllers/flows.js +150 -151
- package/dist/controllers/folders.js +138 -141
- package/dist/controllers/graphql.js +33 -28
- package/dist/controllers/items.js +157 -172
- package/dist/controllers/mcp.js +33 -31
- package/dist/controllers/metrics.js +33 -29
- package/dist/controllers/not-found.js +35 -28
- package/dist/controllers/notifications.js +138 -141
- package/dist/controllers/operations.js +131 -132
- package/dist/controllers/panels.js +131 -132
- package/dist/controllers/permissions.js +162 -166
- package/dist/controllers/policies.js +155 -160
- package/dist/controllers/presets.js +138 -141
- package/dist/controllers/relations.js +96 -102
- package/dist/controllers/revisions.js +40 -32
- package/dist/controllers/roles.js +152 -152
- package/dist/controllers/schema.js +97 -92
- package/dist/controllers/server.js +84 -81
- package/dist/controllers/settings.js +44 -40
- package/dist/controllers/shares.js +180 -213
- package/dist/controllers/translations.js +138 -141
- package/dist/controllers/tus.js +70 -72
- package/dist/controllers/users.js +303 -308
- package/dist/controllers/utils.js +149 -134
- package/dist/controllers/versions.js +178 -176
- package/dist/database/errors/dialects/mssql.js +137 -153
- package/dist/database/errors/dialects/mysql.js +123 -137
- package/dist/database/errors/dialects/oracle.js +24 -20
- package/dist/database/errors/dialects/postgres.js +91 -94
- package/dist/database/errors/dialects/sqlite.js +48 -46
- package/dist/database/errors/dialects/types.js +1 -1
- package/dist/database/errors/translate.js +47 -42
- package/dist/database/get-ast-from-query/get-ast-from-query.js +51 -52
- package/dist/database/get-ast-from-query/lib/convert-wildcards.js +74 -78
- package/dist/database/get-ast-from-query/lib/parse-fields.js +231 -246
- package/dist/database/get-ast-from-query/utils/get-allowed-sort.js +31 -34
- package/dist/database/get-ast-from-query/utils/get-deep-query.js +20 -15
- package/dist/database/get-ast-from-query/utils/get-related-collection.js +16 -12
- package/dist/database/helpers/capabilities/dialects/default.js +7 -3
- package/dist/database/helpers/capabilities/dialects/mysql.js +11 -9
- package/dist/database/helpers/capabilities/dialects/postgres.js +14 -14
- package/dist/database/helpers/capabilities/index.js +18 -7
- package/dist/database/helpers/capabilities/types.js +20 -15
- package/dist/database/helpers/date/dialects/default.js +7 -3
- package/dist/database/helpers/date/dialects/mssql.js +13 -8
- package/dist/database/helpers/date/dialects/mysql.js +17 -12
- package/dist/database/helpers/date/dialects/oracle.js +27 -27
- package/dist/database/helpers/date/dialects/sqlite.js +27 -28
- package/dist/database/helpers/date/index.js +20 -7
- package/dist/database/helpers/date/types.js +25 -22
- package/dist/database/helpers/fn/dialects/mssql.js +64 -63
- package/dist/database/helpers/fn/dialects/mysql.js +70 -67
- package/dist/database/helpers/fn/dialects/oracle.js +64 -63
- package/dist/database/helpers/fn/dialects/postgres.js +87 -84
- package/dist/database/helpers/fn/dialects/sqlite.js +61 -78
- package/dist/database/helpers/fn/index.js +20 -7
- package/dist/database/helpers/fn/json/parse-function.js +60 -61
- package/dist/database/helpers/fn/types.js +48 -56
- package/dist/database/helpers/geometry/dialects/mssql.js +42 -34
- package/dist/database/helpers/geometry/dialects/mysql.js +21 -12
- package/dist/database/helpers/geometry/dialects/oracle.js +49 -37
- package/dist/database/helpers/geometry/dialects/postgres.js +27 -18
- package/dist/database/helpers/geometry/dialects/redshift.js +21 -12
- package/dist/database/helpers/geometry/dialects/sqlite.js +19 -10
- package/dist/database/helpers/geometry/index.js +21 -7
- package/dist/database/helpers/geometry/types.js +59 -51
- package/dist/database/helpers/index.js +26 -21
- package/dist/database/helpers/number/dialects/default.js +7 -3
- package/dist/database/helpers/number/dialects/mssql.js +16 -11
- package/dist/database/helpers/number/dialects/oracle.js +12 -7
- package/dist/database/helpers/number/dialects/postgres.js +18 -15
- package/dist/database/helpers/number/dialects/sqlite.js +12 -7
- package/dist/database/helpers/number/index.js +20 -7
- package/dist/database/helpers/number/types.js +14 -9
- package/dist/database/helpers/number/utils/decimal-limit.js +17 -9
- package/dist/database/helpers/number/utils/maybe-stringify-big-int.js +9 -5
- package/dist/database/helpers/number/utils/number-in-range.js +18 -19
- package/dist/database/helpers/schema/dialects/cockroachdb.js +63 -81
- package/dist/database/helpers/schema/dialects/default.js +7 -3
- package/dist/database/helpers/schema/dialects/mssql.js +64 -84
- package/dist/database/helpers/schema/dialects/mysql.js +61 -103
- package/dist/database/helpers/schema/dialects/oracle.js +96 -116
- package/dist/database/helpers/schema/dialects/postgres.js +41 -52
- package/dist/database/helpers/schema/dialects/sqlite.js +31 -29
- package/dist/database/helpers/schema/index.js +22 -7
- package/dist/database/helpers/schema/types.js +151 -154
- package/dist/database/helpers/schema/utils/prep-query-params.js +38 -34
- package/dist/database/helpers/sequence/dialects/default.js +7 -3
- package/dist/database/helpers/sequence/dialects/postgres.js +23 -13
- package/dist/database/helpers/sequence/index.js +17 -7
- package/dist/database/helpers/sequence/types.js +11 -6
- package/dist/database/helpers/types.js +9 -6
- package/dist/database/index.js +255 -287
- package/dist/database/migrations/20201028A-remove-collection-foreign-keys.js +44 -40
- package/dist/database/migrations/20201029A-remove-system-relations.js +122 -120
- package/dist/database/migrations/20201029B-remove-system-collections.js +96 -91
- package/dist/database/migrations/20201029C-remove-system-fields.js +1527 -1636
- package/dist/database/migrations/20201105A-add-cascade-system-relations.js +114 -126
- package/dist/database/migrations/20201105B-change-webhook-url-type.js +15 -10
- package/dist/database/migrations/20210225A-add-relations-sort-field.js +30 -28
- package/dist/database/migrations/20210304A-remove-locked-fields.js +12 -8
- package/dist/database/migrations/20210312A-webhooks-collections-text.js +15 -10
- package/dist/database/migrations/20210331A-add-refresh-interval.js +12 -8
- package/dist/database/migrations/20210415A-make-filesize-nullable.js +18 -13
- package/dist/database/migrations/20210416A-add-collections-accountability.js +13 -9
- package/dist/database/migrations/20210422A-remove-files-interface.js +7 -5
- package/dist/database/migrations/20210506A-rename-interfaces.js +77 -70
- package/dist/database/migrations/20210510A-restructure-relations.js +26 -25
- package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +83 -106
- package/dist/database/migrations/20210519A-add-system-fk-triggers.js +143 -162
- package/dist/database/migrations/20210521A-add-collections-icon-color.js +12 -8
- package/dist/database/migrations/20210525A-add-insights.js +33 -29
- package/dist/database/migrations/20210608A-add-deep-clone-config.js +12 -8
- package/dist/database/migrations/20210626A-change-filesize-bigint.js +22 -17
- package/dist/database/migrations/20210716A-add-conditions-to-fields.js +12 -8
- package/dist/database/migrations/20210721A-add-default-folder.js +16 -16
- package/dist/database/migrations/20210802A-replace-groups.js +35 -44
- package/dist/database/migrations/20210803A-add-required-to-fields.js +12 -8
- package/dist/database/migrations/20210805A-update-groups.js +26 -27
- package/dist/database/migrations/20210805B-change-image-metadata-structure.js +67 -82
- package/dist/database/migrations/20210811A-add-geometry-config.js +14 -10
- package/dist/database/migrations/20210831A-remove-limit-column.js +12 -8
- package/dist/database/migrations/20210903A-add-auth-provider.js +38 -33
- package/dist/database/migrations/20210907A-webhooks-collections-not-null.js +14 -11
- package/dist/database/migrations/20210910A-move-module-setup.js +18 -14
- package/dist/database/migrations/20210920A-webhooks-url-not-null.js +18 -19
- package/dist/database/migrations/20210924A-add-collection-organization.js +19 -17
- package/dist/database/migrations/20210927A-replace-fields-group.js +48 -48
- package/dist/database/migrations/20210927B-replace-m2m-interface.js +8 -14
- package/dist/database/migrations/20210929A-rename-login-action.js +8 -12
- package/dist/database/migrations/20211007A-update-presets.js +79 -96
- package/dist/database/migrations/20211009A-add-auth-data.js +12 -8
- package/dist/database/migrations/20211016A-add-webhook-headers.js +12 -8
- package/dist/database/migrations/20211103A-set-unique-to-user-token.js +12 -8
- package/dist/database/migrations/20211103B-update-special-geometry.js +8 -18
- package/dist/database/migrations/20211104A-remove-collections-listing.js +12 -8
- package/dist/database/migrations/20211118A-add-notifications.js +28 -23
- package/dist/database/migrations/20211211A-add-shares.js +37 -37
- package/dist/database/migrations/20211230A-add-project-descriptor.js +12 -8
- package/dist/database/migrations/20220303A-remove-default-project-color.js +20 -15
- package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.js +14 -10
- package/dist/database/migrations/20220314A-add-translation-strings.js +12 -8
- package/dist/database/migrations/20220322A-rename-field-typecast-flags.js +59 -70
- package/dist/database/migrations/20220323A-add-field-validation.js +14 -10
- package/dist/database/migrations/20220325A-fix-typecast-flags.js +36 -43
- package/dist/database/migrations/20220325B-add-default-language.js +26 -21
- package/dist/database/migrations/20220402A-remove-default-value-panel-icon.js +20 -15
- package/dist/database/migrations/20220429A-add-flows.js +80 -75
- package/dist/database/migrations/20220429B-add-color-to-insights-icon.js +12 -8
- package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.js +12 -8
- package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.js +12 -8
- package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.js +8 -4
- package/dist/database/migrations/20220801A-update-notifications-timestamp-column.js +15 -12
- package/dist/database/migrations/20220802A-add-custom-aspect-ratios.js +12 -8
- package/dist/database/migrations/20220826A-add-origin-to-accountability.js +18 -14
- package/dist/database/migrations/20230401A-update-material-icons.js +22 -17
- package/dist/database/migrations/20230525A-add-preview-settings.js +12 -8
- package/dist/database/migrations/20230526A-migrate-translation-strings.js +56 -48
- package/dist/database/migrations/20230721A-require-shares-fields.js +52 -48
- package/dist/database/migrations/20230823A-add-content-versioning.js +34 -36
- package/dist/database/migrations/20230927A-themes.js +51 -47
- package/dist/database/migrations/20231009A-update-csv-fields-to-text.js +42 -38
- package/dist/database/migrations/20231009B-update-panel-options.js +64 -75
- package/dist/database/migrations/20231010A-add-extensions.js +11 -7
- package/dist/database/migrations/20231215A-add-focalpoints.js +14 -10
- package/dist/database/migrations/20240122A-add-report-url-fields.js +16 -12
- package/dist/database/migrations/20240204A-marketplace.js +98 -99
- package/dist/database/migrations/20240305A-change-useragent-type.js +16 -17
- package/dist/database/migrations/20240311A-deprecate-webhooks.js +97 -121
- package/dist/database/migrations/20240422A-public-registration.js +16 -12
- package/dist/database/migrations/20240515A-add-session-window.js +12 -8
- package/dist/database/migrations/20240701A-add-tus-data.js +14 -10
- package/dist/database/migrations/20240716A-update-files-date-fields.js +29 -27
- package/dist/database/migrations/20240806A-permissions-policies.js +202 -262
- package/dist/database/migrations/20240817A-update-icon-fields-length.js +50 -53
- package/dist/database/migrations/20240909A-separate-comments.js +53 -60
- package/dist/database/migrations/20240909B-consolidate-content-versioning.js +12 -8
- package/dist/database/migrations/20240924A-migrate-legacy-comments.js +67 -79
- package/dist/database/migrations/20240924B-populate-versioning-deltas.js +26 -31
- package/dist/database/migrations/20250224A-visual-editor.js +31 -31
- package/dist/database/migrations/20250609A-license-banner.js +17 -12
- package/dist/database/migrations/20250613A-add-project-id.js +22 -24
- package/dist/database/migrations/20250718A-add-direction.js +12 -8
- package/dist/database/migrations/20250813A-add-mcp.js +20 -16
- package/dist/database/migrations/20251012A-add-field-searchable.js +12 -8
- package/dist/database/migrations/20251014A-add-project-owner.js +40 -35
- package/dist/database/migrations/20251028A-add-retention-indexes.js +53 -40
- package/dist/database/migrations/20251103A-add-ai-settings.js +16 -12
- package/dist/database/migrations/20251224A-remove-webhooks.js +21 -17
- package/dist/database/migrations/20260110A-add-ai-provider-settings.js +45 -33
- package/dist/database/migrations/20260113A-add-revisions-index.js +49 -39
- package/dist/database/migrations/20260128A-add-collaborative-editing.js +12 -8
- package/dist/database/migrations/20260204A-add-deployment.js +34 -30
- package/dist/database/migrations/20260211A-add-deployment-webhooks.js +39 -35
- package/dist/database/migrations/run.js +113 -109
- package/dist/database/run-ast/lib/apply-query/add-join.js +81 -85
- package/dist/database/run-ast/lib/apply-query/aggregate.js +34 -23
- package/dist/database/run-ast/lib/apply-query/filter/get-filter-type.js +27 -19
- package/dist/database/run-ast/lib/apply-query/filter/index.js +136 -150
- package/dist/database/run-ast/lib/apply-query/filter/operator.js +174 -182
- package/dist/database/run-ast/lib/apply-query/filter/validate-operator.js +17 -17
- package/dist/database/run-ast/lib/apply-query/get-filter-path.js +17 -12
- package/dist/database/run-ast/lib/apply-query/get-operation.js +26 -17
- package/dist/database/run-ast/lib/apply-query/index.js +88 -88
- package/dist/database/run-ast/lib/apply-query/join-filter-with-cases.js +13 -11
- package/dist/database/run-ast/lib/apply-query/mock.js +9 -4
- package/dist/database/run-ast/lib/apply-query/pagination.js +14 -9
- package/dist/database/run-ast/lib/apply-query/search.js +75 -77
- package/dist/database/run-ast/lib/apply-query/sort.js +90 -86
- package/dist/database/run-ast/lib/get-db-query.js +181 -241
- package/dist/database/run-ast/lib/parse-current-level.js +54 -47
- package/dist/database/run-ast/modules/fetch-permitted-ast-root-fields.js +44 -27
- package/dist/database/run-ast/run-ast.js +131 -129
- package/dist/database/run-ast/types.js +1 -1
- package/dist/database/run-ast/utils/apply-case-when.js +29 -26
- package/dist/database/run-ast/utils/apply-function-to-column-name.js +29 -26
- package/dist/database/run-ast/utils/apply-parent-filters.js +58 -56
- package/dist/database/run-ast/utils/generate-alias.js +48 -52
- package/dist/database/run-ast/utils/get-column-pre-processor.js +66 -66
- package/dist/database/run-ast/utils/get-column.js +64 -64
- package/dist/database/run-ast/utils/get-field-alias.js +9 -5
- package/dist/database/run-ast/utils/get-inner-query-column-pre-processor.js +30 -23
- package/dist/database/run-ast/utils/merge-with-parent-items.js +127 -137
- package/dist/database/run-ast/utils/remove-temporary-fields.js +70 -78
- package/dist/database/run-ast/utils/with-preprocess-bindings.js +17 -14
- package/dist/database/seeds/run.js +77 -78
- package/dist/deployment/deployment.js +34 -29
- package/dist/deployment/drivers/index.js +4 -2
- package/dist/deployment/drivers/netlify.js +372 -358
- package/dist/deployment/drivers/vercel.js +276 -285
- package/dist/deployment/index.js +6 -2
- package/dist/deployment.js +66 -62
- package/dist/emitter.js +101 -89
- package/dist/extensions/index.js +12 -7
- package/dist/extensions/lib/get-extensions-path.js +13 -8
- package/dist/extensions/lib/get-extensions-settings.js +117 -128
- package/dist/extensions/lib/get-extensions.js +20 -11
- package/dist/extensions/lib/get-shared-deps-mapping.js +30 -26
- package/dist/extensions/lib/installation/index.js +12 -7
- package/dist/extensions/lib/installation/manager.js +100 -95
- package/dist/extensions/lib/sandbox/generate-api-extensions-sandbox-entrypoint.js +66 -43
- package/dist/extensions/lib/sandbox/generate-host-function-reference.js +19 -16
- package/dist/extensions/lib/sandbox/register/action.js +23 -17
- package/dist/extensions/lib/sandbox/register/call-reference.js +28 -21
- package/dist/extensions/lib/sandbox/register/filter.js +26 -20
- package/dist/extensions/lib/sandbox/register/index.js +7 -5
- package/dist/extensions/lib/sandbox/register/operation.js +27 -21
- package/dist/extensions/lib/sandbox/register/route.js +52 -43
- package/dist/extensions/lib/sandbox/sdk/generators/index.js +5 -3
- package/dist/extensions/lib/sandbox/sdk/generators/log.js +14 -11
- package/dist/extensions/lib/sandbox/sdk/generators/request.js +56 -48
- package/dist/extensions/lib/sandbox/sdk/generators/sleep.js +13 -10
- package/dist/extensions/lib/sandbox/sdk/index.js +4 -2
- package/dist/extensions/lib/sandbox/sdk/instantiate.js +32 -26
- package/dist/extensions/lib/sandbox/sdk/sdk.js +32 -9
- package/dist/extensions/lib/sandbox/sdk/utils/index.js +3 -1
- package/dist/extensions/lib/sandbox/sdk/utils/wrap.js +50 -47
- package/dist/extensions/lib/sync/status.js +30 -29
- package/dist/extensions/lib/sync/sync.js +83 -89
- package/dist/extensions/lib/sync/tracker.js +68 -71
- package/dist/extensions/lib/sync/utils.js +53 -54
- package/dist/extensions/lib/wrap-embeds.js +9 -6
- package/dist/extensions/manager.js +718 -746
- package/dist/flows.js +574 -427
- package/dist/index.js +3 -1
- package/dist/lock/index.js +3 -1
- package/dist/lock/lib/use-lock.js +28 -18
- package/dist/logger/index.js +186 -179
- package/dist/logger/logs-stream.js +45 -40
- package/dist/logger/redact-query.js +16 -12
- package/dist/mailer.js +61 -60
- package/dist/metrics/index.js +3 -1
- package/dist/metrics/lib/create-metrics.js +250 -233
- package/dist/metrics/lib/use-metrics.js +19 -14
- package/dist/metrics/types/metric.js +1 -1
- package/dist/middleware/authenticate.js +46 -47
- package/dist/middleware/cache.js +61 -57
- package/dist/middleware/collection-exists.js +24 -24
- package/dist/middleware/cors.js +17 -12
- package/dist/middleware/error-handler.js +77 -86
- package/dist/middleware/extract-token.js +37 -43
- package/dist/middleware/graphql.js +70 -68
- package/dist/middleware/rate-limiter-global.js +41 -38
- package/dist/middleware/rate-limiter-ip.js +36 -29
- package/dist/middleware/rate-limiter-registration.js +32 -29
- package/dist/middleware/request-counter.js +28 -0
- package/dist/middleware/respond.js +97 -109
- package/dist/middleware/sanitize-query.js +25 -27
- package/dist/middleware/schema.js +11 -6
- package/dist/middleware/use-collection.js +10 -5
- package/dist/middleware/validate-batch.js +41 -42
- package/dist/node_modules/.pnpm/@jridgewell_sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.js +445 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/index.js +176 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/system/policy.js +54 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/any/any.js +13 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/any/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/argument/argument.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/argument/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/array/array.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/array/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.js +37 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/awaited/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/bigint/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/boolean/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/clone/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/clone/type.js +17 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/clone/value.js +35 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/composite/composite.js +42 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/composite/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/computed/computed.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/computed/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/const/const.js +52 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/const/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.js +17 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.js +14 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/create/immutable.js +32 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/create/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/create/type.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/date/date.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/date/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/discard/discard.js +12 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/discard/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/enum/enum.js +23 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/enum/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/error/error.js +10 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/error/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.js +11 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.js +25 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.js +267 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.js +29 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.js +21 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.js +21 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/index.js +7 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.js +11 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/extract.js +25 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/function/function.js +17 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/function/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/kind.js +204 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/type.js +293 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/value.js +68 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.js +8 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/helpers/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/index.js +6 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.js +27 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.js +24 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.js +24 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.js +67 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instance-type/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.js +13 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instantiate/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.js +102 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/integer/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/integer/integer.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.js +23 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.js +35 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.js +17 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.js +10 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.js +8 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.js +30 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.js +54 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.js +10 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.js +10 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.js +10 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/iterator/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/index.js +6 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.js +21 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.js +17 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.js +52 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.js +38 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/literal/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/literal/literal.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.js +14 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.js +14 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.js +86 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/module/compute.js +144 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/module/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/module/module.js +44 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/never/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/never/never.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/not/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/not/not.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/null/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/null/null.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/number/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/number/number.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/object/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/object/object.js +33 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.js +27 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.js +21 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/omit.js +65 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/optional/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/optional/optional.js +29 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/parameters/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.js +14 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/partial/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.js +21 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/partial/partial.js +62 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/patterns/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.js +12 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.js +27 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.js +21 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/pick.js +63 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/promise/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/promise/promise.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.js +29 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.js +13 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/record/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/record/record.js +92 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/recursive/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.js +24 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/ref/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/ref/ref.js +19 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/regexp/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.js +19 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/registry/format.js +30 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/registry/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/registry/type.js +30 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/required/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/required/required.js +60 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/rest/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/rest/rest.js +13 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/return-type/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.js +13 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.js +1 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/schema/index.js +4 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/schema/schema.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/sets/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/sets/set.js +42 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/static/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/static/static.js +1 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/string/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/string/string.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbol/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbols/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.js +14 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.js +28 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.js +37 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/index.js +9 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.js +125 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.js +24 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.js +55 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.js +20 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.js +16 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/transform/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/transform/transform.js +51 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/tuple/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.js +24 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/index.js +10 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/javascript.js +123 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/json.js +263 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/type.js +191 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/uint8array/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/undefined/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/index.js +5 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union-create.js +14 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.js +33 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union-type.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union.js +13 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unknown/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.js +12 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unsafe/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.js +12 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/void/index.js +3 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/void/void.js +15 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/value/guard/guard.js +140 -0
- package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/value/guard/index.js +3 -0
- package/dist/node_modules/.pnpm/@vitest_expect@3.2.4/node_modules/@vitest/expect/dist/index.js +1714 -0
- package/dist/node_modules/.pnpm/@vitest_pretty-format@3.2.4/node_modules/@vitest/pretty-format/dist/index.js +1287 -0
- package/dist/node_modules/.pnpm/@vitest_runner@3.2.4/node_modules/@vitest/runner/dist/chunk-hooks.js +2151 -0
- package/dist/node_modules/.pnpm/@vitest_runner@3.2.4/node_modules/@vitest/runner/dist/index.js +8 -0
- package/dist/node_modules/.pnpm/@vitest_runner@3.2.4/node_modules/@vitest/runner/dist/utils.js +8 -0
- package/dist/node_modules/.pnpm/@vitest_snapshot@3.2.4/node_modules/@vitest/snapshot/dist/index.js +2082 -0
- package/dist/node_modules/.pnpm/@vitest_spy@3.2.4/node_modules/@vitest/spy/dist/index.js +192 -0
- package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/chunk-_commonjsHelpers.js +158 -0
- package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/diff.js +1535 -0
- package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/error.js +155 -0
- package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/helpers.js +244 -0
- package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/index.js +621 -0
- package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/source-map.js +890 -0
- package/dist/node_modules/.pnpm/chai@5.3.3/node_modules/chai/index.js +3558 -0
- package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/branding.js +13 -0
- package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/index.js +115 -0
- package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/messages.js +77 -0
- package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/overloads.js +13 -0
- package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/utils.js +30 -0
- package/dist/node_modules/.pnpm/js-tokens@9.0.1/node_modules/js-tokens/index.js +398 -0
- package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/MockClient.js +79 -0
- package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/MockConnection.js +64 -0
- package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/Tracker.js +185 -0
- package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/constants.js +30 -0
- package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/index.js +37 -0
- package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/utils.js +17 -0
- package/dist/node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js +1486 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/arguments.js +11 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/array.js +18 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/bigint.js +11 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/class.js +19 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/date.js +15 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/error.js +39 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/function.js +14 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/helpers.js +141 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/html.js +43 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/index.js +138 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/map.js +25 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/number.js +22 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/object.js +27 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/promise.js +6 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/regexp.js +12 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/set.js +18 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/string.js +27 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/symbol.js +10 -0
- package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/typedarray.js +36 -0
- package/dist/node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.js +1258 -0
- package/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/index.js +21 -0
- package/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.js +478 -0
- package/dist/node_modules/.pnpm/strip-literal@3.1.0/node_modules/strip-literal/dist/index.js +84 -0
- package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js +85 -0
- package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.js +15 -0
- package/dist/node_modules/.pnpm/tinyspy@4.0.4/node_modules/tinyspy/dist/index.js +158 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js +8 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/chunks/benchmark.CYdenmiT.js +41 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js +50 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/chunks/index.CdQS2e2Q.js +38 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js +66 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js +2986 -0
- package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.0.10_jiti@2.6.1_jsdom@2_4abc0aa80426c2cc5a9175f21e1d4ebb/node_modules/vitest/dist/index.js +24 -0
- package/dist/operations/condition/index.js +23 -21
- package/dist/operations/exec/index.js +49 -44
- package/dist/operations/item-create/index.js +49 -36
- package/dist/operations/item-delete/index.js +56 -44
- package/dist/operations/item-read/index.js +56 -44
- package/dist/operations/item-update/index.js +62 -51
- package/dist/operations/json-web-token/index.js +33 -35
- package/dist/operations/log/index.js +14 -9
- package/dist/operations/mail/index.js +39 -25
- package/dist/operations/mail/rate-limiter.js +26 -25
- package/dist/operations/notification/index.js +52 -42
- package/dist/operations/request/index.js +47 -39
- package/dist/operations/sleep/index.js +11 -6
- package/dist/operations/throw-error/index.js +14 -9
- package/dist/operations/transform/index.js +12 -7
- package/dist/operations/trigger/index.js +42 -37
- package/dist/packages/types/dist/index.js +403 -0
- package/dist/permissions/cache.js +28 -25
- package/dist/permissions/lib/fetch-permissions.js +33 -26
- package/dist/permissions/lib/fetch-policies.js +42 -41
- package/dist/permissions/lib/fetch-roles-tree.js +10 -5
- package/dist/permissions/lib/with-app-minimal-permissions.js +14 -9
- package/dist/permissions/modules/fetch-accountability-collection-access/fetch-accountability-collection-access.js +56 -54
- package/dist/permissions/modules/fetch-accountability-policy-globals/fetch-accountability-policy-globals.js +14 -15
- package/dist/permissions/modules/fetch-allowed-collections/fetch-allowed-collections.js +26 -11
- package/dist/permissions/modules/fetch-allowed-field-map/fetch-allowed-field-map.js +40 -25
- package/dist/permissions/modules/fetch-allowed-fields/fetch-allowed-fields.js +34 -19
- package/dist/permissions/modules/fetch-global-access/fetch-global-access.js +33 -26
- package/dist/permissions/modules/fetch-inconsistent-field-map/fetch-inconsistent-field-map.js +38 -25
- package/dist/permissions/modules/fetch-policies-ip-access/fetch-policies-ip-access.js +27 -27
- package/dist/permissions/modules/process-ast/lib/extract-fields-from-children.js +33 -48
- package/dist/permissions/modules/process-ast/lib/extract-fields-from-query.js +55 -55
- package/dist/permissions/modules/process-ast/lib/field-map-from-ast.js +15 -7
- package/dist/permissions/modules/process-ast/lib/get-cases.js +30 -39
- package/dist/permissions/modules/process-ast/lib/inject-cases.js +44 -50
- package/dist/permissions/modules/process-ast/process-ast.js +45 -38
- package/dist/permissions/modules/process-ast/types.js +1 -1
- package/dist/permissions/modules/process-ast/utils/collections-in-field-map.js +10 -6
- package/dist/permissions/modules/process-ast/utils/context-has-dynamic-variables.js +6 -2
- package/dist/permissions/modules/process-ast/utils/dedupe-access.js +32 -28
- package/dist/permissions/modules/process-ast/utils/extract-paths-from-query.js +54 -58
- package/dist/permissions/modules/process-ast/utils/find-related-collection.js +12 -8
- package/dist/permissions/modules/process-ast/utils/flatten-filter.js +30 -33
- package/dist/permissions/modules/process-ast/utils/format-a2o-key.js +6 -2
- package/dist/permissions/modules/process-ast/utils/get-info-for-path.js +13 -6
- package/dist/permissions/modules/process-ast/utils/has-item-permissions.js +6 -2
- package/dist/permissions/modules/process-ast/utils/stringify-query-path.js +6 -2
- package/dist/permissions/modules/process-ast/utils/validate-path/create-error.js +13 -14
- package/dist/permissions/modules/process-ast/utils/validate-path/validate-path-existence.js +16 -11
- package/dist/permissions/modules/process-ast/utils/validate-path/validate-path-permissions.js +28 -27
- package/dist/permissions/modules/process-payload/lib/is-field-nullable.js +13 -10
- package/dist/permissions/modules/process-payload/process-payload.js +77 -82
- package/dist/permissions/modules/validate-access/lib/validate-collection-access.js +19 -9
- package/dist/permissions/modules/validate-access/lib/validate-item-access.js +108 -99
- package/dist/permissions/modules/validate-access/validate-access.js +33 -39
- package/dist/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.js +10 -7
- package/dist/permissions/modules/validate-remaining-admin/validate-remaining-admin-users.js +14 -9
- package/dist/permissions/types.js +1 -1
- package/dist/permissions/utils/create-default-accountability.js +14 -10
- package/dist/permissions/utils/default-permission.js +10 -6
- package/dist/permissions/utils/extract-required-dynamic-variable-context.js +47 -42
- package/dist/permissions/utils/fetch-dynamic-variable-data.js +62 -69
- package/dist/permissions/utils/fetch-raw-permissions.js +33 -37
- package/dist/permissions/utils/fetch-share-info.js +17 -8
- package/dist/permissions/utils/filter-policies-by-ip.js +16 -14
- package/dist/permissions/utils/get-permissions-for-share.js +163 -176
- package/dist/permissions/utils/get-unaliased-field-key.js +21 -23
- package/dist/permissions/utils/merge-fields.js +23 -28
- package/dist/permissions/utils/merge-permissions.js +78 -104
- package/dist/permissions/utils/process-permissions.js +15 -10
- package/dist/permissions/utils/with-cache.js +30 -25
- package/dist/rate-limiter.js +28 -26
- package/dist/redis/index.js +5 -3
- package/dist/redis/lib/create-redis.js +15 -10
- package/dist/redis/lib/use-redis.js +21 -19
- package/dist/redis/utils/redis-config-available.js +14 -9
- package/dist/request/agent-with-ip-validation.js +27 -35
- package/dist/request/index.js +19 -14
- package/dist/request/is-denied-ip.js +41 -39
- package/dist/schedules/metrics.js +45 -42
- package/dist/schedules/project.js +26 -25
- package/dist/schedules/retention.js +105 -106
- package/dist/schedules/telemetry.js +30 -26
- package/dist/schedules/tus.js +24 -21
- package/dist/server.js +155 -151
- package/dist/services/access.js +43 -43
- package/dist/services/activity.js +11 -6
- package/dist/services/assets/name-deduper.js +28 -23
- package/dist/services/assets.js +292 -300
- package/dist/services/authentication.js +410 -444
- package/dist/services/collections.js +592 -646
- package/dist/services/comments.js +143 -132
- package/dist/services/dashboards.js +11 -6
- package/dist/services/deployment-projects.js +135 -138
- package/dist/services/deployment-runs.js +87 -92
- package/dist/services/deployment.js +459 -449
- package/dist/services/extensions.js +211 -227
- package/dist/services/fields/build-collection-and-field-relations.js +53 -53
- package/dist/services/fields/get-collection-meta-updates.js +68 -69
- package/dist/services/fields/get-collection-relation-list.js +26 -26
- package/dist/services/fields.js +732 -810
- package/dist/services/files/lib/extract-metadata.js +34 -31
- package/dist/services/files/lib/get-sharp-instance.js +14 -9
- package/dist/services/files/utils/get-metadata.js +101 -105
- package/dist/services/files/utils/parse-image-metadata.js +70 -64
- package/dist/services/files.js +409 -328
- package/dist/services/flows.js +34 -27
- package/dist/services/folders.js +83 -81
- package/dist/services/graphql/errors/execution.js +7 -2
- package/dist/services/graphql/errors/format.js +16 -11
- package/dist/services/graphql/errors/index.js +4 -2
- package/dist/services/graphql/errors/validation.js +7 -2
- package/dist/services/graphql/index.js +95 -94
- package/dist/services/graphql/resolvers/get-collection-type.js +34 -33
- package/dist/services/graphql/resolvers/get-field-type.js +51 -50
- package/dist/services/graphql/resolvers/get-relation-type.js +41 -38
- package/dist/services/graphql/resolvers/mutation.js +68 -73
- package/dist/services/graphql/resolvers/query.js +68 -68
- package/dist/services/graphql/resolvers/system-admin.js +279 -286
- package/dist/services/graphql/resolvers/system-global.js +414 -432
- package/dist/services/graphql/resolvers/system.js +406 -459
- package/dist/services/graphql/schema/get-types.js +182 -220
- package/dist/services/graphql/schema/index.js +189 -185
- package/dist/services/graphql/schema/parse-args.js +28 -33
- package/dist/services/graphql/schema/parse-query.js +106 -103
- package/dist/services/graphql/schema/read.js +451 -735
- package/dist/services/graphql/schema/write.js +119 -141
- package/dist/services/graphql/schema-cache.js +13 -7
- package/dist/services/graphql/subscription.js +91 -94
- package/dist/services/graphql/types/bigint.js +41 -42
- package/dist/services/graphql/types/date.js +10 -5
- package/dist/services/graphql/types/geojson.js +11 -6
- package/dist/services/graphql/types/hash.js +10 -5
- package/dist/services/graphql/types/string-or-float.js +31 -29
- package/dist/services/graphql/types/void.js +18 -13
- package/dist/services/graphql/utils/add-path-to-validation-error.js +18 -14
- package/dist/services/graphql/utils/aggregate-query.js +33 -37
- package/dist/services/graphql/utils/dedupe-resolvers.js +62 -0
- package/dist/services/graphql/utils/filter-replace-m2a.js +66 -63
- package/dist/services/graphql/utils/process-error.js +40 -41
- package/dist/services/graphql/utils/replace-fragments.js +30 -19
- package/dist/services/graphql/utils/replace-funcs.js +23 -19
- package/dist/services/graphql/utils/sanitize-gql-schema.js +79 -73
- package/dist/services/import-export.js +671 -633
- package/dist/services/index.js +95 -41
- package/dist/services/items.js +854 -945
- package/dist/services/mail/index.js +106 -104
- package/dist/services/mail/rate-limiter.js +26 -25
- package/dist/services/meta.js +71 -63
- package/dist/services/notifications.js +66 -58
- package/dist/services/operations.js +30 -25
- package/dist/services/panels.js +11 -6
- package/dist/services/payload.js +745 -832
- package/dist/services/permissions.js +143 -132
- package/dist/services/policies.js +74 -87
- package/dist/services/presets.js +11 -6
- package/dist/services/relations.js +438 -494
- package/dist/services/revisions.js +50 -44
- package/dist/services/roles.js +81 -87
- package/dist/services/schema.js +50 -52
- package/dist/services/server.js +320 -384
- package/dist/services/settings.js +31 -21
- package/dist/services/shares.js +138 -141
- package/dist/services/specifications.js +396 -526
- package/dist/services/tfa.js +64 -65
- package/dist/services/translations.js +46 -36
- package/dist/services/tus/data-store.js +186 -214
- package/dist/services/tus/index.js +4 -2
- package/dist/services/tus/lockers.js +77 -81
- package/dist/services/tus/server.js +109 -113
- package/dist/services/tus/utils/wait-timeout.js +16 -12
- package/dist/services/users.js +490 -525
- package/dist/services/utils.js +102 -129
- package/dist/services/versions.js +303 -314
- package/dist/services/websocket.js +45 -36
- package/dist/start.js +6 -1
- package/dist/storage/get-storage-driver.js +18 -15
- package/dist/storage/index.js +18 -16
- package/dist/storage/register-drivers.js +20 -17
- package/dist/storage/register-locations.js +28 -17
- package/dist/synchronization.js +106 -103
- package/dist/telemetry/counter/use-buffered-counter.js +138 -0
- package/dist/telemetry/counter/use-counters.js +32 -0
- package/dist/telemetry/index.js +5 -3
- package/dist/telemetry/lib/get-report.js +72 -58
- package/dist/telemetry/lib/send-report.js +24 -23
- package/dist/telemetry/lib/track.js +32 -28
- package/dist/telemetry/types/report.js +1 -1
- package/dist/telemetry/utils/check-user-limits.js +20 -16
- package/dist/telemetry/utils/format-api-request-counts.js +26 -0
- package/dist/telemetry/utils/get-extension-count.js +21 -18
- package/dist/telemetry/utils/get-field-count.js +12 -11
- package/dist/telemetry/utils/get-filesize-sum.js +9 -6
- package/dist/telemetry/utils/get-item-count.js +40 -34
- package/dist/telemetry/utils/get-random-wait-time.js +8 -4
- package/dist/telemetry/utils/get-settings.js +37 -34
- package/dist/telemetry/utils/get-user-item-count.js +24 -18
- package/dist/telemetry/utils/should-check-user-limits.js +14 -11
- package/dist/test-utils/README.md +316 -5
- package/dist/test-utils/cache.js +62 -57
- package/dist/test-utils/controllers.js +94 -93
- package/dist/test-utils/database.js +50 -50
- package/dist/test-utils/emitter.js +36 -36
- package/dist/test-utils/env.js +77 -0
- package/dist/test-utils/knex.js +208 -254
- package/dist/test-utils/schema.js +33 -33
- package/dist/test-utils/services/fields-service.js +36 -35
- package/dist/test-utils/services/files-service.js +33 -32
- package/dist/test-utils/services/folders-service.js +32 -31
- package/dist/test-utils/services/items-service.js +50 -35
- package/dist/test-utils/storage.js +150 -0
- package/dist/types/ast.js +1 -1
- package/dist/types/auth.js +1 -1
- package/dist/types/collection.js +1 -1
- package/dist/types/events.js +1 -1
- package/dist/types/index.js +9 -7
- package/dist/types/meta.js +9 -5
- package/dist/types/migration.js +1 -1
- package/dist/types/revision.js +1 -1
- package/dist/types/rolemap.js +1 -1
- package/dist/utils/apply-diff.js +276 -291
- package/dist/utils/apply-snapshot.js +27 -13
- package/dist/utils/async-handler.js +5 -1
- package/dist/utils/calculate-field-depth.js +70 -69
- package/dist/utils/compress.js +13 -10
- package/dist/utils/construct-flow-tree.js +29 -24
- package/dist/utils/create-admin.js +54 -46
- package/dist/utils/deep-map-response.js +64 -59
- package/dist/utils/delete-from-require-cache.js +15 -11
- package/dist/utils/destroy-piped-stream.js +13 -0
- package/dist/utils/encrypt.js +59 -59
- package/dist/utils/fetch-user-count/fetch-access-lookup.js +22 -22
- package/dist/utils/fetch-user-count/fetch-access-roles.js +31 -35
- package/dist/utils/fetch-user-count/fetch-active-users.js +6 -2
- package/dist/utils/fetch-user-count/fetch-user-count.js +56 -62
- package/dist/utils/fetch-user-count/get-user-count-query.js +19 -16
- package/dist/utils/filter-items.js +27 -30
- package/dist/utils/freeze-schema.js +28 -29
- package/dist/utils/generate-hash.js +11 -8
- package/dist/utils/generate-translations.js +436 -0
- package/dist/utils/get-accountability-for-role.js +35 -30
- package/dist/utils/get-accountability-for-token.js +50 -53
- package/dist/utils/get-address.js +20 -17
- package/dist/utils/get-allowed-log-levels.js +12 -9
- package/dist/utils/get-auth-providers.js +30 -23
- package/dist/utils/get-cache-headers.js +30 -37
- package/dist/utils/get-cache-key.js +29 -26
- package/dist/utils/get-collection-from-alias.js +14 -10
- package/dist/utils/get-column-path.js +62 -61
- package/dist/utils/get-config-from-env.js +43 -45
- package/dist/utils/get-default-index-name.js +23 -20
- package/dist/utils/get-default-value.js +43 -52
- package/dist/utils/get-field-relational-depth.js +24 -20
- package/dist/utils/get-field-system-rows.js +19 -16
- package/dist/utils/get-graphql-query-and-variables.js +9 -4
- package/dist/utils/get-graphql-type.js +32 -38
- package/dist/utils/get-ip-from-req.js +38 -42
- package/dist/utils/get-local-type.js +119 -129
- package/dist/utils/get-milliseconds.js +13 -8
- package/dist/utils/get-module-default.js +9 -5
- package/dist/utils/get-schema.js +160 -165
- package/dist/utils/get-secret.js +18 -13
- package/dist/utils/get-service.js +63 -59
- package/dist/utils/get-snapshot-diff.js +106 -134
- package/dist/utils/get-snapshot.js +70 -55
- package/dist/utils/get-string-byte-size.js +8 -4
- package/dist/utils/get-versioned-hash.js +12 -4
- package/dist/utils/import-file-url.js +10 -5
- package/dist/utils/is-directus-jwt.js +17 -14
- package/dist/utils/is-field-allowed.js +11 -7
- package/dist/utils/is-url-allowed.js +29 -29
- package/dist/utils/is-valid-uuid.js +22 -18
- package/dist/utils/job-queue.js +29 -25
- package/dist/utils/jwt.js +30 -27
- package/dist/utils/md.js +12 -7
- package/dist/utils/parse-filter-key.js +21 -14
- package/dist/utils/parse-numeric-string.js +20 -20
- package/dist/utils/parse-value.js +12 -9
- package/dist/utils/permissions-cacheable.js +45 -37
- package/dist/utils/redact-object.js +120 -125
- package/dist/utils/reduce-schema.js +53 -60
- package/dist/utils/require-text.js +8 -3
- package/dist/utils/require-yaml.js +10 -5
- package/dist/utils/sanitize-query.js +195 -213
- package/dist/utils/sanitize-schema.js +102 -83
- package/dist/utils/schedule.js +28 -24
- package/dist/utils/should-clear-cache.js +23 -18
- package/dist/utils/should-skip-cache.js +39 -40
- package/dist/utils/split-fields.js +33 -30
- package/dist/utils/stall.js +36 -32
- package/dist/utils/store.js +40 -0
- package/dist/utils/transaction.js +82 -81
- package/dist/utils/transformations.js +125 -129
- package/dist/utils/translations-shared.js +56 -0
- package/dist/utils/translations-validation.js +9 -0
- package/dist/utils/url.js +67 -66
- package/dist/utils/user-name.js +18 -14
- package/dist/utils/validate-diff.js +124 -150
- package/dist/utils/validate-env.js +16 -11
- package/dist/utils/validate-keys.js +22 -19
- package/dist/utils/validate-query.js +185 -198
- package/dist/utils/validate-snapshot.js +63 -73
- package/dist/utils/validate-storage.js +37 -35
- package/dist/utils/validate-user-count-integrity.js +28 -20
- package/dist/utils/verify-session-jwt.js +21 -21
- package/dist/utils/versioning/handle-version.js +96 -95
- package/dist/utils/versioning/merge-version-data.js +14 -9
- package/dist/utils/versioning/split-recursive.js +40 -26
- package/dist/websocket/authenticate.js +67 -66
- package/dist/websocket/collab/calculate-cache-metadata.js +99 -118
- package/dist/websocket/collab/collab.js +420 -479
- package/dist/websocket/collab/constants.js +16 -12
- package/dist/websocket/collab/filter-to-fields.js +18 -10
- package/dist/websocket/collab/messenger.js +252 -224
- package/dist/websocket/collab/payload-permissions.js +140 -149
- package/dist/websocket/collab/permissions-cache.js +188 -202
- package/dist/websocket/collab/room.js +569 -588
- package/dist/websocket/collab/store.js +9 -31
- package/dist/websocket/collab/types.js +1 -1
- package/dist/websocket/collab/verify-permissions.js +116 -98
- package/dist/websocket/controllers/base.js +331 -352
- package/dist/websocket/controllers/graphql.js +98 -104
- package/dist/websocket/controllers/hooks.js +117 -118
- package/dist/websocket/controllers/index.js +31 -29
- package/dist/websocket/controllers/logs.js +65 -53
- package/dist/websocket/controllers/rest.js +59 -47
- package/dist/websocket/errors.js +62 -55
- package/dist/websocket/handlers/heartbeat.js +77 -77
- package/dist/websocket/handlers/index.js +36 -35
- package/dist/websocket/handlers/items.js +111 -109
- package/dist/websocket/handlers/logs.js +122 -120
- package/dist/websocket/handlers/subscribe.js +165 -182
- package/dist/websocket/messages.js +90 -93
- package/dist/websocket/types.js +1 -1
- package/dist/websocket/utils/get-expires-at-for-token.js +12 -7
- package/dist/websocket/utils/items.js +123 -123
- package/dist/websocket/utils/message.js +26 -24
- package/dist/websocket/utils/wait-for-message.js +46 -43
- package/package.json +35 -32
- package/dist/ai/chat/constants/system-prompt.d.ts +0 -1
- package/dist/ai/chat/controllers/chat.post.d.ts +0 -2
- package/dist/ai/chat/lib/create-ui-stream.d.ts +0 -16
- package/dist/ai/chat/lib/transform-file-parts.d.ts +0 -12
- package/dist/ai/chat/middleware/load-settings.d.ts +0 -2
- package/dist/ai/chat/models/chat-request.d.ts +0 -167
- package/dist/ai/chat/models/providers.d.ts +0 -23
- package/dist/ai/chat/router.d.ts +0 -1
- package/dist/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.d.ts +0 -9
- package/dist/ai/chat/utils/fix-error-tool-calls.d.ts +0 -12
- package/dist/ai/chat/utils/format-context.d.ts +0 -5
- package/dist/ai/chat/utils/parse-json-schema-7.d.ts +0 -13
- package/dist/ai/files/adapters/anthropic.d.ts +0 -3
- package/dist/ai/files/adapters/google.d.ts +0 -3
- package/dist/ai/files/adapters/index.d.ts +0 -3
- package/dist/ai/files/adapters/openai.d.ts +0 -3
- package/dist/ai/files/controllers/upload.d.ts +0 -2
- package/dist/ai/files/lib/fetch-provider.d.ts +0 -1
- package/dist/ai/files/lib/upload-to-provider.d.ts +0 -4
- package/dist/ai/files/router.d.ts +0 -1
- package/dist/ai/files/types.d.ts +0 -5
- package/dist/ai/mcp/index.d.ts +0 -1
- package/dist/ai/mcp/server.d.ts +0 -126
- package/dist/ai/mcp/transport.d.ts +0 -13
- package/dist/ai/mcp/types.d.ts +0 -15
- package/dist/ai/providers/anthropic-file-support.d.ts +0 -12
- package/dist/ai/providers/index.d.ts +0 -3
- package/dist/ai/providers/options.d.ts +0 -14
- package/dist/ai/providers/registry.d.ts +0 -6
- package/dist/ai/providers/types.d.ts +0 -34
- package/dist/ai/tools/assets/index.d.ts +0 -3
- package/dist/ai/tools/collections/index.d.ts +0 -84
- package/dist/ai/tools/define-tool.d.ts +0 -2
- package/dist/ai/tools/fields/index.d.ts +0 -101
- package/dist/ai/tools/files/index.d.ts +0 -235
- package/dist/ai/tools/flows/index.d.ts +0 -323
- package/dist/ai/tools/folders/index.d.ts +0 -95
- package/dist/ai/tools/index.d.ts +0 -15
- package/dist/ai/tools/items/index.d.ts +0 -87
- package/dist/ai/tools/operations/index.d.ts +0 -217
- package/dist/ai/tools/relations/index.d.ts +0 -73
- package/dist/ai/tools/schema/index.d.ts +0 -54
- package/dist/ai/tools/schema.d.ts +0 -485
- package/dist/ai/tools/system/index.d.ts +0 -3
- package/dist/ai/tools/trigger-flow/index.d.ts +0 -8
- package/dist/ai/tools/types.d.ts +0 -40
- package/dist/ai/tools/utils.d.ts +0 -9
- package/dist/app.d.ts +0 -2
- package/dist/auth/auth.d.ts +0 -47
- package/dist/auth/drivers/index.d.ts +0 -5
- package/dist/auth/drivers/ldap.d.ts +0 -18
- package/dist/auth/drivers/local.d.ts +0 -9
- package/dist/auth/drivers/oauth2.d.ts +0 -18
- package/dist/auth/drivers/openid.d.ts +0 -19
- package/dist/auth/drivers/saml.d.ts +0 -13
- package/dist/auth/utils/generate-callback-url.d.ts +0 -11
- package/dist/auth/utils/resolve-login-redirect.d.ts +0 -11
- package/dist/auth.d.ts +0 -3
- package/dist/bus/index.d.ts +0 -1
- package/dist/bus/lib/use-bus.d.ts +0 -9
- package/dist/cache.d.ts +0 -31
- package/dist/cli/commands/bootstrap/index.d.ts +0 -3
- package/dist/cli/commands/count/index.d.ts +0 -1
- package/dist/cli/commands/database/install.d.ts +0 -1
- package/dist/cli/commands/database/migrate.d.ts +0 -1
- package/dist/cli/commands/init/index.d.ts +0 -1
- package/dist/cli/commands/init/questions.d.ts +0 -21
- package/dist/cli/commands/roles/create.d.ts +0 -5
- package/dist/cli/commands/schema/apply.d.ts +0 -9
- package/dist/cli/commands/schema/snapshot.d.ts +0 -4
- package/dist/cli/commands/security/key.d.ts +0 -1
- package/dist/cli/commands/security/secret.d.ts +0 -1
- package/dist/cli/commands/users/create.d.ts +0 -5
- package/dist/cli/commands/users/passwd.d.ts +0 -4
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/load-extensions.d.ts +0 -1
- package/dist/cli/run.d.ts +0 -1
- package/dist/cli/utils/create-db-connection.d.ts +0 -13
- package/dist/cli/utils/create-env/index.d.ts +0 -3
- package/dist/cli/utils/drivers.d.ts +0 -3
- package/dist/constants.d.ts +0 -30
- package/dist/controllers/access.d.ts +0 -2
- package/dist/controllers/activity.d.ts +0 -2
- package/dist/controllers/assets.d.ts +0 -2
- package/dist/controllers/auth.d.ts +0 -2
- package/dist/controllers/collections.d.ts +0 -2
- package/dist/controllers/comments.d.ts +0 -2
- package/dist/controllers/dashboards.d.ts +0 -2
- package/dist/controllers/deployment-webhooks.d.ts +0 -2
- package/dist/controllers/deployment.d.ts +0 -2
- package/dist/controllers/extensions.d.ts +0 -2
- package/dist/controllers/fields.d.ts +0 -2
- package/dist/controllers/files.d.ts +0 -4
- package/dist/controllers/flows.d.ts +0 -2
- package/dist/controllers/folders.d.ts +0 -2
- package/dist/controllers/graphql.d.ts +0 -2
- package/dist/controllers/items.d.ts +0 -2
- package/dist/controllers/mcp.d.ts +0 -2
- package/dist/controllers/metrics.d.ts +0 -2
- package/dist/controllers/not-found.d.ts +0 -14
- package/dist/controllers/notifications.d.ts +0 -2
- package/dist/controllers/operations.d.ts +0 -2
- package/dist/controllers/panels.d.ts +0 -2
- package/dist/controllers/permissions.d.ts +0 -2
- package/dist/controllers/policies.d.ts +0 -2
- package/dist/controllers/presets.d.ts +0 -2
- package/dist/controllers/relations.d.ts +0 -2
- package/dist/controllers/revisions.d.ts +0 -2
- package/dist/controllers/roles.d.ts +0 -2
- package/dist/controllers/schema.d.ts +0 -2
- package/dist/controllers/server.d.ts +0 -2
- package/dist/controllers/settings.d.ts +0 -2
- package/dist/controllers/shares.d.ts +0 -2
- package/dist/controllers/translations.d.ts +0 -2
- package/dist/controllers/tus.d.ts +0 -2
- package/dist/controllers/users.d.ts +0 -2
- package/dist/controllers/utils.d.ts +0 -2
- package/dist/controllers/versions.d.ts +0 -2
- package/dist/database/errors/dialects/mssql.d.ts +0 -3
- package/dist/database/errors/dialects/mysql.d.ts +0 -3
- package/dist/database/errors/dialects/oracle.d.ts +0 -2
- package/dist/database/errors/dialects/postgres.d.ts +0 -3
- package/dist/database/errors/dialects/sqlite.d.ts +0 -3
- package/dist/database/errors/dialects/types.d.ts +0 -41
- package/dist/database/errors/translate.d.ts +0 -12
- package/dist/database/get-ast-from-query/get-ast-from-query.d.ts +0 -16
- package/dist/database/get-ast-from-query/lib/convert-wildcards.d.ts +0 -15
- package/dist/database/get-ast-from-query/lib/parse-fields.d.ts +0 -17
- package/dist/database/get-ast-from-query/utils/get-allowed-sort.d.ts +0 -9
- package/dist/database/get-ast-from-query/utils/get-deep-query.d.ts +0 -14
- package/dist/database/get-ast-from-query/utils/get-related-collection.d.ts +0 -2
- package/dist/database/helpers/capabilities/dialects/default.d.ts +0 -3
- package/dist/database/helpers/capabilities/dialects/mysql.d.ts +0 -4
- package/dist/database/helpers/capabilities/dialects/postgres.d.ts +0 -5
- package/dist/database/helpers/capabilities/index.d.ts +0 -7
- package/dist/database/helpers/capabilities/types.d.ts +0 -11
- package/dist/database/helpers/date/dialects/default.d.ts +0 -3
- package/dist/database/helpers/date/dialects/mssql.d.ts +0 -4
- package/dist/database/helpers/date/dialects/mysql.d.ts +0 -5
- package/dist/database/helpers/date/dialects/oracle.d.ts +0 -5
- package/dist/database/helpers/date/dialects/sqlite.d.ts +0 -5
- package/dist/database/helpers/date/index.d.ts +0 -7
- package/dist/database/helpers/date/types.d.ts +0 -7
- package/dist/database/helpers/fn/dialects/mssql.d.ts +0 -15
- package/dist/database/helpers/fn/dialects/mysql.d.ts +0 -16
- package/dist/database/helpers/fn/dialects/oracle.d.ts +0 -15
- package/dist/database/helpers/fn/dialects/postgres.d.ts +0 -28
- package/dist/database/helpers/fn/dialects/sqlite.d.ts +0 -15
- package/dist/database/helpers/fn/index.d.ts +0 -7
- package/dist/database/helpers/fn/json/parse-function.d.ts +0 -19
- package/dist/database/helpers/fn/types.d.ts +0 -34
- package/dist/database/helpers/geometry/dialects/mssql.d.ts +0 -14
- package/dist/database/helpers/geometry/dialects/mysql.d.ts +0 -7
- package/dist/database/helpers/geometry/dialects/oracle.d.ts +0 -15
- package/dist/database/helpers/geometry/dialects/postgres.d.ts +0 -10
- package/dist/database/helpers/geometry/dialects/redshift.d.ts +0 -7
- package/dist/database/helpers/geometry/dialects/sqlite.d.ts +0 -6
- package/dist/database/helpers/geometry/index.d.ts +0 -7
- package/dist/database/helpers/geometry/types.d.ts +0 -20
- package/dist/database/helpers/index.d.ts +0 -19
- package/dist/database/helpers/number/dialects/default.d.ts +0 -3
- package/dist/database/helpers/number/dialects/mssql.d.ts +0 -7
- package/dist/database/helpers/number/dialects/oracle.d.ts +0 -6
- package/dist/database/helpers/number/dialects/postgres.d.ts +0 -5
- package/dist/database/helpers/number/dialects/sqlite.d.ts +0 -6
- package/dist/database/helpers/number/index.d.ts +0 -7
- package/dist/database/helpers/number/types.d.ts +0 -12
- package/dist/database/helpers/number/utils/decimal-limit.d.ts +0 -4
- package/dist/database/helpers/number/utils/maybe-stringify-big-int.d.ts +0 -1
- package/dist/database/helpers/number/utils/number-in-range.d.ts +0 -3
- package/dist/database/helpers/schema/dialects/cockroachdb.d.ts +0 -12
- package/dist/database/helpers/schema/dialects/default.d.ts +0 -3
- package/dist/database/helpers/schema/dialects/mssql.d.ts +0 -14
- package/dist/database/helpers/schema/dialects/mysql.d.ts +0 -10
- package/dist/database/helpers/schema/dialects/oracle.d.ts +0 -24
- package/dist/database/helpers/schema/dialects/postgres.d.ts +0 -8
- package/dist/database/helpers/schema/dialects/sqlite.d.ts +0 -8
- package/dist/database/helpers/schema/index.d.ts +0 -7
- package/dist/database/helpers/schema/types.d.ts +0 -63
- package/dist/database/helpers/schema/utils/prep-query-params.d.ts +0 -12
- package/dist/database/helpers/sequence/dialects/default.d.ts +0 -3
- package/dist/database/helpers/sequence/dialects/postgres.d.ts +0 -12
- package/dist/database/helpers/sequence/index.d.ts +0 -7
- package/dist/database/helpers/sequence/types.d.ts +0 -5
- package/dist/database/helpers/types.d.ts +0 -5
- package/dist/database/index.d.ts +0 -15
- package/dist/database/migrations/20201028A-remove-collection-foreign-keys.d.ts +0 -3
- package/dist/database/migrations/20201029A-remove-system-relations.d.ts +0 -3
- package/dist/database/migrations/20201029B-remove-system-collections.d.ts +0 -3
- package/dist/database/migrations/20201029C-remove-system-fields.d.ts +0 -3
- package/dist/database/migrations/20201105A-add-cascade-system-relations.d.ts +0 -8
- package/dist/database/migrations/20201105B-change-webhook-url-type.d.ts +0 -3
- package/dist/database/migrations/20210225A-add-relations-sort-field.d.ts +0 -3
- package/dist/database/migrations/20210304A-remove-locked-fields.d.ts +0 -3
- package/dist/database/migrations/20210312A-webhooks-collections-text.d.ts +0 -3
- package/dist/database/migrations/20210331A-add-refresh-interval.d.ts +0 -3
- package/dist/database/migrations/20210415A-make-filesize-nullable.d.ts +0 -3
- package/dist/database/migrations/20210416A-add-collections-accountability.d.ts +0 -3
- package/dist/database/migrations/20210422A-remove-files-interface.d.ts +0 -3
- package/dist/database/migrations/20210506A-rename-interfaces.d.ts +0 -3
- package/dist/database/migrations/20210510A-restructure-relations.d.ts +0 -3
- package/dist/database/migrations/20210518A-add-foreign-key-constraints.d.ts +0 -3
- package/dist/database/migrations/20210519A-add-system-fk-triggers.d.ts +0 -3
- package/dist/database/migrations/20210521A-add-collections-icon-color.d.ts +0 -3
- package/dist/database/migrations/20210525A-add-insights.d.ts +0 -3
- package/dist/database/migrations/20210608A-add-deep-clone-config.d.ts +0 -3
- package/dist/database/migrations/20210626A-change-filesize-bigint.d.ts +0 -3
- package/dist/database/migrations/20210716A-add-conditions-to-fields.d.ts +0 -3
- package/dist/database/migrations/20210721A-add-default-folder.d.ts +0 -3
- package/dist/database/migrations/20210802A-replace-groups.d.ts +0 -3
- package/dist/database/migrations/20210803A-add-required-to-fields.d.ts +0 -3
- package/dist/database/migrations/20210805A-update-groups.d.ts +0 -3
- package/dist/database/migrations/20210805B-change-image-metadata-structure.d.ts +0 -3
- package/dist/database/migrations/20210811A-add-geometry-config.d.ts +0 -3
- package/dist/database/migrations/20210831A-remove-limit-column.d.ts +0 -3
- package/dist/database/migrations/20210903A-add-auth-provider.d.ts +0 -3
- package/dist/database/migrations/20210907A-webhooks-collections-not-null.d.ts +0 -3
- package/dist/database/migrations/20210910A-move-module-setup.d.ts +0 -3
- package/dist/database/migrations/20210920A-webhooks-url-not-null.d.ts +0 -3
- package/dist/database/migrations/20210924A-add-collection-organization.d.ts +0 -3
- package/dist/database/migrations/20210927A-replace-fields-group.d.ts +0 -3
- package/dist/database/migrations/20210927B-replace-m2m-interface.d.ts +0 -3
- package/dist/database/migrations/20210929A-rename-login-action.d.ts +0 -3
- package/dist/database/migrations/20211007A-update-presets.d.ts +0 -3
- package/dist/database/migrations/20211009A-add-auth-data.d.ts +0 -3
- package/dist/database/migrations/20211016A-add-webhook-headers.d.ts +0 -3
- package/dist/database/migrations/20211103A-set-unique-to-user-token.d.ts +0 -3
- package/dist/database/migrations/20211103B-update-special-geometry.d.ts +0 -3
- package/dist/database/migrations/20211104A-remove-collections-listing.d.ts +0 -3
- package/dist/database/migrations/20211118A-add-notifications.d.ts +0 -3
- package/dist/database/migrations/20211211A-add-shares.d.ts +0 -3
- package/dist/database/migrations/20211230A-add-project-descriptor.d.ts +0 -3
- package/dist/database/migrations/20220303A-remove-default-project-color.d.ts +0 -3
- package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.d.ts +0 -3
- package/dist/database/migrations/20220314A-add-translation-strings.d.ts +0 -3
- package/dist/database/migrations/20220322A-rename-field-typecast-flags.d.ts +0 -3
- package/dist/database/migrations/20220323A-add-field-validation.d.ts +0 -3
- package/dist/database/migrations/20220325A-fix-typecast-flags.d.ts +0 -3
- package/dist/database/migrations/20220325B-add-default-language.d.ts +0 -3
- package/dist/database/migrations/20220402A-remove-default-value-panel-icon.d.ts +0 -3
- package/dist/database/migrations/20220429A-add-flows.d.ts +0 -3
- package/dist/database/migrations/20220429B-add-color-to-insights-icon.d.ts +0 -3
- package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.d.ts +0 -3
- package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.d.ts +0 -3
- package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.d.ts +0 -3
- package/dist/database/migrations/20220801A-update-notifications-timestamp-column.d.ts +0 -3
- package/dist/database/migrations/20220802A-add-custom-aspect-ratios.d.ts +0 -3
- package/dist/database/migrations/20220826A-add-origin-to-accountability.d.ts +0 -3
- package/dist/database/migrations/20230401A-update-material-icons.d.ts +0 -3
- package/dist/database/migrations/20230525A-add-preview-settings.d.ts +0 -3
- package/dist/database/migrations/20230526A-migrate-translation-strings.d.ts +0 -3
- package/dist/database/migrations/20230721A-require-shares-fields.d.ts +0 -3
- package/dist/database/migrations/20230823A-add-content-versioning.d.ts +0 -3
- package/dist/database/migrations/20230927A-themes.d.ts +0 -3
- package/dist/database/migrations/20231009A-update-csv-fields-to-text.d.ts +0 -3
- package/dist/database/migrations/20231009B-update-panel-options.d.ts +0 -3
- package/dist/database/migrations/20231010A-add-extensions.d.ts +0 -3
- package/dist/database/migrations/20231215A-add-focalpoints.d.ts +0 -3
- package/dist/database/migrations/20240122A-add-report-url-fields.d.ts +0 -3
- package/dist/database/migrations/20240204A-marketplace.d.ts +0 -3
- package/dist/database/migrations/20240305A-change-useragent-type.d.ts +0 -3
- package/dist/database/migrations/20240311A-deprecate-webhooks.d.ts +0 -28
- package/dist/database/migrations/20240422A-public-registration.d.ts +0 -3
- package/dist/database/migrations/20240515A-add-session-window.d.ts +0 -3
- package/dist/database/migrations/20240701A-add-tus-data.d.ts +0 -3
- package/dist/database/migrations/20240716A-update-files-date-fields.d.ts +0 -3
- package/dist/database/migrations/20240806A-permissions-policies.d.ts +0 -3
- package/dist/database/migrations/20240817A-update-icon-fields-length.d.ts +0 -3
- package/dist/database/migrations/20240909A-separate-comments.d.ts +0 -3
- package/dist/database/migrations/20240909B-consolidate-content-versioning.d.ts +0 -3
- package/dist/database/migrations/20240924A-migrate-legacy-comments.d.ts +0 -3
- package/dist/database/migrations/20240924B-populate-versioning-deltas.d.ts +0 -3
- package/dist/database/migrations/20250224A-visual-editor.d.ts +0 -3
- package/dist/database/migrations/20250609A-license-banner.d.ts +0 -3
- package/dist/database/migrations/20250613A-add-project-id.d.ts +0 -3
- package/dist/database/migrations/20250718A-add-direction.d.ts +0 -3
- package/dist/database/migrations/20250813A-add-mcp.d.ts +0 -3
- package/dist/database/migrations/20251012A-add-field-searchable.d.ts +0 -3
- package/dist/database/migrations/20251014A-add-project-owner.d.ts +0 -3
- package/dist/database/migrations/20251028A-add-retention-indexes.d.ts +0 -3
- package/dist/database/migrations/20251103A-add-ai-settings.d.ts +0 -3
- package/dist/database/migrations/20251224A-remove-webhooks.d.ts +0 -3
- package/dist/database/migrations/20260110A-add-ai-provider-settings.d.ts +0 -3
- package/dist/database/migrations/20260113A-add-revisions-index.d.ts +0 -3
- package/dist/database/migrations/20260128A-add-collaborative-editing.d.ts +0 -3
- package/dist/database/migrations/20260204A-add-deployment.d.ts +0 -3
- package/dist/database/migrations/20260211A-add-deployment-webhooks.d.ts +0 -3
- package/dist/database/migrations/run.d.ts +0 -2
- package/dist/database/run-ast/lib/apply-query/add-join.d.ts +0 -54
- package/dist/database/run-ast/lib/apply-query/aggregate.d.ts +0 -3
- package/dist/database/run-ast/lib/apply-query/filter/get-filter-type.d.ts +0 -8
- package/dist/database/run-ast/lib/apply-query/filter/index.d.ts +0 -8
- package/dist/database/run-ast/lib/apply-query/filter/operator.d.ts +0 -3
- package/dist/database/run-ast/lib/apply-query/filter/validate-operator.d.ts +0 -2
- package/dist/database/run-ast/lib/apply-query/get-filter-path.d.ts +0 -1
- package/dist/database/run-ast/lib/apply-query/get-operation.d.ts +0 -7
- package/dist/database/run-ast/lib/apply-query/index.d.ts +0 -19
- package/dist/database/run-ast/lib/apply-query/join-filter-with-cases.d.ts +0 -2
- package/dist/database/run-ast/lib/apply-query/mock.d.ts +0 -3
- package/dist/database/run-ast/lib/apply-query/pagination.d.ts +0 -3
- package/dist/database/run-ast/lib/apply-query/search.d.ts +0 -4
- package/dist/database/run-ast/lib/apply-query/sort.d.ts +0 -19
- package/dist/database/run-ast/lib/get-db-query.d.ts +0 -14
- package/dist/database/run-ast/lib/parse-current-level.d.ts +0 -7
- package/dist/database/run-ast/modules/fetch-permitted-ast-root-fields.d.ts +0 -15
- package/dist/database/run-ast/run-ast.d.ts +0 -7
- package/dist/database/run-ast/types.d.ts +0 -20
- package/dist/database/run-ast/utils/apply-case-when.d.ts +0 -17
- package/dist/database/run-ast/utils/apply-function-to-column-name.d.ts +0 -12
- package/dist/database/run-ast/utils/apply-parent-filters.d.ts +0 -3
- package/dist/database/run-ast/utils/generate-alias.d.ts +0 -6
- package/dist/database/run-ast/utils/get-column-pre-processor.d.ts +0 -10
- package/dist/database/run-ast/utils/get-column.d.ts +0 -25
- package/dist/database/run-ast/utils/get-field-alias.d.ts +0 -2
- package/dist/database/run-ast/utils/get-inner-query-column-pre-processor.d.ts +0 -5
- package/dist/database/run-ast/utils/merge-with-parent-items.d.ts +0 -3
- package/dist/database/run-ast/utils/remove-temporary-fields.d.ts +0 -3
- package/dist/database/run-ast/utils/with-preprocess-bindings.d.ts +0 -2
- package/dist/database/seeds/run.d.ts +0 -2
- package/dist/deployment/deployment.d.ts +0 -117
- package/dist/deployment/drivers/index.d.ts +0 -2
- package/dist/deployment/drivers/netlify.d.ts +0 -37
- package/dist/deployment/drivers/vercel.d.ts +0 -35
- package/dist/deployment/index.d.ts +0 -2
- package/dist/deployment.d.ts +0 -29
- package/dist/emitter.d.ts +0 -21
- package/dist/extensions/index.d.ts +0 -2
- package/dist/extensions/lib/get-extensions-path.d.ts +0 -1
- package/dist/extensions/lib/get-extensions-settings.d.ts +0 -11
- package/dist/extensions/lib/get-extensions.d.ts +0 -5
- package/dist/extensions/lib/get-shared-deps-mapping.d.ts +0 -1
- package/dist/extensions/lib/installation/index.d.ts +0 -2
- package/dist/extensions/lib/installation/manager.d.ts +0 -5
- package/dist/extensions/lib/sandbox/generate-api-extensions-sandbox-entrypoint.d.ts +0 -28
- package/dist/extensions/lib/sandbox/generate-host-function-reference.d.ts +0 -11
- package/dist/extensions/lib/sandbox/register/action.d.ts +0 -6
- package/dist/extensions/lib/sandbox/register/call-reference.d.ts +0 -5
- package/dist/extensions/lib/sandbox/register/filter.d.ts +0 -6
- package/dist/extensions/lib/sandbox/register/index.d.ts +0 -5
- package/dist/extensions/lib/sandbox/register/operation.d.ts +0 -6
- package/dist/extensions/lib/sandbox/register/route.d.ts +0 -17
- package/dist/extensions/lib/sandbox/sdk/generators/index.d.ts +0 -3
- package/dist/extensions/lib/sandbox/sdk/generators/log.d.ts +0 -3
- package/dist/extensions/lib/sandbox/sdk/generators/request.d.ts +0 -12
- package/dist/extensions/lib/sandbox/sdk/generators/sleep.d.ts +0 -3
- package/dist/extensions/lib/sandbox/sdk/index.d.ts +0 -2
- package/dist/extensions/lib/sandbox/sdk/instantiate.d.ts +0 -11
- package/dist/extensions/lib/sandbox/sdk/sdk.d.ts +0 -20
- package/dist/extensions/lib/sandbox/sdk/utils/index.d.ts +0 -1
- package/dist/extensions/lib/sandbox/sdk/utils/wrap.d.ts +0 -13
- package/dist/extensions/lib/sync/status.d.ts +0 -11
- package/dist/extensions/lib/sync/sync.d.ts +0 -6
- package/dist/extensions/lib/sync/tracker.d.ts +0 -18
- package/dist/extensions/lib/sync/utils.d.ts +0 -24
- package/dist/extensions/lib/wrap-embeds.d.ts +0 -4
- package/dist/extensions/manager.d.ts +0 -164
- package/dist/flows.d.ts +0 -29
- package/dist/index.d.ts +0 -1
- package/dist/lock/index.d.ts +0 -1
- package/dist/lock/lib/use-lock.d.ts +0 -8
- package/dist/logger/index.d.ts +0 -14
- package/dist/logger/logs-stream.d.ts +0 -10
- package/dist/logger/redact-query.d.ts +0 -1
- package/dist/mailer.d.ts +0 -2
- package/dist/metrics/index.d.ts +0 -1
- package/dist/metrics/lib/create-metrics.d.ts +0 -15
- package/dist/metrics/lib/use-metrics.d.ts +0 -17
- package/dist/metrics/types/metric.d.ts +0 -1
- package/dist/middleware/authenticate.d.ts +0 -7
- package/dist/middleware/cache.d.ts +0 -3
- package/dist/middleware/collection-exists.d.ts +0 -6
- package/dist/middleware/cors.d.ts +0 -3
- package/dist/middleware/error-handler.d.ts +0 -2
- package/dist/middleware/extract-token.d.ts +0 -12
- package/dist/middleware/graphql.d.ts +0 -2
- package/dist/middleware/rate-limiter-global.d.ts +0 -5
- package/dist/middleware/rate-limiter-ip.d.ts +0 -5
- package/dist/middleware/rate-limiter-registration.d.ts +0 -5
- package/dist/middleware/respond.d.ts +0 -2
- package/dist/middleware/sanitize-query.d.ts +0 -7
- package/dist/middleware/schema.d.ts +0 -3
- package/dist/middleware/use-collection.d.ts +0 -7
- package/dist/middleware/validate-batch.d.ts +0 -1
- package/dist/operations/condition/index.d.ts +0 -6
- package/dist/operations/exec/index.d.ts +0 -5
- package/dist/operations/item-create/index.d.ts +0 -8
- package/dist/operations/item-delete/index.d.ts +0 -10
- package/dist/operations/item-read/index.d.ts +0 -10
- package/dist/operations/item-update/index.d.ts +0 -11
- package/dist/operations/json-web-token/index.d.ts +0 -10
- package/dist/operations/log/index.d.ts +0 -5
- package/dist/operations/mail/index.d.ts +0 -13
- package/dist/operations/mail/rate-limiter.d.ts +0 -1
- package/dist/operations/notification/index.d.ts +0 -10
- package/dist/operations/request/index.d.ts +0 -11
- package/dist/operations/sleep/index.d.ts +0 -5
- package/dist/operations/throw-error/index.d.ts +0 -7
- package/dist/operations/transform/index.d.ts +0 -5
- package/dist/operations/trigger/index.d.ts +0 -8
- package/dist/permissions/cache.d.ts +0 -2
- package/dist/permissions/lib/fetch-permissions.d.ts +0 -20
- package/dist/permissions/lib/fetch-policies.d.ts +0 -14
- package/dist/permissions/lib/fetch-roles-tree.d.ts +0 -6
- package/dist/permissions/lib/with-app-minimal-permissions.d.ts +0 -2
- package/dist/permissions/modules/fetch-accountability-collection-access/fetch-accountability-collection-access.d.ts +0 -7
- package/dist/permissions/modules/fetch-accountability-policy-globals/fetch-accountability-policy-globals.d.ts +0 -3
- package/dist/permissions/modules/fetch-allowed-collections/fetch-allowed-collections.d.ts +0 -7
- package/dist/permissions/modules/fetch-allowed-field-map/fetch-allowed-field-map.d.ts +0 -8
- package/dist/permissions/modules/fetch-allowed-fields/fetch-allowed-fields.d.ts +0 -15
- package/dist/permissions/modules/fetch-global-access/fetch-global-access.d.ts +0 -12
- package/dist/permissions/modules/fetch-inconsistent-field-map/fetch-inconsistent-field-map.d.ts +0 -11
- package/dist/permissions/modules/fetch-policies-ip-access/fetch-policies-ip-access.d.ts +0 -4
- package/dist/permissions/modules/process-ast/lib/extract-fields-from-children.d.ts +0 -4
- package/dist/permissions/modules/process-ast/lib/extract-fields-from-query.d.ts +0 -3
- package/dist/permissions/modules/process-ast/lib/field-map-from-ast.d.ts +0 -4
- package/dist/permissions/modules/process-ast/lib/get-cases.d.ts +0 -6
- package/dist/permissions/modules/process-ast/lib/inject-cases.d.ts +0 -9
- package/dist/permissions/modules/process-ast/process-ast.d.ts +0 -9
- package/dist/permissions/modules/process-ast/types.d.ts +0 -18
- package/dist/permissions/modules/process-ast/utils/collections-in-field-map.d.ts +0 -2
- package/dist/permissions/modules/process-ast/utils/context-has-dynamic-variables.d.ts +0 -2
- package/dist/permissions/modules/process-ast/utils/dedupe-access.d.ts +0 -12
- package/dist/permissions/modules/process-ast/utils/extract-paths-from-query.d.ts +0 -15
- package/dist/permissions/modules/process-ast/utils/find-related-collection.d.ts +0 -3
- package/dist/permissions/modules/process-ast/utils/flatten-filter.d.ts +0 -3
- package/dist/permissions/modules/process-ast/utils/format-a2o-key.d.ts +0 -1
- package/dist/permissions/modules/process-ast/utils/get-info-for-path.d.ts +0 -5
- package/dist/permissions/modules/process-ast/utils/has-item-permissions.d.ts +0 -2
- package/dist/permissions/modules/process-ast/utils/stringify-query-path.d.ts +0 -2
- package/dist/permissions/modules/process-ast/utils/validate-path/create-error.d.ts +0 -3
- package/dist/permissions/modules/process-ast/utils/validate-path/validate-path-existence.d.ts +0 -2
- package/dist/permissions/modules/process-ast/utils/validate-path/validate-path-permissions.d.ts +0 -2
- package/dist/permissions/modules/process-payload/lib/is-field-nullable.d.ts +0 -5
- package/dist/permissions/modules/process-payload/process-payload.d.ts +0 -14
- package/dist/permissions/modules/validate-access/lib/validate-collection-access.d.ts +0 -12
- package/dist/permissions/modules/validate-access/lib/validate-item-access.d.ts +0 -22
- package/dist/permissions/modules/validate-access/validate-access.d.ts +0 -16
- package/dist/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.d.ts +0 -1
- package/dist/permissions/modules/validate-remaining-admin/validate-remaining-admin-users.d.ts +0 -4
- package/dist/permissions/types.d.ts +0 -7
- package/dist/permissions/utils/create-default-accountability.d.ts +0 -2
- package/dist/permissions/utils/default-permission.d.ts +0 -7
- package/dist/permissions/utils/extract-required-dynamic-variable-context.d.ts +0 -9
- package/dist/permissions/utils/fetch-dynamic-variable-data.d.ts +0 -9
- package/dist/permissions/utils/fetch-raw-permissions.d.ts +0 -11
- package/dist/permissions/utils/fetch-share-info.d.ts +0 -12
- package/dist/permissions/utils/filter-policies-by-ip.d.ts +0 -2
- package/dist/permissions/utils/get-permissions-for-share.d.ts +0 -4
- package/dist/permissions/utils/get-unaliased-field-key.d.ts +0 -5
- package/dist/permissions/utils/merge-fields.d.ts +0 -1
- package/dist/permissions/utils/merge-permissions.d.ts +0 -9
- package/dist/permissions/utils/process-permissions.d.ts +0 -17
- package/dist/permissions/utils/with-cache.d.ts +0 -12
- package/dist/rate-limiter.d.ts +0 -5
- package/dist/redis/index.d.ts +0 -3
- package/dist/redis/lib/create-redis.d.ts +0 -7
- package/dist/redis/lib/use-redis.d.ts +0 -16
- package/dist/redis/utils/redis-config-available.d.ts +0 -4
- package/dist/request/agent-with-ip-validation.d.ts +0 -10
- package/dist/request/index.d.ts +0 -5
- package/dist/request/is-denied-ip.d.ts +0 -1
- package/dist/schedules/metrics.d.ts +0 -7
- package/dist/schedules/project.d.ts +0 -4
- package/dist/schedules/retention.d.ts +0 -14
- package/dist/schedules/telemetry.d.ts +0 -11
- package/dist/schedules/tus.d.ts +0 -6
- package/dist/server.d.ts +0 -4
- package/dist/services/access.d.ts +0 -9
- package/dist/services/activity.d.ts +0 -5
- package/dist/services/assets/name-deduper.d.ts +0 -7
- package/dist/services/assets.d.ts +0 -35
- package/dist/services/authentication.d.ts +0 -26
- package/dist/services/collections.d.ts +0 -57
- package/dist/services/comments.d.ts +0 -12
- package/dist/services/dashboards.d.ts +0 -5
- package/dist/services/deployment-projects.d.ts +0 -49
- package/dist/services/deployment-runs.d.ts +0 -31
- package/dist/services/deployment.d.ts +0 -81
- package/dist/services/extensions.d.ts +0 -34
- package/dist/services/fields/build-collection-and-field-relations.d.ts +0 -21
- package/dist/services/fields/get-collection-meta-updates.d.ts +0 -11
- package/dist/services/fields/get-collection-relation-list.d.ts +0 -5
- package/dist/services/fields.d.ts +0 -49
- package/dist/services/files/lib/extract-metadata.d.ts +0 -3
- package/dist/services/files/lib/get-sharp-instance.d.ts +0 -2
- package/dist/services/files/utils/get-metadata.d.ts +0 -4
- package/dist/services/files/utils/parse-image-metadata.d.ts +0 -2
- package/dist/services/files.d.ts +0 -31
- package/dist/services/flows.d.ts +0 -8
- package/dist/services/folders.d.ts +0 -30
- package/dist/services/graphql/errors/execution.d.ts +0 -6
- package/dist/services/graphql/errors/format.d.ts +0 -6
- package/dist/services/graphql/errors/index.d.ts +0 -2
- package/dist/services/graphql/errors/validation.d.ts +0 -6
- package/dist/services/graphql/index.d.ts +0 -30
- package/dist/services/graphql/resolvers/get-collection-type.d.ts +0 -3
- package/dist/services/graphql/resolvers/get-field-type.d.ts +0 -3
- package/dist/services/graphql/resolvers/get-relation-type.d.ts +0 -3
- package/dist/services/graphql/resolvers/mutation.d.ts +0 -4
- package/dist/services/graphql/resolvers/query.d.ts +0 -8
- package/dist/services/graphql/resolvers/system-admin.d.ts +0 -5
- package/dist/services/graphql/resolvers/system-global.d.ts +0 -7
- package/dist/services/graphql/resolvers/system.d.ts +0 -5
- package/dist/services/graphql/schema/get-types.d.ts +0 -12
- package/dist/services/graphql/schema/index.d.ts +0 -32
- package/dist/services/graphql/schema/parse-args.d.ts +0 -9
- package/dist/services/graphql/schema/parse-query.d.ts +0 -7
- package/dist/services/graphql/schema/read.d.ts +0 -12
- package/dist/services/graphql/schema/write.d.ts +0 -9
- package/dist/services/graphql/schema-cache.d.ts +0 -3
- package/dist/services/graphql/subscription.d.ts +0 -22
- package/dist/services/graphql/types/bigint.d.ts +0 -2
- package/dist/services/graphql/types/date.d.ts +0 -2
- package/dist/services/graphql/types/geojson.d.ts +0 -2
- package/dist/services/graphql/types/hash.d.ts +0 -2
- package/dist/services/graphql/types/string-or-float.d.ts +0 -5
- package/dist/services/graphql/types/void.d.ts +0 -2
- package/dist/services/graphql/utils/add-path-to-validation-error.d.ts +0 -2
- package/dist/services/graphql/utils/aggregate-query.d.ts +0 -6
- package/dist/services/graphql/utils/filter-replace-m2a.d.ts +0 -7
- package/dist/services/graphql/utils/process-error.d.ts +0 -7
- package/dist/services/graphql/utils/replace-fragments.d.ts +0 -6
- package/dist/services/graphql/utils/replace-funcs.d.ts +0 -5
- package/dist/services/graphql/utils/sanitize-gql-schema.d.ts +0 -8
- package/dist/services/import-export.d.ts +0 -44
- package/dist/services/index.d.ts +0 -41
- package/dist/services/items.d.ts +0 -105
- package/dist/services/mail/index.d.ts +0 -32
- package/dist/services/mail/rate-limiter.d.ts +0 -1
- package/dist/services/meta.d.ts +0 -11
- package/dist/services/notifications.d.ts +0 -7
- package/dist/services/operations.d.ts +0 -8
- package/dist/services/panels.d.ts +0 -5
- package/dist/services/payload.d.ts +0 -77
- package/dist/services/permissions.d.ts +0 -14
- package/dist/services/policies.d.ts +0 -11
- package/dist/services/presets.d.ts +0 -5
- package/dist/services/relations.d.ts +0 -55
- package/dist/services/revisions.d.ts +0 -11
- package/dist/services/roles.d.ts +0 -9
- package/dist/services/schema.d.ts +0 -14
- package/dist/services/server.d.ts +0 -13
- package/dist/services/settings.d.ts +0 -6
- package/dist/services/shares.d.ts +0 -19
- package/dist/services/specifications.d.ts +0 -39
- package/dist/services/tfa.d.ts +0 -12
- package/dist/services/translations.d.ts +0 -8
- package/dist/services/tus/data-store.d.ts +0 -33
- package/dist/services/tus/index.d.ts +0 -2
- package/dist/services/tus/lockers.d.ts +0 -36
- package/dist/services/tus/server.d.ts +0 -8
- package/dist/services/tus/utils/wait-timeout.d.ts +0 -1
- package/dist/services/users.d.ts +0 -54
- package/dist/services/utils.d.ts +0 -15
- package/dist/services/versions.d.ts +0 -19
- package/dist/services/websocket.d.ts +0 -12
- package/dist/start.d.ts +0 -1
- package/dist/storage/get-storage-driver.d.ts +0 -3
- package/dist/storage/index.d.ts +0 -5
- package/dist/storage/register-drivers.d.ts +0 -2
- package/dist/storage/register-locations.d.ts +0 -2
- package/dist/synchronization.d.ts +0 -7
- package/dist/telemetry/index.d.ts +0 -3
- package/dist/telemetry/lib/get-report.d.ts +0 -5
- package/dist/telemetry/lib/send-report.d.ts +0 -10
- package/dist/telemetry/lib/track.d.ts +0 -10
- package/dist/telemetry/types/report.d.ts +0 -102
- package/dist/telemetry/utils/check-user-limits.d.ts +0 -5
- package/dist/telemetry/utils/get-extension-count.d.ts +0 -9
- package/dist/telemetry/utils/get-field-count.d.ts +0 -6
- package/dist/telemetry/utils/get-filesize-sum.d.ts +0 -5
- package/dist/telemetry/utils/get-item-count.d.ts +0 -30
- package/dist/telemetry/utils/get-random-wait-time.d.ts +0 -5
- package/dist/telemetry/utils/get-settings.d.ts +0 -26
- package/dist/telemetry/utils/get-user-item-count.d.ts +0 -13
- package/dist/telemetry/utils/should-check-user-limits.d.ts +0 -4
- package/dist/test-utils/cache.d.ts +0 -51
- package/dist/test-utils/controllers.d.ts +0 -65
- package/dist/test-utils/database.d.ts +0 -48
- package/dist/test-utils/emitter.d.ts +0 -35
- package/dist/test-utils/knex.d.ts +0 -164
- package/dist/test-utils/schema.d.ts +0 -26
- package/dist/test-utils/services/fields-service.d.ts +0 -28
- package/dist/test-utils/services/files-service.d.ts +0 -28
- package/dist/test-utils/services/folders-service.d.ts +0 -28
- package/dist/test-utils/services/items-service.d.ts +0 -23
- package/dist/types/ast.d.ts +0 -100
- package/dist/types/auth.d.ts +0 -42
- package/dist/types/collection.d.ts +0 -9
- package/dist/types/events.d.ts +0 -18
- package/dist/types/index.d.ts +0 -7
- package/dist/types/meta.d.ts +0 -4
- package/dist/types/migration.d.ts +0 -5
- package/dist/types/revision.d.ts +0 -7
- package/dist/types/rolemap.d.ts +0 -3
- package/dist/utils/apply-diff.d.ts +0 -8
- package/dist/utils/apply-snapshot.d.ts +0 -8
- package/dist/utils/async-handler.d.ts +0 -3
- package/dist/utils/calculate-field-depth.d.ts +0 -33
- package/dist/utils/compress.d.ts +0 -2
- package/dist/utils/construct-flow-tree.d.ts +0 -2
- package/dist/utils/create-admin.d.ts +0 -11
- package/dist/utils/deep-map-response.d.ts +0 -17
- package/dist/utils/delete-from-require-cache.d.ts +0 -1
- package/dist/utils/encrypt.d.ts +0 -2
- package/dist/utils/fetch-user-count/fetch-access-lookup.d.ts +0 -19
- package/dist/utils/fetch-user-count/fetch-access-roles.d.ts +0 -16
- package/dist/utils/fetch-user-count/fetch-active-users.d.ts +0 -6
- package/dist/utils/fetch-user-count/fetch-user-count.d.ts +0 -11
- package/dist/utils/fetch-user-count/get-user-count-query.d.ts +0 -20
- package/dist/utils/filter-items.d.ts +0 -2
- package/dist/utils/freeze-schema.d.ts +0 -3
- package/dist/utils/generate-hash.d.ts +0 -1
- package/dist/utils/get-accountability-for-role.d.ts +0 -7
- package/dist/utils/get-accountability-for-token.d.ts +0 -2
- package/dist/utils/get-address.d.ts +0 -2
- package/dist/utils/get-allowed-log-levels.d.ts +0 -3
- package/dist/utils/get-auth-providers.d.ts +0 -10
- package/dist/utils/get-cache-headers.d.ts +0 -10
- package/dist/utils/get-cache-key.d.ts +0 -2
- package/dist/utils/get-collection-from-alias.d.ts +0 -6
- package/dist/utils/get-column-path.d.ts +0 -26
- package/dist/utils/get-config-from-env.d.ts +0 -6
- package/dist/utils/get-default-index-name.d.ts +0 -13
- package/dist/utils/get-default-value.d.ts +0 -5
- package/dist/utils/get-field-relational-depth.d.ts +0 -13
- package/dist/utils/get-field-system-rows.d.ts +0 -2
- package/dist/utils/get-graphql-query-and-variables.d.ts +0 -2
- package/dist/utils/get-graphql-type.d.ts +0 -4
- package/dist/utils/get-ip-from-req.d.ts +0 -3
- package/dist/utils/get-local-type.d.ts +0 -9
- package/dist/utils/get-milliseconds.d.ts +0 -4
- package/dist/utils/get-module-default.d.ts +0 -3
- package/dist/utils/get-schema.d.ts +0 -10
- package/dist/utils/get-secret.d.ts +0 -4
- package/dist/utils/get-service.d.ts +0 -7
- package/dist/utils/get-snapshot-diff.d.ts +0 -2
- package/dist/utils/get-snapshot.d.ts +0 -6
- package/dist/utils/get-string-byte-size.d.ts +0 -4
- package/dist/utils/get-versioned-hash.d.ts +0 -1
- package/dist/utils/import-file-url.d.ts +0 -5
- package/dist/utils/is-directus-jwt.d.ts +0 -5
- package/dist/utils/is-field-allowed.d.ts +0 -4
- package/dist/utils/is-url-allowed.d.ts +0 -4
- package/dist/utils/is-valid-uuid.d.ts +0 -3
- package/dist/utils/job-queue.d.ts +0 -9
- package/dist/utils/jwt.d.ts +0 -3
- package/dist/utils/md.d.ts +0 -4
- package/dist/utils/parse-filter-key.d.ts +0 -7
- package/dist/utils/parse-numeric-string.d.ts +0 -2
- package/dist/utils/parse-value.d.ts +0 -4
- package/dist/utils/permissions-cacheable.d.ts +0 -8
- package/dist/utils/redact-object.d.ts +0 -23
- package/dist/utils/reduce-schema.d.ts +0 -7
- package/dist/utils/require-text.d.ts +0 -1
- package/dist/utils/require-yaml.d.ts +0 -1
- package/dist/utils/sanitize-query.d.ts +0 -5
- package/dist/utils/sanitize-schema.d.ts +0 -33
- package/dist/utils/schedule.d.ts +0 -5
- package/dist/utils/should-clear-cache.d.ts +0 -10
- package/dist/utils/should-skip-cache.d.ts +0 -7
- package/dist/utils/split-fields.d.ts +0 -4
- package/dist/utils/stall.d.ts +0 -26
- package/dist/utils/transaction.d.ts +0 -9
- package/dist/utils/transformations.d.ts +0 -6
- package/dist/utils/url.d.ts +0 -18
- package/dist/utils/user-name.d.ts +0 -2
- package/dist/utils/validate-diff.d.ts +0 -7
- package/dist/utils/validate-env.d.ts +0 -1
- package/dist/utils/validate-keys.d.ts +0 -5
- package/dist/utils/validate-query.d.ts +0 -4
- package/dist/utils/validate-snapshot.d.ts +0 -5
- package/dist/utils/validate-storage.d.ts +0 -1
- package/dist/utils/validate-user-count-integrity.d.ts +0 -6
- package/dist/utils/verify-session-jwt.d.ts +0 -7
- package/dist/utils/versioning/handle-version.d.ts +0 -3
- package/dist/utils/versioning/merge-version-data.d.ts +0 -2
- package/dist/utils/versioning/split-recursive.d.ts +0 -4
- package/dist/websocket/authenticate.d.ts +0 -5
- package/dist/websocket/collab/calculate-cache-metadata.d.ts +0 -9
- package/dist/websocket/collab/collab.d.ts +0 -63
- package/dist/websocket/collab/constants.d.ts +0 -1
- package/dist/websocket/collab/filter-to-fields.d.ts +0 -2
- package/dist/websocket/collab/messenger.d.ts +0 -43
- package/dist/websocket/collab/payload-permissions.d.ts +0 -18
- package/dist/websocket/collab/permissions-cache.d.ts +0 -52
- package/dist/websocket/collab/room.d.ts +0 -125
- package/dist/websocket/collab/store.d.ts +0 -7
- package/dist/websocket/collab/types.d.ts +0 -21
- package/dist/websocket/collab/verify-permissions.d.ts +0 -11
- package/dist/websocket/controllers/base.d.ts +0 -35
- package/dist/websocket/controllers/graphql.d.ts +0 -11
- package/dist/websocket/controllers/hooks.d.ts +0 -1
- package/dist/websocket/controllers/index.d.ts +0 -13
- package/dist/websocket/controllers/logs.d.ts +0 -17
- package/dist/websocket/controllers/rest.d.ts +0 -8
- package/dist/websocket/errors.d.ts +0 -16
- package/dist/websocket/handlers/heartbeat.d.ts +0 -11
- package/dist/websocket/handlers/index.d.ts +0 -7
- package/dist/websocket/handlers/items.d.ts +0 -6
- package/dist/websocket/handlers/logs.d.ts +0 -31
- package/dist/websocket/handlers/subscribe.d.ts +0 -38
- package/dist/websocket/messages.d.ts +0 -114
- package/dist/websocket/types.d.ts +0 -38
- package/dist/websocket/utils/get-expires-at-for-token.d.ts +0 -1
- package/dist/websocket/utils/items.d.ts +0 -43
- package/dist/websocket/utils/message.d.ts +0 -4
- package/dist/websocket/utils/wait-for-message.d.ts +0 -4
|
@@ -1,753 +1,725 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import
|
|
28
|
-
import {
|
|
29
|
-
import
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import
|
|
39
|
-
import
|
|
40
|
-
import
|
|
41
|
-
import
|
|
42
|
-
import {
|
|
43
|
-
|
|
1
|
+
import { useBus } from "../bus/lib/use-bus.js";
|
|
2
|
+
import "../bus/index.js";
|
|
3
|
+
import { useLogger } from "../logger/index.js";
|
|
4
|
+
import { getExtensionsPath } from "./lib/get-extensions-path.js";
|
|
5
|
+
import database_default from "../database/index.js";
|
|
6
|
+
import emitter_default, { Emitter } from "../emitter.js";
|
|
7
|
+
import { getSchema } from "../utils/get-schema.js";
|
|
8
|
+
import { deleteFromRequireCache } from "../utils/delete-from-require-cache.js";
|
|
9
|
+
import getModuleDefault from "../utils/get-module-default.js";
|
|
10
|
+
import { importFileUrl } from "../utils/import-file-url.js";
|
|
11
|
+
import { JobQueue } from "../utils/job-queue.js";
|
|
12
|
+
import { scheduleSynchronizedJob, validateCron } from "../utils/schedule.js";
|
|
13
|
+
import { getExtensionsSettings } from "./lib/get-extensions-settings.js";
|
|
14
|
+
import { getExtensions } from "./lib/get-extensions.js";
|
|
15
|
+
import { getSharedDepsMapping } from "./lib/get-shared-deps-mapping.js";
|
|
16
|
+
import { getInstallationManager } from "./lib/installation/index.js";
|
|
17
|
+
import { generateApiExtensionsSandboxEntrypoint } from "./lib/sandbox/generate-api-extensions-sandbox-entrypoint.js";
|
|
18
|
+
import { instantiateSandboxSdk } from "./lib/sandbox/sdk/instantiate.js";
|
|
19
|
+
import { syncExtensions } from "./lib/sync/sync.js";
|
|
20
|
+
import { wrapEmbeds } from "./lib/wrap-embeds.js";
|
|
21
|
+
import { services_exports } from "../services/index.js";
|
|
22
|
+
import { getFlowManager } from "../flows.js";
|
|
23
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
24
|
+
import path from "path";
|
|
25
|
+
import { useEnv } from "@directus/env";
|
|
26
|
+
import { isTypeIn, toBoolean } from "@directus/utils";
|
|
27
|
+
import express, { Router } from "express";
|
|
28
|
+
import { clone, debounce, isPlainObject } from "lodash-es";
|
|
29
|
+
import { pathToRelativeUrl, processId } from "@directus/utils/node";
|
|
30
|
+
import { fileURLToPath } from "node:url";
|
|
31
|
+
import { HYBRID_EXTENSION_TYPES } from "@directus/constants";
|
|
32
|
+
import { dirname, join as join$1, relative, resolve, sep } from "node:path";
|
|
33
|
+
import os from "node:os";
|
|
34
|
+
import { APP_SHARED_DEPS } from "@directus/extensions";
|
|
35
|
+
import { generateExtensionsEntrypoint } from "@directus/extensions/node";
|
|
36
|
+
import DriverLocal from "@directus/storage-driver-local";
|
|
37
|
+
import aliasDefault from "@rollup/plugin-alias";
|
|
38
|
+
import nodeResolveDefault from "@rollup/plugin-node-resolve";
|
|
39
|
+
import virtualDefault from "@rollup/plugin-virtual";
|
|
40
|
+
import chokidar from "chokidar";
|
|
41
|
+
import ivm from "isolated-vm";
|
|
42
|
+
import { rolldown } from "rolldown";
|
|
43
|
+
import { rollup } from "rollup";
|
|
44
|
+
|
|
45
|
+
//#region src/extensions/manager.ts
|
|
44
46
|
const virtual = virtualDefault;
|
|
45
47
|
const alias = aliasDefault;
|
|
46
48
|
const nodeResolve = nodeResolveDefault;
|
|
47
49
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
48
50
|
const env = useEnv();
|
|
49
51
|
const defaultOptions = {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
schedule: true,
|
|
53
|
+
watch: env["EXTENSIONS_AUTO_RELOAD"]
|
|
52
54
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
};
|
|
725
|
-
return unregisterFunction;
|
|
726
|
-
}
|
|
727
|
-
/**
|
|
728
|
-
* Remove the registration for all API extensions
|
|
729
|
-
*/
|
|
730
|
-
async unregisterApiExtensions() {
|
|
731
|
-
const unregisterFunctions = Array.from(this.unregisterFunctionMap.values());
|
|
732
|
-
await Promise.all(unregisterFunctions.map((fn) => fn()));
|
|
733
|
-
}
|
|
734
|
-
/**
|
|
735
|
-
* If extensions must load successfully, any errors will cause the process to exit.
|
|
736
|
-
* Otherwise, the error will only be logged as a warning.
|
|
737
|
-
*/
|
|
738
|
-
handleExtensionError({ error, reason }) {
|
|
739
|
-
const logger = useLogger();
|
|
740
|
-
if (toBoolean(env['EXTENSIONS_MUST_LOAD'])) {
|
|
741
|
-
logger.error('EXTENSION_MUST_LOAD is enabled and an extension failed to load.');
|
|
742
|
-
logger.error(reason);
|
|
743
|
-
if (error)
|
|
744
|
-
logger.error(error);
|
|
745
|
-
process.exit(1);
|
|
746
|
-
}
|
|
747
|
-
else {
|
|
748
|
-
logger.warn(reason);
|
|
749
|
-
if (error)
|
|
750
|
-
logger.warn(error);
|
|
751
|
-
}
|
|
752
|
-
}
|
|
753
|
-
}
|
|
55
|
+
var ExtensionManager = class {
|
|
56
|
+
options = defaultOptions;
|
|
57
|
+
/**
|
|
58
|
+
* Whether or not the extensions have been read from disk and registered into the system
|
|
59
|
+
*/
|
|
60
|
+
isLoaded = false;
|
|
61
|
+
localExtensions = new Map();
|
|
62
|
+
registryExtensions = new Map();
|
|
63
|
+
moduleExtensions = new Map();
|
|
64
|
+
/**
|
|
65
|
+
* Settings for the extensions that are loaded within the current process
|
|
66
|
+
*/
|
|
67
|
+
extensionsSettings = [];
|
|
68
|
+
/**
|
|
69
|
+
* Individual filename chunks from the rollup bundle. Used to improve the performance by allowing
|
|
70
|
+
* extensions to split up their bundle into multiple smaller chunks
|
|
71
|
+
*/
|
|
72
|
+
appExtensionChunks = [];
|
|
73
|
+
/**
|
|
74
|
+
* Callbacks to be able to unregister extensions
|
|
75
|
+
*/
|
|
76
|
+
unregisterFunctionMap = new Map();
|
|
77
|
+
/**
|
|
78
|
+
* A local-to-extensions scoped emitter that can be used to fire and listen to custom events
|
|
79
|
+
* between extensions. These events are completely isolated from the core events that trigger
|
|
80
|
+
* hooks etc
|
|
81
|
+
*/
|
|
82
|
+
localEmitter = new Emitter();
|
|
83
|
+
/**
|
|
84
|
+
* Locally scoped express router used for custom endpoints. Allows extensions to dynamically
|
|
85
|
+
* register and de-register endpoints without affecting the regular global router
|
|
86
|
+
*/
|
|
87
|
+
endpointRouter = Router();
|
|
88
|
+
/**
|
|
89
|
+
* Custom HTML to be injected at the end of the `<head>` tag of the app's index.html
|
|
90
|
+
*/
|
|
91
|
+
hookEmbedsHead = [];
|
|
92
|
+
/**
|
|
93
|
+
* Custom HTML to be injected at the end of the `<body>` tag of the app's index.html
|
|
94
|
+
*/
|
|
95
|
+
hookEmbedsBody = [];
|
|
96
|
+
/**
|
|
97
|
+
* Used to prevent race conditions when reloading extensions. Forces each reload to happen in
|
|
98
|
+
* sequence.
|
|
99
|
+
*/
|
|
100
|
+
reloadQueue = new JobQueue();
|
|
101
|
+
/**
|
|
102
|
+
* Used to prevent race condition when reading extension data while reloading extensions
|
|
103
|
+
*/
|
|
104
|
+
reloadPromise = Promise.resolve();
|
|
105
|
+
/**
|
|
106
|
+
* Optional file system watcher to auto-reload extensions when the local file system changes
|
|
107
|
+
*/
|
|
108
|
+
watcher = null;
|
|
109
|
+
/**
|
|
110
|
+
* installation manager responsible for installing extensions from registries
|
|
111
|
+
*/
|
|
112
|
+
installationManager = getInstallationManager();
|
|
113
|
+
messenger = useBus();
|
|
114
|
+
/**
|
|
115
|
+
* channel to publish on registering extension from external registry
|
|
116
|
+
*/
|
|
117
|
+
reloadChannel = `extensions.reload`;
|
|
118
|
+
processId = processId();
|
|
119
|
+
get extensions() {
|
|
120
|
+
return [
|
|
121
|
+
...this.localExtensions.values(),
|
|
122
|
+
...this.registryExtensions.values(),
|
|
123
|
+
...this.moduleExtensions.values()
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
getExtension(source, folder) {
|
|
127
|
+
switch (source) {
|
|
128
|
+
case "module": return this.moduleExtensions.get(folder);
|
|
129
|
+
case "registry": return this.registryExtensions.get(folder);
|
|
130
|
+
case "local": return this.localExtensions.get(folder);
|
|
131
|
+
}
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Load and register all extensions
|
|
136
|
+
*
|
|
137
|
+
* @param {ExtensionManagerOptions} options - Extension manager configuration options
|
|
138
|
+
* @param {boolean} options.schedule - Whether or not to allow for scheduled (CRON) hook extensions
|
|
139
|
+
* @param {boolean} options.watch - Whether or not to watch the local extensions folder for changes
|
|
140
|
+
*/
|
|
141
|
+
async initialize(options = {}) {
|
|
142
|
+
const logger = useLogger();
|
|
143
|
+
this.options = {
|
|
144
|
+
...defaultOptions,
|
|
145
|
+
...options
|
|
146
|
+
};
|
|
147
|
+
const wasWatcherInitialized = this.watcher !== null;
|
|
148
|
+
if (this.options.watch && !wasWatcherInitialized) {
|
|
149
|
+
this.initializeWatcher();
|
|
150
|
+
} else if (!this.options.watch && wasWatcherInitialized) {
|
|
151
|
+
await this.closeWatcher();
|
|
152
|
+
}
|
|
153
|
+
if (!this.isLoaded) {
|
|
154
|
+
await this.load({ forceSync: true });
|
|
155
|
+
if (this.extensions.length > 0) {
|
|
156
|
+
logger.info(`Loaded extensions: ${this.extensions.map((ext) => ext.name).join(", ")}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (this.options.watch && !wasWatcherInitialized) {
|
|
160
|
+
this.updateWatchedExtensions([...this.extensions]);
|
|
161
|
+
}
|
|
162
|
+
this.messenger.subscribe(this.reloadChannel, (payload) => {
|
|
163
|
+
if (isPlainObject(payload) && "origin" in payload && payload["origin"] === this.processId) return;
|
|
164
|
+
const options$1 = {};
|
|
165
|
+
if (typeof payload["forceSync"] === "boolean") options$1.forceSync = payload["forceSync"];
|
|
166
|
+
if (typeof payload["partialSync"] === "string") options$1.partialSync = payload["partialSync"];
|
|
167
|
+
this.reload(options$1);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Installs an external extension from registry
|
|
172
|
+
*/
|
|
173
|
+
async install(versionId) {
|
|
174
|
+
const logger = useLogger();
|
|
175
|
+
await this.installationManager.install(versionId);
|
|
176
|
+
const resolvedFolder = relative(sep, resolve(sep, versionId));
|
|
177
|
+
const syncFolder = join$1(".registry", resolvedFolder);
|
|
178
|
+
await this.broadcastReloadNotification({ partialSync: syncFolder });
|
|
179
|
+
await this.reload({ skipSync: true });
|
|
180
|
+
emitter_default.emitAction("extensions.installed", {
|
|
181
|
+
extensions: this.extensions,
|
|
182
|
+
versionId
|
|
183
|
+
});
|
|
184
|
+
logger.info(`Installed extension: ${versionId}`);
|
|
185
|
+
}
|
|
186
|
+
async uninstall(folder) {
|
|
187
|
+
const logger = useLogger();
|
|
188
|
+
await this.installationManager.uninstall(folder);
|
|
189
|
+
const resolvedFolder = relative(sep, resolve(sep, folder));
|
|
190
|
+
const syncFolder = join$1(".registry", resolvedFolder);
|
|
191
|
+
await this.broadcastReloadNotification({ partialSync: syncFolder });
|
|
192
|
+
await this.reload({ skipSync: true });
|
|
193
|
+
emitter_default.emitAction("extensions.uninstalled", {
|
|
194
|
+
extensions: this.extensions,
|
|
195
|
+
folder
|
|
196
|
+
});
|
|
197
|
+
logger.info(`Uninstalled extension: ${folder}`);
|
|
198
|
+
}
|
|
199
|
+
async broadcastReloadNotification(options) {
|
|
200
|
+
await this.messenger.publish(this.reloadChannel, {
|
|
201
|
+
...options,
|
|
202
|
+
origin: this.processId
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Load all extensions from disk and register them in their respective places
|
|
207
|
+
*/
|
|
208
|
+
async load(options) {
|
|
209
|
+
const logger = useLogger();
|
|
210
|
+
if (env["EXTENSIONS_LOCATION"]) {
|
|
211
|
+
try {
|
|
212
|
+
await syncExtensions(options);
|
|
213
|
+
} catch (error) {
|
|
214
|
+
logger.error(`Failed to sync extensions`);
|
|
215
|
+
logger.error(error);
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
try {
|
|
220
|
+
const { local, registry, module } = await getExtensions();
|
|
221
|
+
this.localExtensions = local;
|
|
222
|
+
this.registryExtensions = registry;
|
|
223
|
+
this.moduleExtensions = module;
|
|
224
|
+
this.extensionsSettings = await getExtensionsSettings({
|
|
225
|
+
local,
|
|
226
|
+
registry,
|
|
227
|
+
module
|
|
228
|
+
});
|
|
229
|
+
} catch (error) {
|
|
230
|
+
this.handleExtensionError({
|
|
231
|
+
error,
|
|
232
|
+
reason: `Couldn't load extensions`
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
await Promise.all([this.registerInternalOperations(), this.registerApiExtensions()]);
|
|
236
|
+
if (env["SERVE_APP"]) {
|
|
237
|
+
await this.generateExtensionBundle();
|
|
238
|
+
}
|
|
239
|
+
this.isLoaded = true;
|
|
240
|
+
emitter_default.emitAction("extensions.load", { extensions: this.extensions });
|
|
241
|
+
logger.info("Extensions loaded");
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Unregister all extensions from the current process
|
|
245
|
+
*/
|
|
246
|
+
async unload() {
|
|
247
|
+
await this.unregisterApiExtensions();
|
|
248
|
+
this.localEmitter.offAll();
|
|
249
|
+
this.isLoaded = false;
|
|
250
|
+
emitter_default.emitAction("extensions.unload", { extensions: this.extensions });
|
|
251
|
+
const logger = useLogger();
|
|
252
|
+
logger.info("Extensions unloaded");
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Reload all the extensions. Will unload if extensions have already been loaded
|
|
256
|
+
*/
|
|
257
|
+
reload(options) {
|
|
258
|
+
if (this.reloadQueue.size > 0) {
|
|
259
|
+
return Promise.resolve();
|
|
260
|
+
}
|
|
261
|
+
const logger = useLogger();
|
|
262
|
+
let resolve$1;
|
|
263
|
+
let reject;
|
|
264
|
+
this.reloadPromise = new Promise((res, rej) => {
|
|
265
|
+
resolve$1 = res;
|
|
266
|
+
reject = rej;
|
|
267
|
+
});
|
|
268
|
+
this.reloadQueue.enqueue(async () => {
|
|
269
|
+
if (this.isLoaded) {
|
|
270
|
+
const prevExtensions = clone(this.extensions);
|
|
271
|
+
await this.unload();
|
|
272
|
+
await this.load(options);
|
|
273
|
+
logger.info("Extensions reloaded");
|
|
274
|
+
const added = this.extensions.filter((extension) => !prevExtensions.some((prevExtension) => extension.path === prevExtension.path));
|
|
275
|
+
const removed = prevExtensions.filter((prevExtension) => !this.extensions.some((extension) => prevExtension.path === extension.path));
|
|
276
|
+
this.updateWatchedExtensions(added, removed);
|
|
277
|
+
const addedExtensions = added.map((extension) => extension.name);
|
|
278
|
+
const removedExtensions = removed.map((extension) => extension.name);
|
|
279
|
+
emitter_default.emitAction("extensions.reload", {
|
|
280
|
+
extensions: this.extensions,
|
|
281
|
+
added: addedExtensions,
|
|
282
|
+
removed: removedExtensions
|
|
283
|
+
});
|
|
284
|
+
if (addedExtensions.length > 0) {
|
|
285
|
+
logger.info(`Added extensions: ${addedExtensions.join(", ")}`);
|
|
286
|
+
}
|
|
287
|
+
if (removedExtensions.length > 0) {
|
|
288
|
+
logger.info(`Removed extensions: ${removedExtensions.join(", ")}`);
|
|
289
|
+
}
|
|
290
|
+
resolve$1();
|
|
291
|
+
} else {
|
|
292
|
+
logger.warn("Extensions have to be loaded before they can be reloaded");
|
|
293
|
+
reject(new Error("Extensions have to be loaded before they can be reloaded"));
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
return this.reloadPromise;
|
|
297
|
+
}
|
|
298
|
+
isReloading() {
|
|
299
|
+
return this.reloadPromise;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Return the previously generated app extension bundle chunk by name.
|
|
303
|
+
* Providing no name will return the entry bundle.
|
|
304
|
+
*/
|
|
305
|
+
async getAppExtensionChunk(name) {
|
|
306
|
+
let file;
|
|
307
|
+
if (!name) {
|
|
308
|
+
file = this.appExtensionChunks[0];
|
|
309
|
+
} else if (this.appExtensionChunks.includes(name)) {
|
|
310
|
+
file = name;
|
|
311
|
+
}
|
|
312
|
+
if (!file) return null;
|
|
313
|
+
const tempDir = join$1(env["TEMP_PATH"], "app-extensions");
|
|
314
|
+
const tmpStorage = new DriverLocal({ root: tempDir });
|
|
315
|
+
if (await tmpStorage.exists(file) === false) return null;
|
|
316
|
+
return await tmpStorage.read(file);
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Return the scoped router for custom endpoints
|
|
320
|
+
*/
|
|
321
|
+
getEndpointRouter() {
|
|
322
|
+
return this.endpointRouter;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Return the custom HTML head and body embeds wrapped in a marker comment
|
|
326
|
+
*/
|
|
327
|
+
getEmbeds() {
|
|
328
|
+
return {
|
|
329
|
+
head: wrapEmbeds("Custom Embed Head", this.hookEmbedsHead),
|
|
330
|
+
body: wrapEmbeds("Custom Embed Body", this.hookEmbedsBody)
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Start the chokidar watcher for extensions on the local filesystem
|
|
335
|
+
*/
|
|
336
|
+
initializeWatcher() {
|
|
337
|
+
const logger = useLogger();
|
|
338
|
+
logger.info("Watching extensions for changes...");
|
|
339
|
+
const extensionDirUrl = pathToRelativeUrl(getExtensionsPath());
|
|
340
|
+
this.watcher = chokidar.watch([path.resolve("package.json"), path.posix.join(extensionDirUrl, "*", "package.json")], {
|
|
341
|
+
ignoreInitial: true,
|
|
342
|
+
ignored: `${extensionDirUrl}/**/node_modules/**`,
|
|
343
|
+
followSymlinks: os.platform() === "darwin" ? false : true
|
|
344
|
+
});
|
|
345
|
+
this.watcher.on("add", debounce(() => this.reload(), 500)).on("change", debounce(() => this.reload(), 650)).on("unlink", debounce(() => this.reload(), 2e3));
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Close and destroy the local filesystem watcher if enabled
|
|
349
|
+
*/
|
|
350
|
+
async closeWatcher() {
|
|
351
|
+
if (this.watcher) {
|
|
352
|
+
await this.watcher.close();
|
|
353
|
+
this.watcher = null;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Update the chokidar watcher configuration when new extensions are added or existing ones
|
|
358
|
+
* removed
|
|
359
|
+
*/
|
|
360
|
+
updateWatchedExtensions(added, removed = []) {
|
|
361
|
+
if (!this.watcher) return;
|
|
362
|
+
const extensionDir = path.resolve(getExtensionsPath());
|
|
363
|
+
const registryDir = path.join(extensionDir, ".registry");
|
|
364
|
+
const toPackageExtensionPaths = (extensions) => extensions.filter((extension) => extension.local && !extension.path.startsWith(registryDir)).flatMap((extension) => isTypeIn(extension, HYBRID_EXTENSION_TYPES) || extension.type === "bundle" ? [path.resolve(extension.path, extension.entrypoint.app), path.resolve(extension.path, extension.entrypoint.api)] : path.resolve(extension.path, extension.entrypoint));
|
|
365
|
+
this.watcher.add(toPackageExtensionPaths(added));
|
|
366
|
+
this.watcher.unwatch(toPackageExtensionPaths(removed));
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Uses rollup to bundle the app extensions together into a single file the app can download and
|
|
370
|
+
* run.
|
|
371
|
+
*/
|
|
372
|
+
async generateExtensionBundle() {
|
|
373
|
+
const logger = useLogger();
|
|
374
|
+
const env$1 = useEnv();
|
|
375
|
+
const sharedDepsMapping = await getSharedDepsMapping(APP_SHARED_DEPS);
|
|
376
|
+
const internalImports = Object.entries(sharedDepsMapping).map(([name, path$1]) => ({
|
|
377
|
+
find: name,
|
|
378
|
+
replacement: path$1
|
|
379
|
+
}));
|
|
380
|
+
const entrypoint = generateExtensionsEntrypoint({
|
|
381
|
+
module: this.moduleExtensions,
|
|
382
|
+
registry: this.registryExtensions,
|
|
383
|
+
local: this.localExtensions
|
|
384
|
+
}, this.extensionsSettings);
|
|
385
|
+
try {
|
|
386
|
+
/** Opt In for now. Should be @deprecated later to always use rolldown! */
|
|
387
|
+
const rollDirection = env$1["EXTENSIONS_ROLLDOWN"] ?? false ? rolldown : rollup;
|
|
388
|
+
const bundle = await rollDirection({
|
|
389
|
+
input: "entry",
|
|
390
|
+
external: Object.values(sharedDepsMapping),
|
|
391
|
+
makeAbsoluteExternalsRelative: false,
|
|
392
|
+
plugins: [
|
|
393
|
+
virtual({ entry: entrypoint }),
|
|
394
|
+
alias({ entries: internalImports }),
|
|
395
|
+
nodeResolve({ browser: true })
|
|
396
|
+
]
|
|
397
|
+
});
|
|
398
|
+
const tempDir = join$1(env$1["TEMP_PATH"], "app-extensions");
|
|
399
|
+
const { output } = await bundle.write({
|
|
400
|
+
format: "es",
|
|
401
|
+
dir: tempDir
|
|
402
|
+
});
|
|
403
|
+
this.appExtensionChunks = output.reduce((acc, chunk$1) => {
|
|
404
|
+
if (chunk$1.type === "chunk") acc.push(chunk$1.fileName);
|
|
405
|
+
return acc;
|
|
406
|
+
}, []);
|
|
407
|
+
await bundle.close();
|
|
408
|
+
} catch (error) {
|
|
409
|
+
logger.warn(`Couldn't bundle App extensions`);
|
|
410
|
+
logger.warn(error);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
async registerSandboxedApiExtension(extension) {
|
|
414
|
+
const logger = useLogger();
|
|
415
|
+
const sandboxMemory = Number(env["EXTENSIONS_SANDBOX_MEMORY"]);
|
|
416
|
+
const sandboxTimeout = Number(env["EXTENSIONS_SANDBOX_TIMEOUT"]);
|
|
417
|
+
const entrypointPath = path.resolve(extension.path, isTypeIn(extension, HYBRID_EXTENSION_TYPES) ? extension.entrypoint.api : extension.entrypoint);
|
|
418
|
+
const extensionCode = await readFile(entrypointPath, "utf-8");
|
|
419
|
+
const isolate = new ivm.Isolate({
|
|
420
|
+
memoryLimit: sandboxMemory,
|
|
421
|
+
onCatastrophicError: (error) => {
|
|
422
|
+
logger.error(`Error in API extension sandbox of ${extension.type} "${extension.name}"`);
|
|
423
|
+
logger.error(error);
|
|
424
|
+
process.abort();
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
const context = await isolate.createContext();
|
|
428
|
+
context.global.setSync("process", { env: { NODE_ENV: process.env["NODE_ENV"] ?? "production" } }, { copy: true });
|
|
429
|
+
const module = await isolate.compileModule(extensionCode, { filename: `file://${entrypointPath}` });
|
|
430
|
+
const sdkModule = await instantiateSandboxSdk(isolate, extension.sandbox?.requestedScopes ?? {});
|
|
431
|
+
await module.instantiate(context, (specifier) => {
|
|
432
|
+
if (specifier !== "directus:api") {
|
|
433
|
+
throw new Error("Imports other than \"directus:api\" are prohibited in API extension sandboxes");
|
|
434
|
+
}
|
|
435
|
+
return sdkModule;
|
|
436
|
+
});
|
|
437
|
+
await module.evaluate({ timeout: sandboxTimeout });
|
|
438
|
+
const cb = await module.namespace.get("default", { reference: true });
|
|
439
|
+
const { code, hostFunctions, unregisterFunction } = generateApiExtensionsSandboxEntrypoint(extension.type, extension.name, this.endpointRouter);
|
|
440
|
+
await context.evalClosure(code, [cb, ...hostFunctions.map((fn) => new ivm.Reference(fn))], {
|
|
441
|
+
timeout: sandboxTimeout,
|
|
442
|
+
filename: "<extensions-sandbox>"
|
|
443
|
+
});
|
|
444
|
+
this.unregisterFunctionMap.set(extension.name, async () => {
|
|
445
|
+
await unregisterFunction();
|
|
446
|
+
if (!isolate.isDisposed) isolate.dispose();
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
async registerApiExtensions() {
|
|
450
|
+
const sources = {
|
|
451
|
+
module: this.moduleExtensions,
|
|
452
|
+
registry: this.registryExtensions,
|
|
453
|
+
local: this.localExtensions
|
|
454
|
+
};
|
|
455
|
+
await Promise.all(Object.entries(sources).map(async ([source, extensions]) => {
|
|
456
|
+
await Promise.all(Array.from(extensions.entries()).map(async ([folder, extension]) => {
|
|
457
|
+
const { id, enabled } = this.extensionsSettings.find((settings) => settings.source === source && settings.folder === folder) ?? { enabled: false };
|
|
458
|
+
if (!enabled) return;
|
|
459
|
+
switch (extension.type) {
|
|
460
|
+
case "hook":
|
|
461
|
+
await this.registerHookExtension(extension);
|
|
462
|
+
break;
|
|
463
|
+
case "endpoint":
|
|
464
|
+
await this.registerEndpointExtension(extension);
|
|
465
|
+
break;
|
|
466
|
+
case "operation":
|
|
467
|
+
await this.registerOperationExtension(extension);
|
|
468
|
+
break;
|
|
469
|
+
case "bundle":
|
|
470
|
+
await this.registerBundleExtension(extension, source, id);
|
|
471
|
+
break;
|
|
472
|
+
default: return;
|
|
473
|
+
}
|
|
474
|
+
}));
|
|
475
|
+
}));
|
|
476
|
+
}
|
|
477
|
+
async registerHookExtension(hook) {
|
|
478
|
+
try {
|
|
479
|
+
if (hook.sandbox?.enabled) {
|
|
480
|
+
await this.registerSandboxedApiExtension(hook);
|
|
481
|
+
} else {
|
|
482
|
+
const hookPath = path.resolve(hook.path, hook.entrypoint);
|
|
483
|
+
const hookInstance = await importFileUrl(hookPath, import.meta.url, { fresh: true });
|
|
484
|
+
const config = getModuleDefault(hookInstance);
|
|
485
|
+
const unregisterFunctions = this.registerHook(config, hook.name);
|
|
486
|
+
this.unregisterFunctionMap.set(hook.name, async () => {
|
|
487
|
+
await Promise.all(unregisterFunctions.map((fn) => fn()));
|
|
488
|
+
deleteFromRequireCache(hookPath);
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
} catch (error) {
|
|
492
|
+
this.handleExtensionError({
|
|
493
|
+
error,
|
|
494
|
+
reason: `Couldn't register hook "${hook.name}"`
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
async registerEndpointExtension(endpoint) {
|
|
499
|
+
try {
|
|
500
|
+
if (endpoint.sandbox?.enabled) {
|
|
501
|
+
await this.registerSandboxedApiExtension(endpoint);
|
|
502
|
+
} else {
|
|
503
|
+
const endpointPath = path.resolve(endpoint.path, endpoint.entrypoint);
|
|
504
|
+
const endpointInstance = await importFileUrl(endpointPath, import.meta.url, { fresh: true });
|
|
505
|
+
const config = getModuleDefault(endpointInstance);
|
|
506
|
+
const unregister = this.registerEndpoint(config, endpoint.name);
|
|
507
|
+
this.unregisterFunctionMap.set(endpoint.name, async () => {
|
|
508
|
+
await unregister();
|
|
509
|
+
deleteFromRequireCache(endpointPath);
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
} catch (error) {
|
|
513
|
+
this.handleExtensionError({
|
|
514
|
+
error,
|
|
515
|
+
reason: `Couldn't register endpoint "${endpoint.name}"`
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
async registerOperationExtension(operation) {
|
|
520
|
+
try {
|
|
521
|
+
if (operation.sandbox?.enabled) {
|
|
522
|
+
await this.registerSandboxedApiExtension(operation);
|
|
523
|
+
} else {
|
|
524
|
+
const operationPath = path.resolve(operation.path, operation.entrypoint.api);
|
|
525
|
+
const operationInstance = await importFileUrl(operationPath, import.meta.url, { fresh: true });
|
|
526
|
+
const config = getModuleDefault(operationInstance);
|
|
527
|
+
const unregister = this.registerOperation(config);
|
|
528
|
+
this.unregisterFunctionMap.set(operation.name, async () => {
|
|
529
|
+
await unregister();
|
|
530
|
+
deleteFromRequireCache(operationPath);
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
} catch (error) {
|
|
534
|
+
this.handleExtensionError({
|
|
535
|
+
error,
|
|
536
|
+
reason: `Couldn't register operation "${operation.name}"`
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
async registerBundleExtension(bundle, source, bundleId) {
|
|
541
|
+
const extensionEnabled = (extensionName) => {
|
|
542
|
+
const settings = this.extensionsSettings.find((settings$1) => settings$1.source === source && settings$1.folder === extensionName && settings$1.bundle === bundleId);
|
|
543
|
+
if (!settings) return false;
|
|
544
|
+
return settings.enabled;
|
|
545
|
+
};
|
|
546
|
+
try {
|
|
547
|
+
const bundlePath = path.resolve(bundle.path, bundle.entrypoint.api);
|
|
548
|
+
const bundleInstances = await importFileUrl(bundlePath, import.meta.url, { fresh: true });
|
|
549
|
+
const configs = getModuleDefault(bundleInstances);
|
|
550
|
+
const unregisterFunctions = [];
|
|
551
|
+
for (const { config, name } of configs.hooks) {
|
|
552
|
+
if (!extensionEnabled(name)) continue;
|
|
553
|
+
const unregisters = this.registerHook(config, name);
|
|
554
|
+
unregisterFunctions.push(...unregisters);
|
|
555
|
+
}
|
|
556
|
+
for (const { config, name } of configs.endpoints) {
|
|
557
|
+
if (!extensionEnabled(name)) continue;
|
|
558
|
+
const unregister = this.registerEndpoint(config, name);
|
|
559
|
+
unregisterFunctions.push(unregister);
|
|
560
|
+
}
|
|
561
|
+
for (const { config, name } of configs.operations) {
|
|
562
|
+
if (!extensionEnabled(name)) continue;
|
|
563
|
+
const unregister = this.registerOperation(config);
|
|
564
|
+
unregisterFunctions.push(unregister);
|
|
565
|
+
}
|
|
566
|
+
this.unregisterFunctionMap.set(bundle.name, async () => {
|
|
567
|
+
await Promise.all(unregisterFunctions.map((fn) => fn()));
|
|
568
|
+
deleteFromRequireCache(bundlePath);
|
|
569
|
+
});
|
|
570
|
+
} catch (error) {
|
|
571
|
+
this.handleExtensionError({
|
|
572
|
+
error,
|
|
573
|
+
reason: `Couldn't register bundle "${bundle.name}"`
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Import the operation module code for all operation extensions, and register them individually through
|
|
579
|
+
* registerOperation
|
|
580
|
+
*/
|
|
581
|
+
async registerInternalOperations() {
|
|
582
|
+
const internalOperations = await readdir(path.join(__dirname, "..", "operations"));
|
|
583
|
+
for (const operation of internalOperations) {
|
|
584
|
+
const operationInstance = await import(`../operations/${operation}/index.js`);
|
|
585
|
+
const config = getModuleDefault(operationInstance);
|
|
586
|
+
this.registerOperation(config);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* Register a single hook
|
|
591
|
+
*/
|
|
592
|
+
registerHook(hookRegistrationCallback, name) {
|
|
593
|
+
const logger = useLogger();
|
|
594
|
+
let scheduleIndex = 0;
|
|
595
|
+
const unregisterFunctions = [];
|
|
596
|
+
const hookRegistrationContext = {
|
|
597
|
+
filter: (event, handler) => {
|
|
598
|
+
emitter_default.onFilter(event, handler);
|
|
599
|
+
unregisterFunctions.push(() => {
|
|
600
|
+
emitter_default.offFilter(event, handler);
|
|
601
|
+
});
|
|
602
|
+
},
|
|
603
|
+
action: (event, handler) => {
|
|
604
|
+
emitter_default.onAction(event, handler);
|
|
605
|
+
unregisterFunctions.push(() => {
|
|
606
|
+
emitter_default.offAction(event, handler);
|
|
607
|
+
});
|
|
608
|
+
},
|
|
609
|
+
init: (event, handler) => {
|
|
610
|
+
emitter_default.onInit(event, handler);
|
|
611
|
+
unregisterFunctions.push(() => {
|
|
612
|
+
emitter_default.offInit(name, handler);
|
|
613
|
+
});
|
|
614
|
+
},
|
|
615
|
+
schedule: (cron, handler) => {
|
|
616
|
+
if (validateCron(cron)) {
|
|
617
|
+
const job = scheduleSynchronizedJob(`${name}:${scheduleIndex}`, cron, async () => {
|
|
618
|
+
if (this.options.schedule) {
|
|
619
|
+
try {
|
|
620
|
+
await handler();
|
|
621
|
+
} catch (error) {
|
|
622
|
+
logger.error(error);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
});
|
|
626
|
+
scheduleIndex++;
|
|
627
|
+
unregisterFunctions.push(async () => {
|
|
628
|
+
await job.stop();
|
|
629
|
+
});
|
|
630
|
+
} else {
|
|
631
|
+
this.handleExtensionError({ reason: `Couldn't register cron hook. Provided cron is invalid: ${cron}` });
|
|
632
|
+
}
|
|
633
|
+
},
|
|
634
|
+
embed: (position, code) => {
|
|
635
|
+
const content = typeof code === "function" ? code() : code;
|
|
636
|
+
if (content.trim().length !== 0) {
|
|
637
|
+
if (position === "head") {
|
|
638
|
+
const index = this.hookEmbedsHead.length;
|
|
639
|
+
this.hookEmbedsHead.push(content);
|
|
640
|
+
unregisterFunctions.push(() => {
|
|
641
|
+
this.hookEmbedsHead.splice(index, 1);
|
|
642
|
+
});
|
|
643
|
+
} else {
|
|
644
|
+
const index = this.hookEmbedsBody.length;
|
|
645
|
+
this.hookEmbedsBody.push(content);
|
|
646
|
+
unregisterFunctions.push(() => {
|
|
647
|
+
this.hookEmbedsBody.splice(index, 1);
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
} else {
|
|
651
|
+
this.handleExtensionError({ reason: `Couldn't register embed hook. Provided code is empty!` });
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
};
|
|
655
|
+
hookRegistrationCallback(hookRegistrationContext, {
|
|
656
|
+
services: services_exports,
|
|
657
|
+
env,
|
|
658
|
+
database: database_default(),
|
|
659
|
+
emitter: this.localEmitter,
|
|
660
|
+
logger,
|
|
661
|
+
getSchema
|
|
662
|
+
});
|
|
663
|
+
return unregisterFunctions;
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* Register an individual endpoint
|
|
667
|
+
*/
|
|
668
|
+
registerEndpoint(config, name) {
|
|
669
|
+
const logger = useLogger();
|
|
670
|
+
const endpointRegistrationCallback = typeof config === "function" ? config : config.handler;
|
|
671
|
+
const nameWithoutType = name.includes(":") ? name.split(":")[0] : name;
|
|
672
|
+
const routeName = typeof config === "function" ? nameWithoutType : config.id;
|
|
673
|
+
const scopedRouter = express.Router();
|
|
674
|
+
this.endpointRouter.use(`/${routeName}`, scopedRouter);
|
|
675
|
+
endpointRegistrationCallback(scopedRouter, {
|
|
676
|
+
services: services_exports,
|
|
677
|
+
env,
|
|
678
|
+
database: database_default(),
|
|
679
|
+
emitter: this.localEmitter,
|
|
680
|
+
logger,
|
|
681
|
+
getSchema
|
|
682
|
+
});
|
|
683
|
+
const unregisterFunction = () => {
|
|
684
|
+
this.endpointRouter.stack = this.endpointRouter.stack.filter((layer) => scopedRouter !== layer.handle);
|
|
685
|
+
};
|
|
686
|
+
return unregisterFunction;
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Register an individual operation
|
|
690
|
+
*/
|
|
691
|
+
registerOperation(config) {
|
|
692
|
+
const flowManager = getFlowManager();
|
|
693
|
+
flowManager.addOperation(config.id, config.handler);
|
|
694
|
+
const unregisterFunction = () => {
|
|
695
|
+
flowManager.removeOperation(config.id);
|
|
696
|
+
};
|
|
697
|
+
return unregisterFunction;
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
700
|
+
* Remove the registration for all API extensions
|
|
701
|
+
*/
|
|
702
|
+
async unregisterApiExtensions() {
|
|
703
|
+
const unregisterFunctions = Array.from(this.unregisterFunctionMap.values());
|
|
704
|
+
await Promise.all(unregisterFunctions.map((fn) => fn()));
|
|
705
|
+
}
|
|
706
|
+
/**
|
|
707
|
+
* If extensions must load successfully, any errors will cause the process to exit.
|
|
708
|
+
* Otherwise, the error will only be logged as a warning.
|
|
709
|
+
*/
|
|
710
|
+
handleExtensionError({ error, reason }) {
|
|
711
|
+
const logger = useLogger();
|
|
712
|
+
if (toBoolean(env["EXTENSIONS_MUST_LOAD"])) {
|
|
713
|
+
logger.error("EXTENSION_MUST_LOAD is enabled and an extension failed to load.");
|
|
714
|
+
logger.error(reason);
|
|
715
|
+
if (error) logger.error(error);
|
|
716
|
+
process.exit(1);
|
|
717
|
+
} else {
|
|
718
|
+
logger.warn(reason);
|
|
719
|
+
if (error) logger.warn(error);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
};
|
|
723
|
+
|
|
724
|
+
//#endregion
|
|
725
|
+
export { ExtensionManager };
|