@oktis-works/plugin-runtime 0.6.1 → 0.7.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/bootstrap.d.ts +90 -22
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +301 -52
- package/dist/bootstrap.js.map +1 -1
- package/dist/content-query.d.ts +29 -0
- package/dist/content-query.d.ts.map +1 -0
- package/dist/content-query.js +109 -0
- package/dist/content-query.js.map +1 -0
- package/dist/hook-registry.d.ts +21 -21
- package/dist/hook-registry.d.ts.map +1 -1
- package/dist/hook-registry.js +26 -26
- package/dist/hook-registry.js.map +1 -1
- package/dist/http.d.ts +50 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +314 -0
- package/dist/http.js.map +1 -0
- package/dist/i18n.d.ts +16 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +73 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +8 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +98 -10
- package/dist/loader.js.map +1 -1
- package/dist/manifest.d.ts +11 -6
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +290 -17
- package/dist/manifest.js.map +1 -1
- package/dist/plugin-api.d.ts +194 -40
- package/dist/plugin-api.d.ts.map +1 -1
- package/dist/plugin-api.js +655 -13
- package/dist/plugin-api.js.map +1 -1
- package/dist/plugin-migrations.d.ts +15 -0
- package/dist/plugin-migrations.d.ts.map +1 -0
- package/dist/plugin-migrations.js +68 -0
- package/dist/plugin-migrations.js.map +1 -0
- package/dist/sandbox.d.ts +13 -11
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +11 -9
- package/dist/sandbox.js.map +1 -1
- package/dist/style-isolation.d.ts +3 -3
- package/dist/style-isolation.js +6 -6
- package/dist/style-isolation.js.map +1 -1
- package/package.json +6 -5
package/dist/bootstrap.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
// @oktis-works/plugin-runtime -
|
|
1
|
+
// @oktis-works/plugin-runtime - Plugin runtime bootstrap
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// `plugin_tenants`
|
|
7
|
-
//
|
|
8
|
-
//
|
|
3
|
+
// PLUGIN.md promises: "`register(registry)` is called when the plugin is
|
|
4
|
+
// loaded". This module honors it: discovers enabled plugins in the database
|
|
5
|
+
// (**platform** scope = `tenant_id IS NULL`; **tenant** scope = enabled
|
|
6
|
+
// `plugin_tenants`), imports the entrypoint, calls `register(registry)` with
|
|
7
|
+
// a hook API attributed to the plugin (BUSI-032/033) and syncs the scope
|
|
8
|
+
// registry.
|
|
9
9
|
//
|
|
10
|
-
//
|
|
11
|
-
// - **
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
10
|
+
// Rules:
|
|
11
|
+
// - **never throws**: a broken plugin, invalid manifest, semantic
|
|
12
|
+
// incompatibility or an unavailable database never break the boot
|
|
13
|
+
// (failure isolation);
|
|
14
|
+
// - **syncs with the database**: anything that left the enabled list has
|
|
15
|
+
// its hooks removed from the registry (unload);
|
|
16
|
+
// - **idempotent**: an already-loaded plugin is not reloaded (no duplicate
|
|
17
|
+
// hooks) — repeated calls load only what is new;
|
|
18
|
+
// - **per scope**: load state is indexed by scope (platform or a tenant),
|
|
19
|
+
// so enabling/disabling in one tenant does not affect another.
|
|
19
20
|
import { createPluginHooksApi } from '@oktis-works/plugin-sdk';
|
|
20
21
|
import { PLUGIN_PERMISSION_DEFAULT } from '@oktis-works/validation';
|
|
21
22
|
import { PluginLoader } from './loader.js';
|
|
@@ -23,8 +24,29 @@ import { PluginSandbox } from './sandbox.js';
|
|
|
23
24
|
import { getHookRegistry, getHookRegistryStore } from './hook-registry.js';
|
|
24
25
|
/** Estado de carga por escopo (`''` = platform, `tenant:<id>` = tenant). */
|
|
25
26
|
const loadedScopes = new Map();
|
|
27
|
+
const pendingScopeCleanups = new Map();
|
|
28
|
+
/** Platform scope uses the same key as the core ('platform') — external lookups match. */
|
|
29
|
+
const PLATFORM_SCOPE = 'platform';
|
|
26
30
|
function scopeKeyOf(tenantId) {
|
|
27
|
-
return tenantId ? `tenant:${tenantId}` :
|
|
31
|
+
return tenantId ? `tenant:${tenantId}` : PLATFORM_SCOPE;
|
|
32
|
+
}
|
|
33
|
+
async function awaitWithTimeout(promise, timeoutMs) {
|
|
34
|
+
if (timeoutMs <= 0)
|
|
35
|
+
return promise;
|
|
36
|
+
let timer;
|
|
37
|
+
try {
|
|
38
|
+
return await Promise.race([
|
|
39
|
+
promise,
|
|
40
|
+
new Promise((_, reject) => {
|
|
41
|
+
timer = setTimeout(() => reject(new Error(`register() exceeded ${timeoutMs}ms`)), timeoutMs);
|
|
42
|
+
timer.unref?.();
|
|
43
|
+
}),
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
if (timer)
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
}
|
|
28
50
|
}
|
|
29
51
|
function getScope(scopeKey, registry) {
|
|
30
52
|
let scope = loadedScopes.get(scopeKey);
|
|
@@ -34,7 +56,7 @@ function getScope(scopeKey, registry) {
|
|
|
34
56
|
}
|
|
35
57
|
return scope;
|
|
36
58
|
}
|
|
37
|
-
/**
|
|
59
|
+
/** Scope with registered loads (for inspection/runtime state). */
|
|
38
60
|
export function listLoadedScopes() {
|
|
39
61
|
return [...loadedScopes.entries()].map(([scope, entry]) => ({
|
|
40
62
|
scope,
|
|
@@ -42,7 +64,7 @@ export function listLoadedScopes() {
|
|
|
42
64
|
plugins: [...entry.plugins.keys()],
|
|
43
65
|
}));
|
|
44
66
|
}
|
|
45
|
-
/**
|
|
67
|
+
/** Gets the routes registered by plugins in a scope. */
|
|
46
68
|
export function getLoadedPluginRoutes(scopeKey) {
|
|
47
69
|
const scope = loadedScopes.get(scopeKey);
|
|
48
70
|
if (!scope)
|
|
@@ -52,16 +74,141 @@ export function getLoadedPluginRoutes(scopeKey) {
|
|
|
52
74
|
if (entry.internal) {
|
|
53
75
|
const routes = entry.internal.getRoutes();
|
|
54
76
|
if (routes.length > 0) {
|
|
55
|
-
|
|
77
|
+
const rpm = entry.manifest?.rateLimit?.rpm;
|
|
78
|
+
result.push({
|
|
79
|
+
pluginName,
|
|
80
|
+
routes,
|
|
81
|
+
api: entry.internal.getApi(),
|
|
82
|
+
scope: scopeKey,
|
|
83
|
+
tenantId: scopeKey === 'platform' ? null : scopeKey.slice('tenant:'.length),
|
|
84
|
+
...(typeof rpm === 'number' && rpm > 0 ? { rpm } : {}),
|
|
85
|
+
});
|
|
56
86
|
}
|
|
57
87
|
}
|
|
58
88
|
}
|
|
59
89
|
return result;
|
|
60
90
|
}
|
|
61
91
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
|
|
92
|
+
* Handlers de jobs dos plugins em um escopo (dispatch pelo worker:
|
|
93
|
+
* `plugin:{tenant}:{plugin}:{jobName}` → handler).
|
|
94
|
+
*/
|
|
95
|
+
export function getLoadedPluginJobHandlers(scopeKey) {
|
|
96
|
+
const scope = loadedScopes.get(scopeKey);
|
|
97
|
+
if (!scope)
|
|
98
|
+
return [];
|
|
99
|
+
const result = [];
|
|
100
|
+
for (const [pluginName, entry] of scope.plugins) {
|
|
101
|
+
if (entry.internal) {
|
|
102
|
+
const handlers = entry.internal.getJobHandlers?.();
|
|
103
|
+
if (handlers && handlers.size > 0) {
|
|
104
|
+
result.push({ pluginName, handlers });
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Runtime `api.admin` state of the plugins loaded in a scope (slots
|
|
112
|
+
* registered at runtime) — consumed by GET /api/v1/plugins/extensions, which
|
|
113
|
+
* merges it with `manifest.admin`. Only states with at least one entry are
|
|
114
|
+
* returned.
|
|
115
|
+
*/
|
|
116
|
+
export function getLoadedPluginAdminExtensions(scopeKey) {
|
|
117
|
+
const scope = loadedScopes.get(scopeKey);
|
|
118
|
+
if (!scope)
|
|
119
|
+
return [];
|
|
120
|
+
const result = [];
|
|
121
|
+
for (const [pluginName, entry] of scope.plugins) {
|
|
122
|
+
const state = entry.internal?.getAdminState?.();
|
|
123
|
+
if (!state)
|
|
124
|
+
continue;
|
|
125
|
+
const hasEntries = state.menuPages.length > 0 ||
|
|
126
|
+
state.submenuPages.length > 0 ||
|
|
127
|
+
state.dashboardWidgets.length > 0 ||
|
|
128
|
+
state.metaBoxes.length > 0 ||
|
|
129
|
+
state.notices.length > 0 ||
|
|
130
|
+
state.actionLinks.length > 0 ||
|
|
131
|
+
(state.editors?.length ?? 0) > 0 ||
|
|
132
|
+
Object.keys(state.columns).length > 0 ||
|
|
133
|
+
Object.keys(state.columnRenderers).length > 0;
|
|
134
|
+
if (hasEntries)
|
|
135
|
+
result.push({ pluginName, state });
|
|
136
|
+
}
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Blocks registered at runtime via `api.registerBlock` by the plugins loaded
|
|
141
|
+
* in a scope — consumed by GET /api/v1/blocks, which merges them with
|
|
142
|
+
* `manifest.blocks`. Only plugins with at least one block are returned.
|
|
143
|
+
*/
|
|
144
|
+
export function getLoadedPluginBlocks(scopeKey) {
|
|
145
|
+
const scope = loadedScopes.get(scopeKey);
|
|
146
|
+
if (!scope)
|
|
147
|
+
return [];
|
|
148
|
+
const result = [];
|
|
149
|
+
for (const [pluginName, entry] of scope.plugins) {
|
|
150
|
+
const blocks = entry.internal?.getBlocks?.();
|
|
151
|
+
if (blocks && blocks.length > 0)
|
|
152
|
+
result.push({ pluginName, blocks });
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Patterns registered at runtime via `api.registerPattern` by the plugins
|
|
158
|
+
* loaded in a scope — consumed by GET /api/v1/patterns, which merges them
|
|
159
|
+
* with `manifest.patterns`. Only plugins with at least one pattern are
|
|
160
|
+
* returned.
|
|
161
|
+
*/
|
|
162
|
+
export function getLoadedPluginPatterns(scopeKey) {
|
|
163
|
+
const scope = loadedScopes.get(scopeKey);
|
|
164
|
+
if (!scope)
|
|
165
|
+
return [];
|
|
166
|
+
const result = [];
|
|
167
|
+
for (const [pluginName, entry] of scope.plugins) {
|
|
168
|
+
const patterns = entry.internal?.getPatterns?.();
|
|
169
|
+
if (patterns && patterns.length > 0)
|
|
170
|
+
result.push({ pluginName, patterns });
|
|
171
|
+
}
|
|
172
|
+
return result;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Assets enqueued at runtime via `api.assets` by the plugins loaded in a
|
|
176
|
+
* scope — consumed by the public renderer (theme:head pipeline, Item 8).
|
|
177
|
+
* Only plugins with at least one asset are returned.
|
|
178
|
+
*/
|
|
179
|
+
export function getLoadedPluginAssets(scopeKey) {
|
|
180
|
+
const scope = loadedScopes.get(scopeKey);
|
|
181
|
+
if (!scope)
|
|
182
|
+
return [];
|
|
183
|
+
const result = [];
|
|
184
|
+
for (const [pluginName, entry] of scope.plugins) {
|
|
185
|
+
const assets = entry.internal?.getEnqueuedAssets?.();
|
|
186
|
+
if (assets && assets.length > 0)
|
|
187
|
+
result.push({ pluginName, assets });
|
|
188
|
+
}
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Health checks registered at runtime via `api.health` by the plugins loaded
|
|
193
|
+
* in a scope — aggregated by GET /api/v1/health (Item 14). Only plugins with
|
|
194
|
+
* at least one check are returned.
|
|
195
|
+
*/
|
|
196
|
+
export function getLoadedPluginHealthChecks(scopeKey) {
|
|
197
|
+
const scope = loadedScopes.get(scopeKey);
|
|
198
|
+
if (!scope)
|
|
199
|
+
return [];
|
|
200
|
+
const result = [];
|
|
201
|
+
for (const [pluginName, entry] of scope.plugins) {
|
|
202
|
+
const checks = entry.internal?.getHealthChecks?.();
|
|
203
|
+
if (checks && checks.length > 0)
|
|
204
|
+
result.push({ pluginName, checks });
|
|
205
|
+
}
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Removes all hooks from the loaded scopes and clears the state.
|
|
210
|
+
* Useful in tests and shutdown. When `registry` is given, hooks are removed
|
|
211
|
+
* from it; otherwise from the registry where they were registered.
|
|
65
212
|
*/
|
|
66
213
|
export function resetLoadedPlugins(registry) {
|
|
67
214
|
for (const [scopeKey, scope] of loadedScopes) {
|
|
@@ -73,6 +220,7 @@ export function resetLoadedPlugins(registry) {
|
|
|
73
220
|
else
|
|
74
221
|
target.removeFilter(reg.name, reg.callback, reg.priority);
|
|
75
222
|
}
|
|
223
|
+
void entry.internal?.cleanup();
|
|
76
224
|
}
|
|
77
225
|
loadedScopes.delete(scopeKey);
|
|
78
226
|
}
|
|
@@ -82,6 +230,7 @@ export function unloadScope(scopeKey) {
|
|
|
82
230
|
const scope = loadedScopes.get(scopeKey);
|
|
83
231
|
if (!scope)
|
|
84
232
|
return false;
|
|
233
|
+
const cleanups = [];
|
|
85
234
|
for (const entry of scope.plugins.values()) {
|
|
86
235
|
for (const reg of entry.registrations) {
|
|
87
236
|
if (reg.type === 'action')
|
|
@@ -89,15 +238,20 @@ export function unloadScope(scopeKey) {
|
|
|
89
238
|
else
|
|
90
239
|
scope.registry.removeFilter(reg.name, reg.callback, reg.priority);
|
|
91
240
|
}
|
|
241
|
+
if (entry.internal)
|
|
242
|
+
cleanups.push(entry.internal.cleanup());
|
|
92
243
|
}
|
|
93
244
|
loadedScopes.delete(scopeKey);
|
|
245
|
+
if (cleanups.length > 0) {
|
|
246
|
+
pendingScopeCleanups.set(scopeKey, Promise.all(cleanups).then(() => undefined).finally(() => pendingScopeCleanups.delete(scopeKey)));
|
|
247
|
+
}
|
|
94
248
|
return true;
|
|
95
249
|
}
|
|
96
|
-
/**
|
|
250
|
+
/** Unloads a tenant (key `tenant:<id>` or the id itself). */
|
|
97
251
|
export function unloadTenant(tenantId) {
|
|
98
252
|
return unloadScope(scopeKeyOf(tenantId));
|
|
99
253
|
}
|
|
100
|
-
function unloadPlugin(scope, name) {
|
|
254
|
+
async function unloadPlugin(scope, name) {
|
|
101
255
|
const entry = scope.plugins.get(name);
|
|
102
256
|
if (!entry)
|
|
103
257
|
return false;
|
|
@@ -107,14 +261,15 @@ function unloadPlugin(scope, name) {
|
|
|
107
261
|
else
|
|
108
262
|
scope.registry.removeFilter(reg.name, reg.callback, reg.priority);
|
|
109
263
|
}
|
|
264
|
+
await entry.internal?.cleanup();
|
|
110
265
|
scope.plugins.delete(name);
|
|
111
266
|
return true;
|
|
112
267
|
}
|
|
113
268
|
/**
|
|
114
269
|
* Registry que grava cada registro num sink (para poder descarregar depois),
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
270
|
+
* delegates to the real registry with the SDK-attributed `sourceId` and
|
|
271
|
+
* **applies the sandbox timeout** to the registered callback (WP5 — real
|
|
272
|
+
* protection against a hanging hook; documented as limited to async work).
|
|
118
273
|
*/
|
|
119
274
|
function recordingRegistry(registry, sink, sandbox) {
|
|
120
275
|
const acceptedArgsOf = (callback, explicit) => explicit ?? callback.length;
|
|
@@ -153,15 +308,18 @@ function enabledQuery(tenantId) {
|
|
|
153
308
|
/**
|
|
154
309
|
* Sincroniza o registry de um escopo com os plugins habilitados no banco.
|
|
155
310
|
* Seguro para chamar no boot de qualquer processo e em re-syncs (ex.: logo
|
|
156
|
-
*
|
|
311
|
+
* after enabling/disabling through the API).
|
|
157
312
|
*/
|
|
158
313
|
export async function bootstrapPlugins(options) {
|
|
159
314
|
const scopeKey = scopeKeyOf(options.tenantId);
|
|
315
|
+
const pendingCleanup = pendingScopeCleanups.get(scopeKey);
|
|
316
|
+
if (pendingCleanup)
|
|
317
|
+
await pendingCleanup;
|
|
160
318
|
const registry = options.registry ??
|
|
161
319
|
(options.tenantId ? getHookRegistryStore().tenant(options.tenantId) : getHookRegistry());
|
|
162
320
|
const statuses = options.enabledStatuses ?? ['ACTIVATED', 'RUNNING'];
|
|
163
321
|
const result = { enabled: [], loaded: [], unloaded: [], failed: [] };
|
|
164
|
-
// 1)
|
|
322
|
+
// 1) Who is enabled in the database? Failure = unknown state → touch nothing.
|
|
165
323
|
let enabled = null;
|
|
166
324
|
if (options.sql) {
|
|
167
325
|
try {
|
|
@@ -178,7 +336,7 @@ export async function bootstrapPlugins(options) {
|
|
|
178
336
|
result.enabled = enabled ?? [];
|
|
179
337
|
if (enabled === null)
|
|
180
338
|
return result;
|
|
181
|
-
// 2)
|
|
339
|
+
// 2) Discovers in the directory (missing directory = no plugins, not an error)
|
|
182
340
|
const loader = new PluginLoader(options.pluginsDir);
|
|
183
341
|
let discovered = [];
|
|
184
342
|
try {
|
|
@@ -190,20 +348,26 @@ export async function bootstrapPlugins(options) {
|
|
|
190
348
|
const scope = getScope(scopeKey, registry);
|
|
191
349
|
// 3) Descarrega quem saiu da lista de habilitados (deste escopo)
|
|
192
350
|
for (const name of [...scope.plugins.keys()]) {
|
|
193
|
-
if (!enabled.includes(name) && unloadPlugin(scope, name)) {
|
|
351
|
+
if (!enabled.includes(name) && await unloadPlugin(scope, name)) {
|
|
194
352
|
result.unloaded.push(name);
|
|
195
353
|
}
|
|
196
354
|
}
|
|
197
|
-
// 4)
|
|
355
|
+
// 4) Loads enabled-but-not-yet-loaded plugins, honoring dependency order
|
|
198
356
|
const enabledDiscovered = discovered.filter((entry) => enabled.includes(entry.manifest.name));
|
|
199
357
|
let levels;
|
|
200
358
|
try {
|
|
201
359
|
levels = loader.resolveDependencies(enabledDiscovered);
|
|
202
360
|
}
|
|
203
|
-
catch {
|
|
204
|
-
|
|
361
|
+
catch (error) {
|
|
362
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
363
|
+
for (const entry of enabledDiscovered)
|
|
364
|
+
result.failed.push({ name: entry.manifest.name, error: message });
|
|
365
|
+
return result;
|
|
205
366
|
}
|
|
206
|
-
|
|
367
|
+
for (const failure of loader.getDependencyFailures()) {
|
|
368
|
+
result.failed.push(failure);
|
|
369
|
+
}
|
|
370
|
+
// Permission policy: configuration allowlist (or the full catalog).
|
|
207
371
|
const policy = options.permissionPolicy ?? PLUGIN_PERMISSION_DEFAULT;
|
|
208
372
|
const timeoutMs = options.hookTimeoutMs ?? 5000;
|
|
209
373
|
for (const level of levels) {
|
|
@@ -211,23 +375,41 @@ export async function bootstrapPlugins(options) {
|
|
|
211
375
|
const name = entry.manifest.name;
|
|
212
376
|
if (scope.plugins.has(name))
|
|
213
377
|
continue;
|
|
378
|
+
let registrations = [];
|
|
379
|
+
let internal;
|
|
214
380
|
try {
|
|
215
381
|
const loaded = await loader.loadPlugin(entry.manifest, entry.path);
|
|
216
|
-
//
|
|
217
|
-
|
|
382
|
+
// Effective permissions are the intersection of the deployment policy
|
|
383
|
+
// and the permissions explicitly declared by this plugin.
|
|
384
|
+
// A missing permissions field is the v1 compatibility form and means
|
|
385
|
+
// the plugin has not opted into the v2 capability declaration yet.
|
|
386
|
+
// An explicit empty array remains least-privilege and grants nothing.
|
|
387
|
+
const declaredPermissions = new Set(entry.manifest.permissions ?? PLUGIN_PERMISSION_DEFAULT);
|
|
388
|
+
const effectivePermissions = policy.filter((permission) => declaredPermissions.has(permission));
|
|
389
|
+
const sandbox = new PluginSandbox({ allowedPermissions: effectivePermissions, timeoutMs });
|
|
218
390
|
sandbox.loadPlugin(entry.manifest, loaded.api);
|
|
219
391
|
// Contrato do PLUGIN.md: module.exports.register(registry)
|
|
220
392
|
const register = loaded.api.register;
|
|
221
393
|
if (typeof register !== 'function') {
|
|
222
|
-
throw new Error('
|
|
394
|
+
throw new Error('does not export register(registry)');
|
|
395
|
+
}
|
|
396
|
+
// Item 20: plugin schema migrations (manifest.migrations[]) run
|
|
397
|
+
// BEFORE register(), once per plugin (global registry in
|
|
398
|
+
// plugin_schema_migrations). Checksum drift fails the plugin isolated.
|
|
399
|
+
if (options.sql && Array.isArray(entry.manifest.migrations) && entry.manifest.migrations.length > 0) {
|
|
400
|
+
const { applyPluginMigrations } = await import('./plugin-migrations.js');
|
|
401
|
+
const migrationResult = await applyPluginMigrations(options.sql, name, entry.path, entry.manifest.migrations);
|
|
402
|
+
if (migrationResult.drift.length > 0) {
|
|
403
|
+
throw new Error(`Plugin migration drift: ${migrationResult.drift.join('; ')}`);
|
|
404
|
+
}
|
|
223
405
|
}
|
|
224
|
-
|
|
406
|
+
registrations = [];
|
|
225
407
|
// Se o core forneceu apiDeps, cria a API completa (hooks + settings + query + routes + ...)
|
|
226
|
-
//
|
|
408
|
+
// Otherwise, only the legacy Hooks API is used (compatibility).
|
|
227
409
|
let apiToPass;
|
|
228
|
-
|
|
410
|
+
internal = undefined;
|
|
229
411
|
if (options.apiDeps) {
|
|
230
|
-
//
|
|
412
|
+
// Merges the core deps with the plugin/runtime-specific ones
|
|
231
413
|
const deps = {
|
|
232
414
|
hooks: recordingRegistry(registry, registrations, sandbox),
|
|
233
415
|
manifest: entry.manifest,
|
|
@@ -242,20 +424,73 @@ export async function bootstrapPlugins(options) {
|
|
|
242
424
|
registerRoutes: options.apiDeps.registerRoutes ?? (() => { }),
|
|
243
425
|
registerContentFields: options.apiDeps.registerContentFields ?? (() => { }),
|
|
244
426
|
registerFieldTypes: options.apiDeps.registerFieldTypes ?? (() => { }),
|
|
245
|
-
|
|
427
|
+
registerPostTypes: options.apiDeps.registerPostTypes ?? (() => { }),
|
|
428
|
+
registerTaxonomies: options.apiDeps.registerTaxonomies ?? (() => { }),
|
|
429
|
+
// Core cache backend; absent → in-memory fallback in the factory
|
|
430
|
+
cache: options.apiDeps.cache,
|
|
431
|
+
// Backend de jobs do core; ausente → schedule/enqueue retornam false
|
|
432
|
+
jobs: options.apiDeps.jobs,
|
|
433
|
+
allowedPermissions: effectivePermissions,
|
|
246
434
|
};
|
|
247
|
-
//
|
|
435
|
+
// Creates the full API using the internal factory
|
|
248
436
|
const { createPluginApi } = await import('./plugin-api.js');
|
|
249
437
|
const apiResult = createPluginApi(deps);
|
|
250
438
|
apiToPass = apiResult.api;
|
|
251
439
|
internal = apiResult.internal;
|
|
440
|
+
// Item 9: loads the manifest `locales[]` files before register()
|
|
441
|
+
// — translations already available during boot. File failure is
|
|
442
|
+
// silent (fallback = the key itself).
|
|
443
|
+
try {
|
|
444
|
+
const { loadPluginLocales } = await import('./i18n.js');
|
|
445
|
+
const i18n = apiResult.api.i18n;
|
|
446
|
+
if (i18n)
|
|
447
|
+
await loadPluginLocales(entry.path, entry.manifest, i18n);
|
|
448
|
+
}
|
|
449
|
+
catch {
|
|
450
|
+
// i18n unavailable — boot continues
|
|
451
|
+
}
|
|
252
452
|
}
|
|
253
453
|
else {
|
|
254
454
|
apiToPass = createPluginHooksApi(name, recordingRegistry(registry, registrations, sandbox));
|
|
255
455
|
}
|
|
256
|
-
register(
|
|
456
|
+
// register() may be async — we await it (with the same hook timeout)
|
|
457
|
+
// so rejections become an isolated failure instead of an unhandled
|
|
458
|
+
// rejection: previously a throwing async register escaped the
|
|
459
|
+
// try/catch and became an unhandled process error.
|
|
460
|
+
await awaitWithTimeout(Promise.resolve(register(apiToPass)), timeoutMs);
|
|
257
461
|
if (internal) {
|
|
258
|
-
|
|
462
|
+
const typedApi = apiToPass;
|
|
463
|
+
// Declarative manifest registrations use the same validation and
|
|
464
|
+
// permission checks as imperative registrations.
|
|
465
|
+
for (const fieldType of entry.manifest.fieldTypes ?? [])
|
|
466
|
+
typedApi.addFieldType(fieldType);
|
|
467
|
+
for (const block of entry.manifest.blocks ?? [])
|
|
468
|
+
typedApi.registerBlock(block);
|
|
469
|
+
for (const pattern of entry.manifest.patterns ?? [])
|
|
470
|
+
typedApi.registerPattern(pattern);
|
|
471
|
+
for (const postType of entry.manifest.postTypes ?? [])
|
|
472
|
+
typedApi.addPostType(postType);
|
|
473
|
+
for (const taxonomy of entry.manifest.taxonomies ?? [])
|
|
474
|
+
typedApi.addTaxonomy(taxonomy);
|
|
475
|
+
if (internal.getFields().length > 0) {
|
|
476
|
+
await options.apiDeps?.registerContentFields?.(internal.getFields(), name);
|
|
477
|
+
}
|
|
478
|
+
scope.plugins.set(name, { registrations, internal, manifest: entry.manifest });
|
|
479
|
+
await options.apiDeps?.registerPostTypes?.(internal.getPostTypes());
|
|
480
|
+
await options.apiDeps?.registerTaxonomies?.(internal.getTaxonomies());
|
|
481
|
+
// Jobs declarados no manifesto (v2): agenda recorrente via api.jobs
|
|
482
|
+
// (same validation/permission/ceiling as the imperative path).
|
|
483
|
+
if (entry.manifest.scheduleJobs?.length) {
|
|
484
|
+
const typedApi = apiToPass;
|
|
485
|
+
for (const job of entry.manifest.scheduleJobs) {
|
|
486
|
+
try {
|
|
487
|
+
await typedApi.jobs.schedule(job.name, { every: job.every, cron: job.cron });
|
|
488
|
+
}
|
|
489
|
+
catch (e) {
|
|
490
|
+
console.warn(`[plugins] Failed to schedule declared job "${job.name}" for ${name}:`, e);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
259
494
|
// Persist field types registered by this plugin
|
|
260
495
|
if (internal.getFieldTypes && internal.getFieldTypes().length > 0) {
|
|
261
496
|
const fieldTypes = internal.getFieldTypes();
|
|
@@ -268,24 +503,38 @@ export async function bootstrapPlugins(options) {
|
|
|
268
503
|
const coreModuleId = '@oktis-works/core';
|
|
269
504
|
const core = (await import(coreModuleId));
|
|
270
505
|
const { fieldTypeExtensionService } = core;
|
|
271
|
-
|
|
272
|
-
await fieldTypeExtensionService.
|
|
506
|
+
if (fieldTypeExtensionService.reconcilePlugin) {
|
|
507
|
+
await fieldTypeExtensionService.reconcilePlugin(name, fieldTypes);
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
for (const ft of fieldTypes)
|
|
511
|
+
await fieldTypeExtensionService.register(ft);
|
|
273
512
|
}
|
|
274
513
|
// Sync to in-memory registry
|
|
275
514
|
await fieldTypeExtensionService.syncToRegistry();
|
|
276
515
|
}
|
|
277
516
|
catch (e) {
|
|
278
|
-
|
|
517
|
+
throw new Error(`Failed to persist field types for ${name}: ${e instanceof Error ? e.message : String(e)}`);
|
|
279
518
|
}
|
|
280
519
|
}
|
|
281
520
|
}
|
|
282
521
|
else {
|
|
283
|
-
scope.plugins.set(name, { registrations });
|
|
522
|
+
scope.plugins.set(name, { registrations, manifest: entry.manifest });
|
|
284
523
|
}
|
|
285
524
|
result.loaded.push(name);
|
|
286
525
|
}
|
|
287
526
|
catch (error) {
|
|
288
|
-
|
|
527
|
+
if (internal)
|
|
528
|
+
await internal.cleanup();
|
|
529
|
+
if (internal)
|
|
530
|
+
internal.reset();
|
|
531
|
+
for (const reg of registrations) {
|
|
532
|
+
if (reg.type === 'action')
|
|
533
|
+
registry.removeAction(reg.name, reg.callback, reg.priority);
|
|
534
|
+
else
|
|
535
|
+
registry.removeFilter(reg.name, reg.callback, reg.priority);
|
|
536
|
+
}
|
|
537
|
+
// Failure isolation: a broken plugin never blocks the others or the boot
|
|
289
538
|
result.failed.push({ name, error: error instanceof Error ? error.message : String(error) });
|
|
290
539
|
}
|
|
291
540
|
}
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare const OPERATORS: Record<string, string>;
|
|
2
|
+
export interface ContentQueryFilter {
|
|
3
|
+
field: string;
|
|
4
|
+
op: keyof typeof OPERATORS | 'in';
|
|
5
|
+
value: unknown;
|
|
6
|
+
}
|
|
7
|
+
export declare class ContentQueryBuilder {
|
|
8
|
+
private readonly executeFn;
|
|
9
|
+
private filters;
|
|
10
|
+
private order;
|
|
11
|
+
private limitValue;
|
|
12
|
+
private offsetValue;
|
|
13
|
+
constructor(executeFn: (query: string, params?: unknown[]) => Promise<unknown[]>);
|
|
14
|
+
/** Adds a single-value condition (field must be an allowlisted column). */
|
|
15
|
+
where(field: string, op: keyof typeof OPERATORS, value: unknown): this;
|
|
16
|
+
/** Adds an IN condition over an array of values. */
|
|
17
|
+
whereIn(field: string, values: readonly unknown[]): this;
|
|
18
|
+
orderBy(field: string, dir?: 'asc' | 'desc'): this;
|
|
19
|
+
limit(n: number): this;
|
|
20
|
+
offset(n: number): this;
|
|
21
|
+
/** Renders the parameterized SQL + params (exported for tests/debug). */
|
|
22
|
+
build(): {
|
|
23
|
+
sql: string;
|
|
24
|
+
params: unknown[];
|
|
25
|
+
};
|
|
26
|
+
execute(): Promise<unknown[]>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=content-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-query.d.ts","sourceRoot":"","sources":["../src/content-query.ts"],"names":[],"mappings":"AAuBA,QAAA,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQrC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,OAAO,SAAS,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAMlB,OAAO,CAAC,QAAQ,CAAC,SAAS;IALtC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,KAAK,CAAqD;IAClE,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,WAAW,CAAK;gBAEK,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;IAEjG,2EAA2E;IAC3E,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAWtE,oDAAoD;IACpD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAWxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,KAAK,GAAG,MAAe,GAAG,IAAI;IAQ1D,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAQtB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAQvB,yEAAyE;IACzE,KAAK,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE;IAuB3C,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAI9B"}
|