@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.
Files changed (48) hide show
  1. package/dist/bootstrap.d.ts +90 -22
  2. package/dist/bootstrap.d.ts.map +1 -1
  3. package/dist/bootstrap.js +301 -52
  4. package/dist/bootstrap.js.map +1 -1
  5. package/dist/content-query.d.ts +29 -0
  6. package/dist/content-query.d.ts.map +1 -0
  7. package/dist/content-query.js +109 -0
  8. package/dist/content-query.js.map +1 -0
  9. package/dist/hook-registry.d.ts +21 -21
  10. package/dist/hook-registry.d.ts.map +1 -1
  11. package/dist/hook-registry.js +26 -26
  12. package/dist/hook-registry.js.map +1 -1
  13. package/dist/http.d.ts +50 -0
  14. package/dist/http.d.ts.map +1 -0
  15. package/dist/http.js +314 -0
  16. package/dist/http.js.map +1 -0
  17. package/dist/i18n.d.ts +16 -0
  18. package/dist/i18n.d.ts.map +1 -0
  19. package/dist/i18n.js +73 -0
  20. package/dist/i18n.js.map +1 -0
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/loader.d.ts +8 -0
  26. package/dist/loader.d.ts.map +1 -1
  27. package/dist/loader.js +98 -10
  28. package/dist/loader.js.map +1 -1
  29. package/dist/manifest.d.ts +11 -6
  30. package/dist/manifest.d.ts.map +1 -1
  31. package/dist/manifest.js +290 -17
  32. package/dist/manifest.js.map +1 -1
  33. package/dist/plugin-api.d.ts +194 -40
  34. package/dist/plugin-api.d.ts.map +1 -1
  35. package/dist/plugin-api.js +655 -13
  36. package/dist/plugin-api.js.map +1 -1
  37. package/dist/plugin-migrations.d.ts +15 -0
  38. package/dist/plugin-migrations.d.ts.map +1 -0
  39. package/dist/plugin-migrations.js +68 -0
  40. package/dist/plugin-migrations.js.map +1 -0
  41. package/dist/sandbox.d.ts +13 -11
  42. package/dist/sandbox.d.ts.map +1 -1
  43. package/dist/sandbox.js +11 -9
  44. package/dist/sandbox.js.map +1 -1
  45. package/dist/style-isolation.d.ts +3 -3
  46. package/dist/style-isolation.js +6 -6
  47. package/dist/style-isolation.js.map +1 -1
  48. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -3,22 +3,27 @@ export type ManifestSource = 'manifest.json' | 'package.json';
3
3
  export interface ReadManifestResult {
4
4
  manifest: PluginManifest | null;
5
5
  source: ManifestSource | null;
6
- /** Problemas encontrados (motivo de recusa, quando `manifest` é null). */
6
+ /** Found issues (the rejection reason when `manifest` is null). */
7
7
  issues: string[];
8
8
  }
9
9
  /**
10
- * Lê o manifesto de um diretório de plugin com precedência única.
10
+ * Valida os campos do schema v2 (tudo opcional — um manifesto v1 continua
11
+ * valid). Returns the found issues; empty = valid.
12
+ */
13
+ export declare function validateManifestV2(merged: Record<string, unknown>): string[];
14
+ /**
15
+ * Reads a plugin directory's manifest with a single precedence rule.
11
16
  *
12
- * @param dir diretório do plugin
17
+ * @param dir the plugin directory
13
18
  * @param options.strict exige `main` e valida `type === 'plugin'` quando
14
- * declarado (usado por sync/instalação/CLI)
19
+ * declared (used by sync/install/CLI)
15
20
  */
16
21
  export declare function readPluginManifest(dir: string, options?: {
17
22
  strict?: boolean;
18
23
  }): Promise<ReadManifestResult>;
19
24
  /**
20
- * Normaliza o manifesto para gravação no banco (mantém só campos conhecidos,
21
- * preservando campos extras legítimos do autor).
25
+ * Normalizes the manifest for database storage (keeps only known fields,
26
+ * preserving the author's legitimate extra fields).
22
27
  */
23
28
  export declare function normalizePluginManifest(manifest: PluginManifest): Record<string, unknown>;
24
29
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgBD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAqC7B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzF"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,mEAAmE;IACnE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAsP5E;AAYD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAiD7B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzF"}
package/dist/manifest.js CHANGED
@@ -1,22 +1,283 @@
1
- // @oktis-works/plugin-runtime - Fonte única de leitura de manifesto de plugin
1
+ // @oktis-works/plugin-runtime - Single source of truth for reading plugin manifests
2
2
  //
