@directus/api 13.2.0 → 14.0.1
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__/snapshots.js +9 -0
- package/dist/app.js +2 -0
- package/dist/cli/index.js +3 -4
- package/dist/cli/load-extensions.d.ts +1 -0
- package/dist/cli/load-extensions.js +19 -0
- package/dist/controllers/extensions.js +28 -19
- package/dist/controllers/versions.d.ts +2 -0
- package/dist/controllers/versions.js +188 -0
- package/dist/database/migrations/20230823A-add-content-versioning.d.ts +3 -0
- package/dist/database/migrations/20230823A-add-content-versioning.js +36 -0
- package/dist/database/migrations/20230927A-themes.d.ts +3 -0
- package/dist/database/migrations/20230927A-themes.js +49 -0
- package/dist/database/migrations/20231009B-update-panel-options.d.ts +3 -0
- package/dist/database/migrations/20231009B-update-panel-options.js +77 -0
- package/dist/database/migrations/20231010A-add-extensions.d.ts +3 -0
- package/dist/database/migrations/20231010A-add-extensions.js +9 -0
- package/dist/database/run-ast.js +1 -1
- package/dist/database/system-data/app-access-permissions/app-access-permissions.yaml +5 -1
- package/dist/database/system-data/collections/collections.yaml +6 -0
- package/dist/database/system-data/fields/activity.yaml +4 -4
- package/dist/database/system-data/fields/collections.yaml +19 -0
- package/dist/database/system-data/fields/extensions.yaml +10 -0
- package/dist/database/system-data/fields/revisions.yaml +3 -0
- package/dist/database/system-data/fields/settings.yaml +73 -17
- package/dist/database/system-data/fields/users.yaml +50 -12
- package/dist/database/system-data/fields/versions.yaml +38 -0
- package/dist/database/system-data/fields/webhooks.yaml +9 -9
- package/dist/database/system-data/relations/relations.yaml +88 -20
- package/dist/emitter.d.ts +2 -2
- package/dist/env.js +4 -0
- package/dist/extensions/lib/get-extensions-settings.d.ts +7 -0
- package/dist/extensions/lib/get-extensions-settings.js +39 -0
- package/dist/extensions/lib/get-extensions.d.ts +1 -0
- package/dist/extensions/lib/get-extensions.js +11 -0
- package/dist/extensions/{get-shared-deps-mapping.js → lib/get-shared-deps-mapping.js} +3 -3
- package/dist/extensions/lib/sandbox/generate-api-extensions-sandbox-entrypoint.d.ts +31 -0
- package/dist/extensions/lib/sandbox/generate-api-extensions-sandbox-entrypoint.js +80 -0
- package/dist/extensions/lib/sandbox/generate-host-function-reference.d.ts +11 -0
- package/dist/extensions/lib/sandbox/generate-host-function-reference.js +28 -0
- package/dist/extensions/lib/sandbox/register/action.d.ts +6 -0
- package/dist/extensions/lib/sandbox/register/action.js +18 -0
- package/dist/extensions/lib/sandbox/register/call-reference.d.ts +5 -0
- package/dist/extensions/lib/sandbox/register/call-reference.js +20 -0
- package/dist/extensions/lib/sandbox/register/filter.d.ts +6 -0
- package/dist/extensions/lib/sandbox/register/filter.js +21 -0
- package/dist/extensions/lib/sandbox/register/index.d.ts +5 -0
- package/dist/extensions/lib/sandbox/register/index.js +5 -0
- package/dist/extensions/lib/sandbox/register/operation.d.ts +6 -0
- package/dist/extensions/lib/sandbox/register/operation.js +19 -0
- package/dist/extensions/lib/sandbox/register/route.d.ts +17 -0
- package/dist/extensions/lib/sandbox/register/route.js +44 -0
- package/dist/extensions/lib/sandbox/sdk/generators/index.d.ts +3 -0
- package/dist/extensions/lib/sandbox/sdk/generators/index.js +3 -0
- package/dist/extensions/lib/sandbox/sdk/generators/log.d.ts +3 -0
- package/dist/extensions/lib/sandbox/sdk/generators/log.js +11 -0
- package/dist/extensions/lib/sandbox/sdk/generators/request.d.ts +12 -0
- package/dist/extensions/lib/sandbox/sdk/generators/request.js +49 -0
- package/dist/extensions/lib/sandbox/sdk/generators/sleep.d.ts +3 -0
- package/dist/extensions/lib/sandbox/sdk/generators/sleep.js +11 -0
- package/dist/extensions/lib/sandbox/sdk/index.d.ts +2 -0
- package/dist/extensions/lib/sandbox/sdk/index.js +2 -0
- package/dist/extensions/lib/sandbox/sdk/instantiate.d.ts +11 -0
- package/dist/extensions/lib/sandbox/sdk/instantiate.js +28 -0
- package/dist/extensions/lib/sandbox/sdk/sdk.d.ts +20 -0
- package/dist/extensions/lib/sandbox/sdk/sdk.js +11 -0
- package/dist/extensions/lib/sandbox/sdk/utils/index.d.ts +1 -0
- package/dist/extensions/lib/sandbox/sdk/utils/index.js +1 -0
- package/dist/extensions/lib/sandbox/sdk/utils/wrap.d.ts +11 -0
- package/dist/extensions/lib/sandbox/sdk/utils/wrap.js +17 -0
- package/dist/extensions/manager.d.ts +128 -14
- package/dist/extensions/manager.js +310 -136
- package/dist/extensions/types.d.ts +1 -5
- package/dist/flows.d.ts +1 -1
- package/dist/flows.js +6 -6
- package/dist/middleware/respond.js +12 -0
- package/dist/server.js +2 -1
- package/dist/services/assets.js +1 -1
- package/dist/services/extensions.d.ts +31 -0
- package/dist/services/extensions.js +136 -0
- package/dist/services/graphql/index.d.ts +1 -1
- package/dist/services/graphql/index.js +87 -24
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +2 -0
- package/dist/services/server.js +3 -1
- package/dist/services/users.js +2 -0
- package/dist/services/versions.d.ts +21 -0
- package/dist/services/versions.js +238 -0
- package/dist/types/collection.d.ts +1 -0
- package/dist/utils/apply-query.d.ts +1 -1
- package/dist/utils/apply-query.js +30 -2
- package/dist/utils/delete-from-require-cache.d.ts +1 -0
- package/dist/utils/delete-from-require-cache.js +5 -0
- package/dist/utils/get-service.js +3 -1
- package/dist/utils/import-file-url.d.ts +5 -0
- package/dist/utils/import-file-url.js +6 -0
- package/dist/utils/job-queue.d.ts +2 -3
- package/dist/utils/redact-object.d.ts +1 -1
- package/dist/utils/redact-object.js +37 -24
- package/dist/utils/sanitize-query.js +3 -0
- package/dist/utils/validate-query.js +1 -0
- package/dist/worker-pool.js +8 -0
- package/package.json +28 -27
- package/dist/extensions/get-extensions.d.ts +0 -47
- package/dist/extensions/get-extensions.js +0 -9
- package/dist/extensions/normalize-extension-info.d.ts +0 -5
- package/dist/extensions/normalize-extension-info.js +0 -30
- /package/dist/extensions/{get-shared-deps-mapping.d.ts → lib/get-shared-deps-mapping.d.ts} +0 -0
- /package/dist/extensions/{wrap-embeds.d.ts → lib/wrap-embeds.d.ts} +0 -0
- /package/dist/extensions/{wrap-embeds.js → lib/wrap-embeds.js} +0 -0
|
@@ -1,44 +1,158 @@
|
|
|
1
|
-
import type { Extension
|
|
1
|
+
import type { Extension } from '@directus/extensions';
|
|
2
2
|
import { Router } from 'express';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ExtensionManagerOptions } from './types.js';
|
|
4
4
|
export declare class ExtensionManager {
|
|
5
|
-
private isLoaded;
|
|
6
5
|
private options;
|
|
6
|
+
/**
|
|
7
|
+
* Whether or not the extensions have been read from disk and registered into the system
|
|
8
|
+
*/
|
|
9
|
+
private isLoaded;
|
|
10
|
+
/**
|
|
11
|
+
* All extensions that are loaded within the current process
|
|
12
|
+
*/
|
|
7
13
|
private extensions;
|
|
8
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Settings for the extensions that are loaded within the current process
|
|
16
|
+
*/
|
|
17
|
+
private extensionsSettings;
|
|
18
|
+
/**
|
|
19
|
+
* App extensions rolled up into a single bundle. Any chunks from the bundle will be available
|
|
20
|
+
* under appExtensionChunks
|
|
21
|
+
*/
|
|
22
|
+
private appExtensionsBundle;
|
|
23
|
+
/**
|
|
24
|
+
* Individual filename chunks from the rollup bundle. Used to improve the performance by allowing
|
|
25
|
+
* extensions to split up their bundle into multiple smaller chunks
|
|
26
|
+
*/
|
|
9
27
|
private appExtensionChunks;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Callbacks to be able to unregister extensions
|
|
30
|
+
*/
|
|
31
|
+
private unregisterFunctionMap;
|
|
32
|
+
/**
|
|
33
|
+
* A local-to-extensions scoped emitter that can be used to fire and listen to custom events
|
|
34
|
+
* between extensions. These events are completely isolated from the core events that trigger
|
|
35
|
+
* hooks etc
|
|
36
|
+
*/
|
|
37
|
+
private localEmitter;
|
|
38
|
+
/**
|
|
39
|
+
* Locally scoped express router used for custom endpoints. Allows extensions to dynamically
|
|
40
|
+
* register and de-register endpoints without affecting the regular global router
|
|
41
|
+
*/
|
|
13
42
|
private endpointRouter;
|
|
43
|
+
/**
|
|
44
|
+
* Custom HTML to be injected at the end of the `<head>` tag of the app's index.html
|
|
45
|
+
*/
|
|
14
46
|
private hookEmbedsHead;
|
|
47
|
+
/**
|
|
48
|
+
* Custom HTML to be injected at the end of the `<body>` tag of the app's index.html
|
|
49
|
+
*/
|
|
15
50
|
private hookEmbedsBody;
|
|
51
|
+
/**
|
|
52
|
+
* Used to prevent race conditions when reloading extensions. Forces each reload to happen in
|
|
53
|
+
* sequence.
|
|
54
|
+
*/
|
|
16
55
|
private reloadQueue;
|
|
56
|
+
/**
|
|
57
|
+
* Optional file system watcher to auto-reload extensions when the local file system changes
|
|
58
|
+
*/
|
|
17
59
|
private watcher;
|
|
18
|
-
|
|
19
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Load and register all extensions
|
|
62
|
+
*
|
|
63
|
+
* @param {ExtensionManagerOptions} options - Extension manager configuration options
|
|
64
|
+
* @param {boolean} options.schedule - Whether or not to allow for scheduled (CRON) hook extensions
|
|
65
|
+
* @param {boolean} options.watch - Whether or not to watch the local extensions folder for changes
|
|
66
|
+
*/
|
|
67
|
+
initialize(options?: Partial<ExtensionManagerOptions>): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Load all extensions from disk and register them in their respective places
|
|
70
|
+
*/
|
|
71
|
+
private load;
|
|
72
|
+
/**
|
|
73
|
+
* Unregister all extensions from the current process
|
|
74
|
+
*/
|
|
75
|
+
private unload;
|
|
76
|
+
/**
|
|
77
|
+
* Reload all the extensions. Will unload if extensions have already been loaded
|
|
78
|
+
*/
|
|
20
79
|
reload(): void;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Return the previously generated app extensions bundle
|
|
82
|
+
*/
|
|
83
|
+
getAppExtensionsBundle(): string | null;
|
|
84
|
+
/**
|
|
85
|
+
* Return the previously generated app extension bundle chunk by name
|
|
86
|
+
*/
|
|
24
87
|
getAppExtensionChunk(name: string): string | null;
|
|
88
|
+
/**
|
|
89
|
+
* Return the scoped router for custom endpoints
|
|
90
|
+
*/
|
|
25
91
|
getEndpointRouter(): Router;
|
|
92
|
+
/**
|
|
93
|
+
* Return the custom HTML head and body embeds wrapped in a marker comment
|
|
94
|
+
*/
|
|
26
95
|
getEmbeds(): {
|
|
27
96
|
head: string;
|
|
28
97
|
body: string;
|
|
29
98
|
};
|
|
30
|
-
|
|
31
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Allow reading the installed extensions
|
|
101
|
+
*/
|
|
102
|
+
getExtensions(): Extension[];
|
|
103
|
+
/**
|
|
104
|
+
* Start the chokidar watcher for extensions on the local filesystem
|
|
105
|
+
*/
|
|
32
106
|
private initializeWatcher;
|
|
107
|
+
/**
|
|
108
|
+
* Close and destroy the local filesystem watcher if enabled
|
|
109
|
+
*/
|
|
33
110
|
private closeWatcher;
|
|
111
|
+
/**
|
|
112
|
+
* Update the chokidar watcher configuration when new extensions are added or existing ones
|
|
113
|
+
* removed
|
|
114
|
+
*/
|
|
34
115
|
private updateWatchedExtensions;
|
|
116
|
+
/**
|
|
117
|
+
* Uses rollup to bundle the app extensions together into a single file the app can download and
|
|
118
|
+
* run.
|
|
119
|
+
*/
|
|
35
120
|
private generateExtensionBundle;
|
|
121
|
+
private registerSandboxedApiExtension;
|
|
122
|
+
/**
|
|
123
|
+
* Import the hook module code for all hook extensions, and register them individually through
|
|
124
|
+
* registerHook
|
|
125
|
+
*/
|
|
36
126
|
private registerHooks;
|
|
127
|
+
/**
|
|
128
|
+
* Import the endpoint module code for all endpoint extensions, and register them individually through
|
|
129
|
+
* registerEndpoint
|
|
130
|
+
*/
|
|
37
131
|
private registerEndpoints;
|
|
132
|
+
/**
|
|
133
|
+
* Import the operation module code for all operation extensions, and register them individually through
|
|
134
|
+
* registerOperation
|
|
135
|
+
*/
|
|
38
136
|
private registerOperations;
|
|
137
|
+
/**
|
|
138
|
+
* Import the module code for all hook, endpoint, and operation extensions registered within a
|
|
139
|
+
* bundle, and register them with their respective registration function
|
|
140
|
+
*/
|
|
39
141
|
private registerBundles;
|
|
142
|
+
/**
|
|
143
|
+
* Register a single hook
|
|
144
|
+
*/
|
|
40
145
|
private registerHook;
|
|
146
|
+
/**
|
|
147
|
+
* Register an individual endpoint
|
|
148
|
+
*/
|
|
41
149
|
private registerEndpoint;
|
|
150
|
+
/**
|
|
151
|
+
* Register an individual operation
|
|
152
|
+
*/
|
|
42
153
|
private registerOperation;
|
|
154
|
+
/**
|
|
155
|
+
* Remove the registration for all API extensions
|
|
156
|
+
*/
|
|
43
157
|
private unregisterApiExtensions;
|
|
44
158
|
}
|