3
- // Antes havia duas fontes de verdade divergentes:
4
- // - o loader lia `package.json` primeiro, depois `manifest.json`;
5
- // - o sync (admin) e a CLI liam só `manifest.json`.
6
- // Um plugin no formato npm era descoberto pelo runtime mas nunca chegava ao
7
- // banco (invisível no admin). Aqui tudo passa por `readPluginManifest`:
3
+ // Historically:
4
+ // - the admin sync and the CLI read only `manifest.json`;
5
+ // - npm plugins could skip it and live off `package.json` (fields then came
6
+ // from the database — invisible in the admin). Everything now goes through
7
+ // `readPluginManifest`:
8
8
  //
9
- // - **precedência**: `manifest.json` (canônico do OkCMS) vence `package.json`
10
- // (formato npm); campos ausentes em `manifest.json` são preenchidos do npm;
11
- // - **validação**: `name`/`version` obrigatórios; `type` explícito ≠ 'plugin'
12
- // é rejeitado (ex.: theme.json/manifest de tema dentro de plugins/);
13
- // - `strict` (sync/instalação) exige mais que `main` e devolve `issues`
9
+ // - **precedence**: `manifest.json` (the OkCMS canonical) wins over
10
+ // `package.json` (npm format); fields missing from `manifest.json` are
11
+ // filled from npm;
12
+ // - **validation**: `name`/`version` required; an explicit `type` other than
13
+ // 'plugin' is rejected (e.g. a theme.json/manifest inside plugins/);
14
+ // - `strict` (sync/install) demands more than `main` and returns `issues`.
14
15
  // para o chamador decidir; o loader usa `strict = false` (leniente).
15
16
  import { readFile } from 'node:fs/promises';
16
17
  import { join } from 'node:path';
18
+ import { validatePermissions } from '@oktis-works/plugin-sdk';
17
19
  function isRecord(value) {
18
20
  return typeof value === 'object' && value !== null && !Array.isArray(value);
19
21
  }
22
+ function isString(value) {
23
+ return typeof value === 'string' && value.trim().length > 0;
24
+ }
25
+ function isSafeComponentPath(value) {
26
+ if (!isString(value))
27
+ return false;
28
+ const path = value.trim();
29
+ return !path.includes('..') && !path.includes('://') && !path.startsWith('/') && !path.startsWith('data:');
30
+ }
31
+ /**
32
+ * Valida os campos do schema v2 (tudo opcional — um manifesto v1 continua
33
+ * valid). Returns the found issues; empty = valid.
34
+ */
35
+ export function validateManifestV2(merged) {
36
+ const issues = [];
37
+ const manifestVersion = merged['manifestVersion'];
38
+ if (manifestVersion !== undefined && manifestVersion !== 1 && manifestVersion !== 2) {
39
+ issues.push(`manifestVersion "${String(manifestVersion)}" invalid (expected 1 or 2)`);
40
+ }
41
+ // Permissions: unknown ones are rejected (the plugin-sdk catalog).
42
+ const permissions = merged['permissions'];
43
+ if (Array.isArray(permissions)) {
44
+ for (const unknown of validatePermissions(permissions.filter(isString))) {
45
+ issues.push(`unknown permission "${unknown}"`);
46
+ }
47
+ }
48
+ const declaredPermissions = new Set(Array.isArray(permissions) ? permissions.filter(isString) : []);
49
+ const blocks = merged['blocks'];
50
+ if (Array.isArray(blocks)) {
51
+ const blockTypes = new Set();
52
+ for (const block of blocks) {
53
+ if (!isRecord(block) || !isString(block['type']) || !isString(block['label']) || !isString(block['icon']) || !isSafeComponentPath(block['adminComponentPath'])) {
54
+ issues.push('block missing valid type/label/icon/adminComponentPath');
55
+ }
56
+ else if (blockTypes.has(block['type'])) {
57
+ issues.push(`duplicate block type "${block['type']}"`);
58
+ }
59
+ else {
60
+ blockTypes.add(block['type']);
61
+ }
62
+ if (isRecord(block) && block['rendererPath'] !== undefined && !isSafeComponentPath(block['rendererPath'])) {
63
+ issues.push('block.rendererPath must be a safe plugin renderer path');
64
+ }
65
+ }
66
+ if (blocks.length > 0 && !declaredPermissions.has('blocks:register'))
67
+ issues.push('blocks require blocks:register permission');
68
+ }
69
+ const patterns = merged['patterns'];
70
+ if (Array.isArray(patterns)) {
71
+ const patternNames = new Set();
72
+ for (const pattern of patterns) {
73
+ if (!isRecord(pattern) || !isString(pattern['name']) || !isString(pattern['label']) || !isString(pattern['content']) || pattern['content'].length === 0) {
74
+ issues.push('pattern missing valid name/label/content');
75
+ }
76
+ else if (patternNames.has(pattern['name'])) {
77
+ issues.push(`duplicate pattern name "${pattern['name']}"`);
78
+ }
79
+ else {
80
+ patternNames.add(pattern['name']);
81
+ }
82
+ if (isRecord(pattern) && pattern['previewPath'] !== undefined && !isSafeComponentPath(pattern['previewPath'])) {
83
+ issues.push('pattern.previewPath must be a safe plugin path');
84
+ }
85
+ }
86
+ if (patterns.length > 0 && !declaredPermissions.has('patterns:register'))
87
+ issues.push('patterns require patterns:register permission');
88
+ }
89
+ const fieldTypes = merged['fieldTypes'];
90
+ if (Array.isArray(fieldTypes)) {
91
+ const fieldTypeNames = new Set();
92
+ for (const fieldType of fieldTypes) {
93
+ if (!isRecord(fieldType) || !isString(fieldType['type']) || !isString(fieldType['label']) || !isString(fieldType['category']) || !isString(fieldType['icon']) || !isSafeComponentPath(fieldType['adminComponentPath'])) {
94
+ issues.push('fieldType missing valid type/label/category/icon/adminComponentPath');
95
+ }
96
+ else if (fieldTypeNames.has(fieldType['type'])) {
97
+ issues.push(`duplicate field type "${fieldType['type']}"`);
98
+ }
99
+ else {
100
+ fieldTypeNames.add(fieldType['type']);
101
+ }
102
+ if (isRecord(fieldType) && fieldType['adminRendererPath'] !== undefined && !isSafeComponentPath(fieldType['adminRendererPath'])) {
103
+ issues.push('fieldType.adminRendererPath must be a safe plugin component path');
104
+ }
105
+ }
106
+ if (fieldTypes.length > 0 && !declaredPermissions.has('field-types:register'))
107
+ issues.push('fieldTypes require field-types:register permission');
108
+ }
109
+ const locales = merged['locales'];
110
+ if (locales !== undefined) {
111
+ if (!Array.isArray(locales) || !locales.every(isString)) {
112
+ issues.push('locales must be an array of file paths');
113
+ }
114
+ else if (locales.some((path) => path.includes('..') || path.startsWith('/'))) {
115
+ issues.push('locales with paths outside the plugin directory');
116
+ }
117
+ }
118
+ const postTypes = merged['postTypes'];
119
+ if (Array.isArray(postTypes)) {
120
+ for (const postType of postTypes) {
121
+ if (!isRecord(postType) || !isString(postType['key']) || !isString(postType['label'])) {
122
+ issues.push('postType missing valid key/label');
123
+ }
124
+ }
125
+ }
126
+ const taxonomies = merged['taxonomies'];
127
+ if (Array.isArray(taxonomies)) {
128
+ for (const taxonomy of taxonomies) {
129
+ if (!isRecord(taxonomy) || !isString(taxonomy['key']) || !isString(taxonomy['label']) || !Array.isArray(taxonomy['postTypes'])) {
130
+ issues.push('taxonomy missing valid key/label/postTypes');
131
+ }
132
+ }
133
+ }
134
+ const scheduleJobs = merged['scheduleJobs'];
135
+ if (Array.isArray(scheduleJobs)) {
136
+ for (const job of scheduleJobs) {
137
+ if (!isRecord(job) || !isString(job['name'])) {
138
+ issues.push('scheduleJob missing a name');
139
+ continue;
140
+ }
141
+ const hasEvery = typeof job['every'] === 'number' && job['every'] > 0;
142
+ const hasCron = isString(job['cron']);
143
+ if (hasEvery === hasCron) {
144
+ issues.push(`scheduleJob "${job['name']}" requires exactly one of: every | cron`);
145
+ }
146
+ }
147
+ }
148
+ const httpPolicy = merged['httpPolicy'];
149
+ if (httpPolicy !== undefined) {
150
+ if (!isRecord(httpPolicy)) {
151
+ issues.push('httpPolicy invalid');
152
+ }
153
+ else if (httpPolicy['allowHosts'] !== undefined && !Array.isArray(httpPolicy['allowHosts'])) {
154
+ issues.push('httpPolicy.allowHosts must be an array of hosts');
155
+ }
156
+ }
157
+ const rateLimit = merged['rateLimit'];
158
+ if (rateLimit !== undefined) {
159
+ if (!isRecord(rateLimit)) {
160
+ issues.push('rateLimit invalid');
161
+ }
162
+ else if (rateLimit['rpm'] !== undefined && !(typeof rateLimit['rpm'] === 'number' && rateLimit['rpm'] > 0)) {
163
+ issues.push('rateLimit.rpm must be a positive number');
164
+ }
165
+ }
166
+ const migrations = merged['migrations'];
167
+ if (migrations !== undefined) {
168
+ if (!Array.isArray(migrations) || !migrations.every(isString)) {
169
+ issues.push('migrations must be an array of valid SQL paths');
170
+ }
171
+ else if (migrations.some((path) => path.includes('..') || path.startsWith('/'))) {
172
+ issues.push('migrations with paths outside the plugin directory');
173
+ }
174
+ }
175
+ // Declarative admin UI slots (FEAT-098 / DECI-027): identity is mandatory,
176
+ // capability is mandatory on menus (slot-level capability gating) and
177
+ // metaBoxes need a non-empty screens array. context/priority/render/mode,
178
+ // when present, must be known values (the endpoint merge applies defaults).
179
+ const admin = merged['admin'];
180
+ if (admin !== undefined) {
181
+ if (!isRecord(admin)) {
182
+ issues.push('admin must be an object');
183
+ }
184
+ else {
185
+ const checkList = (key, fields) => {
186
+ const list = admin[key];
187
+ if (list === undefined)
188
+ return;
189
+ if (!Array.isArray(list)) {
190
+ issues.push(`admin.${key} must be an array`);
191
+ return;
192
+ }
193
+ list.forEach((entry, index) => {
194
+ if (!isRecord(entry) || fields.some((field) => !isString(entry[field]) || entry[field].length === 0)) {
195
+ issues.push(`admin.${key}[${index}] missing valid ${fields.join('/')}`);
196
+ }
197
+ });
198
+ };
199
+ checkList('menuPages', ['slug', 'label', 'capability']);
200
+ checkList('submenuPages', ['parentSlug', 'slug', 'label', 'capability']);
201
+ checkList('dashboardWidgets', ['id', 'title', 'componentId']);
202
+ checkList('metaBoxes', ['id', 'title', 'componentId']);
203
+ checkList('columns', ['contentType', 'key', 'label']);
204
+ checkList('columnRenderers', ['contentType', 'key', 'componentId']);
205
+ checkList('actionLinks', ['label', 'url']);
206
+ checkList('editors', ['id', 'componentId', 'mode']);
207
+ if (Object.values(admin).some((value) => Array.isArray(value) && value.length > 0) && !declaredPermissions.has('admin:ui')) {
208
+ issues.push('admin extensions require admin:ui permission');
209
+ }
210
+ for (const key of ['dashboardWidgets', 'metaBoxes', 'columnRenderers', 'editors']) {
211
+ const list = admin[key];
212
+ if (Array.isArray(list)) {
213
+ list.forEach((entry, index) => {
214
+ if (isRecord(entry) && !isSafeComponentPath(entry['componentId']))
215
+ issues.push(`admin.${key}[${index}].componentId must be a safe component path`);
216
+ });
217
+ }
218
+ }
219
+ const notices = admin['notices'];
220
+ if (notices !== undefined) {
221
+ if (!Array.isArray(notices)) {
222
+ issues.push('admin.notices must be an array');
223
+ }
224
+ else {
225
+ notices.forEach((entry, index) => {
226
+ if (!isRecord(entry) || !isString(entry['message'])) {
227
+ issues.push(`admin.notices[${index}] missing message`);
228
+ }
229
+ else if (!['info', 'success', 'warning', 'error'].includes(String(entry['level']))) {
230
+ issues.push(`admin.notices[${index}].level invalid`);
231
+ }
232
+ });
233
+ }
234
+ }
235
+ const metaBoxes = admin['metaBoxes'];
236
+ if (Array.isArray(metaBoxes)) {
237
+ metaBoxes.forEach((entry, index) => {
238
+ if (!isRecord(entry))
239
+ return;
240
+ const screens = entry['screens'];
241
+ if (!Array.isArray(screens) || screens.length === 0 || !screens.every(isString)) {
242
+ issues.push(`admin.metaBoxes[${index}].screens must be a non-empty array of strings`);
243
+ }
244
+ if (entry['context'] !== undefined && !['normal', 'side', 'advanced'].includes(String(entry['context']))) {
245
+ issues.push(`admin.metaBoxes[${index}].context invalid`);
246
+ }
247
+ if (entry['priority'] !== undefined && !['high', 'default', 'low'].includes(String(entry['priority']))) {
248
+ issues.push(`admin.metaBoxes[${index}].priority invalid`);
249
+ }
250
+ });
251
+ }
252
+ const widgets = admin['dashboardWidgets'];
253
+ if (Array.isArray(widgets)) {
254
+ widgets.forEach((entry, index) => {
255
+ if (isRecord(entry) && entry['render'] !== undefined && entry['render'] !== 'component') {
256
+ issues.push(`admin.dashboardWidgets[${index}].render invalid (expected "component")`);
257
+ }
258
+ });
259
+ }
260
+ const editors = admin['editors'];
261
+ if (Array.isArray(editors)) {
262
+ editors.forEach((entry, index) => {
263
+ if (!isRecord(entry))
264
+ return;
265
+ const screens = entry['screens'];
266
+ if (!Array.isArray(screens) || screens.length === 0 || !screens.every(isString)) {
267
+ issues.push(`admin.editors[${index}].screens must be a non-empty array of strings`);
268
+ }
269
+ if (entry['mode'] !== undefined && !['replace-body', 'below'].includes(String(entry['mode']))) {
270
+ issues.push(`admin.editors[${index}].mode invalid (expected "replace-body" or "below")`);
271
+ }
272
+ if (entry['priority'] !== undefined && !(typeof entry['priority'] === 'number')) {
273
+ issues.push(`admin.editors[${index}].priority must be a number`);
274
+ }
275
+ });
276
+ }
277
+ }
278
+ }
279
+ return issues;
280
+ }
20
281
  async function readJson(dir, file) {
21
282
  try {
22
283
  const raw = await readFile(join(dir, file), 'utf8');
@@ -28,11 +289,11 @@ async function readJson(dir, file) {
28
289
  }
29
290
  }
30
291
  /**
31
- * Lê o manifesto de um diretório de plugin com precedência única.
292
+ * Reads a plugin directory's manifest with a single precedence rule.
32
293
  *
33
- * @param dir diretório do plugin
294
+ * @param dir the plugin directory
34
295
  * @param options.strict exige `main` e valida `type === 'plugin'` quando
35
- * declarado (usado por sync/instalação/CLI)
296
+ * declared (used by sync/install/CLI)
36
297
  */
37
298
  export async function readPluginManifest(dir, options = {}) {
38
299
  const canonical = await readJson(dir, 'manifest.json');
@@ -51,12 +312,24 @@ export async function readPluginManifest(dir, options = {}) {
51
312
  issues.push('manifest sem "version"');
52
313
  const type = merged['type'];
53
314
  if (type !== undefined && type !== 'plugin') {
54
- issues.push(`type "${String(type)}" não é "plugin"`);
315
+ issues.push(`type "${String(type)}" is not "plugin"`);
55
316
  }
56
317
  const main = merged['main'];
57
318
  if (options.strict && typeof main !== 'string') {
58
319
  issues.push('manifest sem "main" (entrypoint)');
59
320
  }
321
+ // v2 schema fields: in strict mode (sync/install) they block; in the
322
+ // loader (runtime) they only warn — a plugin with a malformed v2 field
323
+ // must not prevent the other plugins from booting.
324
+ const v2Issues = validateManifestV2(merged);
325
+ if (options.strict) {
326
+ issues.push(...v2Issues);
327
+ }
328
+ else {
329
+ for (const issue of v2Issues) {
330
+ console.warn(`[manifest] ${merged['name'] ?? '?'}: ${issue}`);
331
+ }
332
+ }
60
333
  if (issues.length > 0) {
61
334
  return { manifest: null, source, issues };
62
335
  }
@@ -67,8 +340,8 @@ export async function readPluginManifest(dir, options = {}) {
67
340
  };
68
341
  }
69
342
  /**
70
- * Normaliza o manifesto para gravação no banco (mantém só campos conhecidos,
71
- * preservando campos extras legítimos do autor).
343
+ * Normalizes the manifest for database storage (keeps only known fields,
344
+ * preserving the author's legitimate extra fields).
72
345
  */
73
346
  export function normalizePluginManifest(manifest) {
74
347
  return manifest;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,kDAAkD;AAClD,oEAAoE;AACpE,sDAAsD;AACtD,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AAEzE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAY;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,UAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEhD,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,oCAAoC,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,MAAM,MAAM,GAAmB,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,MAAM,GAA4B,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;IAEjF,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAmC;QAC7C,MAAM;QACN,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAwB;IAC9D,OAAO,QAA8C,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}