@oktis-works/api 0.11.0 → 0.13.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.
Files changed (46) hide show
  1. package/dist/index.js +14 -1
  2. package/dist/index.js.map +1 -1
  3. package/dist/middleware/rate-limit.d.ts +8 -0
  4. package/dist/middleware/rate-limit.d.ts.map +1 -1
  5. package/dist/middleware/rate-limit.js +23 -0
  6. package/dist/middleware/rate-limit.js.map +1 -1
  7. package/dist/routes/blocks/catalog.d.ts +14 -0
  8. package/dist/routes/blocks/catalog.d.ts.map +1 -0
  9. package/dist/routes/blocks/catalog.js +32 -0
  10. package/dist/routes/blocks/catalog.js.map +1 -0
  11. package/dist/routes/blocks/index.d.ts +4 -0
  12. package/dist/routes/blocks/index.d.ts.map +1 -0
  13. package/dist/routes/blocks/index.js +54 -0
  14. package/dist/routes/blocks/index.js.map +1 -0
  15. package/dist/routes/comments/index.d.ts +4 -0
  16. package/dist/routes/comments/index.d.ts.map +1 -0
  17. package/dist/routes/comments/index.js +157 -0
  18. package/dist/routes/comments/index.js.map +1 -0
  19. package/dist/routes/field-groups/index.d.ts.map +1 -1
  20. package/dist/routes/field-groups/index.js +6 -3
  21. package/dist/routes/field-groups/index.js.map +1 -1
  22. package/dist/routes/field-types/index.d.ts.map +1 -1
  23. package/dist/routes/field-types/index.js +4 -0
  24. package/dist/routes/field-types/index.js.map +1 -1
  25. package/dist/routes/health/index.d.ts.map +1 -1
  26. package/dist/routes/health/index.js +42 -2
  27. package/dist/routes/health/index.js.map +1 -1
  28. package/dist/routes/patterns/catalog.d.ts +15 -0
  29. package/dist/routes/patterns/catalog.d.ts.map +1 -0
  30. package/dist/routes/patterns/catalog.js +33 -0
  31. package/dist/routes/patterns/catalog.js.map +1 -0
  32. package/dist/routes/patterns/index.d.ts +4 -0
  33. package/dist/routes/patterns/index.d.ts.map +1 -0
  34. package/dist/routes/patterns/index.js +54 -0
  35. package/dist/routes/patterns/index.js.map +1 -0
  36. package/dist/routes/plugins/extensions.d.ts +15 -0
  37. package/dist/routes/plugins/extensions.d.ts.map +1 -0
  38. package/dist/routes/plugins/extensions.js +196 -0
  39. package/dist/routes/plugins/extensions.js.map +1 -0
  40. package/dist/routes/plugins/index.d.ts.map +1 -1
  41. package/dist/routes/plugins/index.js +45 -1
  42. package/dist/routes/plugins/index.js.map +1 -1
  43. package/dist/routes/webhooks/index.d.ts.map +1 -1
  44. package/dist/routes/webhooks/index.js +46 -0
  45. package/dist/routes/webhooks/index.js.map +1 -1
  46. package/package.json +7 -7
@@ -1,11 +1,15 @@
1
1
  // @oktis-works/api - Field Types Catalog Routes
2
2
  import { Hono } from 'hono';
3
3
  import { listFieldTypes, listFieldTypesByCategory, FIELD_TYPE_CATEGORIES } from '@oktis-works/core';
4
+ import { fieldTypeExtensionService } from '@oktis-works/core';
4
5
  import { authMiddleware, requirePermission } from '../../middleware/auth.js';
5
6
  const router = new Hono();
6
7
  router.use('*', authMiddleware);
7
8
  router.get('/', requirePermission('read', 'content'), async (c) => {
8
9
  const category = c.req.query('category');
10
+ const _tenantId = c.get('tenantId');
11
+ // Item 25: o endpoint é o "primeiro uso" — tipos lazy sincopram aqui.
12
+ await fieldTypeExtensionService.syncToRegistry({ includeLazy: true });
9
13
  if (category) {
10
14
  const grouped = listFieldTypesByCategory();
11
15
  const key = category;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/field-types/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAE1B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AAEhC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAgC,CAAC;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,UAAU,EAAE,qBAAqB;QACjC,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/field-types/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAE1B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AAEhC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAW,CAAC;IAE9C,sEAAsE;IACtE,MAAM,yBAAyB,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAgC,CAAC;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,UAAU,EAAE,qBAAqB;QACjC,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/health/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,QAAA,MAAM,YAAY,4EAAa,CAAC;AAmChC,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/health/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,QAAA,MAAM,YAAY,4EAAa,CAAC;AAuFhC,eAAe,YAAY,CAAC"}
@@ -1,18 +1,58 @@
1
1
  // @oktis-works/api - Health Check Route
2
+ //
3
+ // Item 14: plugin health checks (api.health.register, permission
4
+ // health:register) run aggregated here with a 2s budget each — failure,
5
+ // throw or timeout is reported as 'error' and never breaks the endpoint.
2
6
  import { Hono } from 'hono';
3
7
  import { healthCheck } from '@oktis-works/database';
8
+ import { getPluginHealthChecks } from '@oktis-works/core';
4
9
  const healthRouter = new Hono();
10
+ const PLUGIN_CHECK_TIMEOUT_MS = 2000;
11
+ /** Runs one plugin check with a hard timeout; never throws. */
12
+ async function runPluginCheck(pluginName, name, check) {
13
+ const key = `${pluginName}:${name}`;
14
+ const timeout = new Promise((resolve) => setTimeout(() => resolve([key, { status: 'error', error: `timeout after ${PLUGIN_CHECK_TIMEOUT_MS}ms` }]), PLUGIN_CHECK_TIMEOUT_MS));
15
+ const run = (async () => {
16
+ try {
17
+ const result = (await check());
18
+ return [key, { status: result?.ok ? 'ok' : 'error', details: result?.details }];
19
+ }
20
+ catch (error) {
21
+ return [key, { status: 'error', error: error instanceof Error ? error.message : String(error) }];
22
+ }
23
+ })();
24
+ timeout.unref?.();
25
+ return Promise.race([run, timeout]);
26
+ }
27
+ /** Aggregates every registered plugin check (platform scope). */
28
+ async function runAllPluginChecks() {
29
+ const outcomes = {};
30
+ try {
31
+ const entries = await getPluginHealthChecks(null);
32
+ const results = await Promise.all(entries.flatMap((entry) => entry.checks.map((registered) => runPluginCheck(entry.pluginName, registered.name, registered.check))));
33
+ for (const [key, outcome] of results) {
34
+ outcomes[key] = outcome;
35
+ }
36
+ }
37
+ catch {
38
+ // runtime unavailable — health stays database-only
39
+ }
40
+ return outcomes;
41
+ }
5
42
  // GET /health
6
43
  healthRouter.get('/', async (c) => {
7
44
  const dbHealthy = await healthCheck();
8
- const status = dbHealthy ? 'healthy' : 'degraded';
9
- const statusCode = dbHealthy ? 200 : 503;
45
+ const pluginChecks = await runAllPluginChecks();
46
+ const pluginsHealthy = Object.values(pluginChecks).every((outcome) => outcome.status === 'ok');
47
+ const status = dbHealthy && pluginsHealthy ? 'healthy' : 'degraded';
48
+ const statusCode = dbHealthy && pluginsHealthy ? 200 : 503;
10
49
  return c.json({
11
50
  status,
12
51
  timestamp: new Date().toISOString(),
13
52
  uptime: process.uptime(),
14
53
  checks: {
15
54
  database: dbHealthy ? 'ok' : 'error',
55
+ plugins: pluginChecks,
16
56
  },
17
57
  }, statusCode);
18
58
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/health/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;AAEhC,cAAc;AACd,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;IACzC,MAAM,SAAS,GAAG,MAAM,WAAW,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEzC,OAAO,CAAC,CAAC,IAAI,CAAC;QACZ,MAAM;QACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QACxB,MAAM,EAAE;YACN,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;SACrC;KACF,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;IAC9C,MAAM,SAAS,GAAG,MAAM,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAU,EAAE,EAAE;IAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/health/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { PluginPatternManifest } from '@oktis-works/types';
2
+ export interface PatternCatalogEntry extends PluginPatternManifest {
3
+ pluginName: string;
4
+ source: 'manifest' | 'runtime';
5
+ }
6
+ /** `hero-section` → `my-plugin/hero-section`; an already-namespaced `ns/name` stays untouched. */
7
+ export declare function namespacePatternName(pluginName: string, name: string): string;
8
+ /**
9
+ * Adds one plugin's patterns to the catalog with namespacing and dedupe by
10
+ * namespaced name (malformed entries are dropped — the endpoint never
11
+ * breaks). Call manifest sources first so static declarations win over
12
+ * runtime ones.
13
+ */
14
+ export declare function addPluginPatterns(target: PatternCatalogEntry[], patterns: readonly PluginPatternManifest[] | undefined | null, pluginName: string, source: 'manifest' | 'runtime'): void;
15
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/routes/patterns/catalog.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;CAC/B;AAED,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAAE,EAC7B,QAAQ,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,GAAG,IAAI,EAC7D,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,IAAI,CASN"}
@@ -0,0 +1,33 @@
1
+ // @oktis-works/api - Editor pattern catalog helpers (GET /api/v1/patterns)
2
+ //
3
+ // WordPress-parity item 13 (E4): the pattern catalog is an editor-agnostic
4
+ // data plane with no table — it merges `manifest.patterns` (static
5
+ // declarations of active plugins) with `api.registerPattern` runtime
6
+ // registrations, which only exist while the plugin is loaded. Names are
7
+ // namespaced like WordPress patterns (`namespace/name`): a bare name gets
8
+ // the plugin name as its namespace, so two plugins never collide.
9
+ /** `hero-section` → `my-plugin/hero-section`; an already-namespaced `ns/name` stays untouched. */
10
+ export function namespacePatternName(pluginName, name) {
11
+ return name.includes('/') ? name : `${pluginName}/${name}`;
12
+ }
13
+ /**
14
+ * Adds one plugin's patterns to the catalog with namespacing and dedupe by
15
+ * namespaced name (malformed entries are dropped — the endpoint never
16
+ * breaks). Call manifest sources first so static declarations win over
17
+ * runtime ones.
18
+ */
19
+ export function addPluginPatterns(target, patterns, pluginName, source) {
20
+ for (const pattern of patterns ?? []) {
21
+ if (!pattern || typeof pattern.name !== 'string' || pattern.name.length === 0)
22
+ continue;
23
+ if (typeof pattern.label !== 'string' || pattern.label.length === 0)
24
+ continue;
25
+ if (typeof pattern.content !== 'string' || pattern.content.length === 0)
26
+ continue;
27
+ const name = namespacePatternName(pluginName, pattern.name);
28
+ if (target.some((existing) => existing.name === name))
29
+ continue;
30
+ target.push({ ...pattern, name, pluginName, source });
31
+ }
32
+ }
33
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/routes/patterns/catalog.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,qEAAqE;AACrE,wEAAwE;AACxE,0EAA0E;AAC1E,kEAAkE;AASlE,kGAAkG;AAClG,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,IAAY;IACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA6B,EAC7B,QAA6D,EAC7D,UAAkB,EAClB,MAA8B;IAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACvF,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAC7E,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACjF,MAAM,IAAI,GAAG,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAQ;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Hono } from 'hono';
2
+ declare const patterns: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
3
+ export default patterns;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/patterns/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAO3B,QAAA,MAAM,QAAQ,4EAAa,CAAA;AA4C3B,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,54 @@
1
+ // @oktis-works/api - Editor pattern catalog route (GET /api/v1/patterns)
2
+ //
3
+ // WordPress-parity item 13 (E4) — editor-agnostic data plane endpoint:
4
+ // merges `manifest.patterns` from active plugins with runtime
5
+ // `api.registerPattern` registrations (platform + tenant scopes). No table:
6
+ // entries exist while the plugin is active. RBAC: reading the catalog
7
+ // requires `read content` (same gate as the block catalog).
8
+ import { Hono } from 'hono';
9
+ import { pluginService, ensureTenantPluginsLoaded, getPluginPatterns } from '@oktis-works/core';
10
+ import { authMiddleware, requirePermission } from '../../middleware/auth.js';
11
+ import { isPluginActive } from '../plugins/extensions.js';
12
+ import { addPluginPatterns } from './catalog.js';
13
+ const patterns = new Hono();
14
+ patterns.use('*', authMiddleware);
15
+ // GET /patterns — pattern catalog for the editor (manifest + runtime, no table)
16
+ patterns.get('/', requirePermission('read', 'content'), async (c) => {
17
+ try {
18
+ const userRoles = c.get('userRoles');
19
+ const sessionTenant = c.get('tenantId');
20
+ const tenantId = userRoles.includes('SUPER_ADMIN') ? c.req.query('tenantId') ?? sessionTenant : sessionTenant;
21
+ const catalog = [];
22
+ const rows = await pluginService.list(tenantId);
23
+ for (const row of rows) {
24
+ if (!isPluginActive(row.status))
25
+ continue;
26
+ addPluginPatterns(catalog, row.manifest?.patterns, row.name, 'manifest');
27
+ }
28
+ // Runtime registrations — best-effort: keep serving the manifest when the
29
+ // runtime is unavailable (mirrors GET /plugins/extensions).
30
+ if (tenantId) {
31
+ try {
32
+ await ensureTenantPluginsLoaded(tenantId);
33
+ }
34
+ catch {
35
+ // runtime unavailable — manifest-only catalog
36
+ }
37
+ }
38
+ for (const entry of await getPluginPatterns(null)) {
39
+ addPluginPatterns(catalog, entry.patterns, entry.pluginName, 'runtime');
40
+ }
41
+ if (tenantId) {
42
+ for (const entry of await getPluginPatterns(tenantId)) {
43
+ addPluginPatterns(catalog, entry.patterns, entry.pluginName, 'runtime');
44
+ }
45
+ }
46
+ return c.json({ patterns: catalog });
47
+ }
48
+ catch (error) {
49
+ const message = error instanceof Error ? error.message : 'Failed to collect pattern catalog';
50
+ return c.json({ error: message }, 500);
51
+ }
52
+ });
53
+ export default patterns;
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/patterns/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,uEAAuE;AACvE,8DAA8D;AAC9D,4EAA4E;AAC5E,sEAAsE;AACtE,4DAA4D;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,cAAc,CAAA;AAE1E,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;AAE3B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;AAEjC,gFAAgF;AAChF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAA;QAE7G,MAAM,OAAO,GAA0B,EAAE,CAAA;QAEzC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACzC,iBAAiB,CAAC,OAAO,EAAG,GAAG,CAAC,QAA8C,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACjH,CAAC;QAED,0EAA0E;QAC1E,4DAA4D;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAA;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,KAAK,IAAI,MAAM,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAA;QAC5F,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { AdminExtensionsState, PluginManifestAdmin } from '@oktis-works/types';
2
+ /** Statuses where the plugin actually runs (bootstrap enabledStatuses). */
3
+ export declare function isPluginActive(status: string | undefined | null): boolean;
4
+ export declare function emptyAdminExtensionsState(): AdminExtensionsState;
5
+ /**
6
+ * Converts the manifest `admin` block (flat columns/notices/editors form)
7
+ * into the endpoint state format. Namespacing/dedupe happen in the merge.
8
+ */
9
+ export declare function manifestAdminAsState(decl: PluginManifestAdmin): AdminExtensionsState;
10
+ /**
11
+ * Merges ONE plugin's state (normalized manifest or runtime) into the
12
+ * aggregated state, applying namespacing and dedupe by id/slug/key.
13
+ */
14
+ export declare function mergePluginAdminState(target: AdminExtensionsState, source: AdminExtensionsState, pluginName: string): void;
15
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/routes/plugins/extensions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEnF,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEzE;AAED,wBAAgB,yBAAyB,IAAI,oBAAoB,CAYhE;AAgBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,oBAAoB,CAoEpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CA4E1H"}
@@ -0,0 +1,196 @@
1
+ // @oktis-works/api - Admin UI extension state (FEAT-098 / DECI-027)
2
+ //
3
+ // `GET /plugins/extensions` merges two sources into a single AdminExtensionsState:
4
+ // 1. `manifest.admin` — static declarations persisted in plugins.manifest;
5
+ // 2. `api.admin.*` — runtime registrations from the plugin bootstrap
6
+ // (platform + tenant scopes).
7
+ //
8
+ // Namespacing: ids/slugs/componentIds get the plugin prefix (`plugin/`,
9
+ // `plugin:`) when the author does not provide one — two plugins never collide
10
+ // in a slot. Manifest validation (plugin-runtime/manifest.ts) requires
11
+ // capability on menus; the same rules are re-applied defensively here (the
12
+ // endpoint must never break on malformed rows coming from the database).
13
+ /** Statuses where the plugin actually runs (bootstrap enabledStatuses). */
14
+ export function isPluginActive(status) {
15
+ return status === 'ACTIVATED' || status === 'RUNNING';
16
+ }
17
+ export function emptyAdminExtensionsState() {
18
+ return {
19
+ menuPages: [],
20
+ submenuPages: [],
21
+ dashboardWidgets: [],
22
+ metaBoxes: [],
23
+ notices: [],
24
+ columns: {},
25
+ columnRenderers: {},
26
+ actionLinks: [],
27
+ editors: [],
28
+ };
29
+ }
30
+ /** `plugin:Component` or full paths (`@/...`, `.../x.tsx`) stay untouched. */
31
+ function componentIdFor(slug, componentId) {
32
+ if (componentId.startsWith('@') || componentId.includes('/'))
33
+ return componentId;
34
+ return componentId.includes(':') ? componentId : `${slug}:${componentId}`;
35
+ }
36
+ function idFor(slug, id) {
37
+ return id.includes(':') ? id : `${slug}:${id}`;
38
+ }
39
+ function menuSlugFor(slug, value) {
40
+ return value.startsWith(`${slug}/`) ? value : `${slug}/${value}`;
41
+ }
42
+ /**
43
+ * Converts the manifest `admin` block (flat columns/notices/editors form)
44
+ * into the endpoint state format. Namespacing/dedupe happen in the merge.
45
+ */
46
+ export function manifestAdminAsState(decl) {
47
+ const state = emptyAdminExtensionsState();
48
+ state.menuPages = (decl.menuPages ?? []).filter((page) => typeof page?.slug === 'string' && typeof page?.label === 'string' && typeof page?.capability === 'string' && page.capability.length > 0);
49
+ state.submenuPages = (decl.submenuPages ?? []).filter((page) => typeof page?.slug === 'string' &&
50
+ typeof page?.label === 'string' &&
51
+ typeof page?.parentSlug === 'string' &&
52
+ typeof page?.capability === 'string' &&
53
+ page.capability.length > 0);
54
+ state.dashboardWidgets = (decl.dashboardWidgets ?? [])
55
+ .filter((widget) => typeof widget?.id === 'string' && typeof widget?.title === 'string' && typeof widget?.componentId === 'string')
56
+ .map((widget) => ({ ...widget, render: 'component' }));
57
+ state.metaBoxes = (decl.metaBoxes ?? [])
58
+ .filter((box) => typeof box?.id === 'string' &&
59
+ typeof box?.title === 'string' &&
60
+ typeof box?.componentId === 'string' &&
61
+ Array.isArray(box.screens) &&
62
+ box.screens.length > 0)
63
+ .map((box) => ({
64
+ ...box,
65
+ context: box.context ?? 'normal',
66
+ priority: box.priority ?? 'default',
67
+ }));
68
+ state.notices = (decl.notices ?? [])
69
+ .filter((notice) => typeof notice?.message === 'string')
70
+ .map((notice, index) => ({
71
+ level: notice.level ?? 'info',
72
+ message: notice.message,
73
+ dismissible: notice.dismissible,
74
+ id: notice.id ?? `m${index}`,
75
+ }));
76
+ state.editors = (decl.editors ?? []).filter((editor) => typeof editor?.id === 'string' &&
77
+ typeof editor?.componentId === 'string' &&
78
+ Array.isArray(editor.screens) &&
79
+ editor.screens.length > 0 &&
80
+ (editor.mode === 'replace-body' || editor.mode === 'below'));
81
+ for (const column of decl.columns ?? []) {
82
+ if (typeof column?.contentType !== 'string' || typeof column?.key !== 'string' || typeof column?.label !== 'string')
83
+ continue;
84
+ const list = state.columns[column.contentType] ?? [];
85
+ if (!list.some((existing) => existing.key === column.key)) {
86
+ list.push({ key: column.key, label: column.label, position: column.position });
87
+ state.columns[column.contentType] = list;
88
+ }
89
+ }
90
+ for (const renderer of decl.columnRenderers ?? []) {
91
+ if (typeof renderer?.contentType !== 'string' || typeof renderer?.key !== 'string' || typeof renderer?.componentId !== 'string')
92
+ continue;
93
+ state.columnRenderers[renderer.contentType] = {
94
+ ...(state.columnRenderers[renderer.contentType] ?? {}),
95
+ [renderer.key]: renderer.componentId,
96
+ };
97
+ }
98
+ state.actionLinks = (decl.actionLinks ?? []).filter((link) => typeof link?.label === 'string' && typeof link?.url === 'string');
99
+ return state;
100
+ }
101
+ /**
102
+ * Merges ONE plugin's state (normalized manifest or runtime) into the
103
+ * aggregated state, applying namespacing and dedupe by id/slug/key.
104
+ */
105
+ export function mergePluginAdminState(target, source, pluginName) {
106
+ const slug = pluginName;
107
+ for (const page of source.menuPages) {
108
+ if (!page?.capability)
109
+ continue;
110
+ const prefixed = menuSlugFor(slug, page.slug);
111
+ if (!target.menuPages.some((existing) => existing.slug === prefixed)) {
112
+ target.menuPages.push({ ...page, slug: prefixed });
113
+ }
114
+ }
115
+ for (const page of source.submenuPages) {
116
+ if (!page?.capability)
117
+ continue;
118
+ const parentSlug = menuSlugFor(slug, page.parentSlug);
119
+ const prefixed = menuSlugFor(slug, page.slug);
120
+ if (!target.submenuPages.some((existing) => existing.slug === prefixed)) {
121
+ target.submenuPages.push({ ...page, parentSlug, slug: prefixed });
122
+ }
123
+ }
124
+ for (const widget of source.dashboardWidgets) {
125
+ if (!widget?.id || !widget?.title || !widget?.componentId)
126
+ continue;
127
+ const id = idFor(slug, widget.id);
128
+ if (target.dashboardWidgets.some((existing) => existing.id === id))
129
+ continue;
130
+ target.dashboardWidgets.push({
131
+ ...widget,
132
+ id,
133
+ render: 'component',
134
+ componentId: componentIdFor(slug, widget.componentId),
135
+ });
136
+ }
137
+ for (const box of source.metaBoxes) {
138
+ if (!box?.id || !box?.title || !box?.componentId || !Array.isArray(box.screens) || box.screens.length === 0)
139
+ continue;
140
+ const id = idFor(slug, box.id);
141
+ if (target.metaBoxes.some((existing) => existing.id === id))
142
+ continue;
143
+ target.metaBoxes.push({
144
+ ...box,
145
+ id,
146
+ context: box.context ?? 'normal',
147
+ priority: box.priority ?? 'default',
148
+ componentId: componentIdFor(slug, box.componentId),
149
+ });
150
+ }
151
+ for (const notice of source.notices) {
152
+ if (!notice?.message || !notice?.id)
153
+ continue;
154
+ const id = idFor(slug, notice.id);
155
+ if (target.notices.some((existing) => existing.id === id))
156
+ continue;
157
+ target.notices.push({ ...notice, id });
158
+ }
159
+ for (const editor of source.editors ?? []) {
160
+ if (!editor?.id || !editor?.componentId || !Array.isArray(editor.screens) || editor.screens.length === 0)
161
+ continue;
162
+ if (editor.mode !== 'replace-body' && editor.mode !== 'below')
163
+ continue;
164
+ const id = idFor(slug, editor.id);
165
+ if (target.editors.some((existing) => existing.id === id))
166
+ continue;
167
+ target.editors.push({ ...editor, id, componentId: componentIdFor(slug, editor.componentId) });
168
+ }
169
+ for (const [contentType, columns] of Object.entries(source.columns ?? {})) {
170
+ const list = target.columns[contentType] ?? [];
171
+ for (const column of columns) {
172
+ if (!column?.key || !column?.label)
173
+ continue;
174
+ if (!list.some((existing) => existing.key === column.key))
175
+ list.push(column);
176
+ }
177
+ target.columns[contentType] = list;
178
+ }
179
+ for (const [contentType, renderers] of Object.entries(source.columnRenderers ?? {})) {
180
+ const merged = { ...(target.columnRenderers[contentType] ?? {}) };
181
+ for (const [key, componentId] of Object.entries(renderers)) {
182
+ if (!componentId)
183
+ continue;
184
+ merged[key] = componentIdFor(slug, componentId);
185
+ }
186
+ target.columnRenderers[contentType] = merged;
187
+ }
188
+ for (const link of source.actionLinks ?? []) {
189
+ if (!link?.label || !link?.url)
190
+ continue;
191
+ if (!target.actionLinks.some((existing) => existing.url === link.url && existing.label === link.label)) {
192
+ target.actionLinks.push(link);
193
+ }
194
+ }
195
+ }
196
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/routes/plugins/extensions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/plugins/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,QAAA,MAAM,OAAO,4EAAa,CAAA;AAoK1B,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/plugins/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAO3B,QAAA,MAAM,OAAO,4EAAa,CAAA;AAgN1B,eAAe,OAAO,CAAA"}
@@ -6,9 +6,10 @@
6
6
  // - Só SUPER_ADMIN instala/ativa/desativa/desinstala; TENANT_ADMIN só lê
7
7
  // - Operações de vínculo correm em runWithTenantTransaction(tenantId) p/ RLS
8
8
  import { Hono } from 'hono';
9
- import { pluginService, syncEnabledPlugins, ensureTenantPluginsLoaded, getPluginsRuntimeState } from '@oktis-works/core';
9
+ import { pluginService, syncEnabledPlugins, ensureTenantPluginsLoaded, getPluginsRuntimeState, getPluginAdminExtensions } from '@oktis-works/core';
10
10
  import { authMiddleware, requirePermission } from '../../middleware/auth.js';
11
11
  import { runWithTenantTransaction } from '@oktis-works/database';
12
+ import { emptyAdminExtensionsState, isPluginActive, manifestAdminAsState, mergePluginAdminState } from './extensions.js';
12
13
  const plugins = new Hono();
13
14
  plugins.use('*', authMiddleware);
14
15
  // GET /plugins — lista artefatos com flag `enabled` do tenant da sessão
@@ -37,6 +38,49 @@ plugins.get('/runtime', requirePermission('read', 'plugin'), async (c) => {
37
38
  return c.json({ error: message }, 500);
38
39
  }
39
40
  });
41
+ // GET /plugins/extensions — estado declarativo agregado dos slots de admin
42
+ // (FEAT-098 / DECI-027): manifest.admin (ativo para o tenant) + api.admin.*
43
+ // registrado em runtime (escopo platform + tenant). O admin renderiza os slots
44
+ // a partir deste payload; capability gating de menu acontece no cliente.
45
+ plugins.get('/extensions', requirePermission('read', 'plugin'), async (c) => {
46
+ try {
47
+ const userRoles = c.get('userRoles');
48
+ const sessionTenant = c.get('tenantId');
49
+ const tenantId = userRoles.includes('SUPER_ADMIN') ? c.req.query('tenantId') ?? sessionTenant : sessionTenant;
50
+ const state = emptyAdminExtensionsState();
51
+ const rows = await pluginService.list(tenantId);
52
+ for (const row of rows) {
53
+ if (!isPluginActive(row.status))
54
+ continue;
55
+ const adminDecl = row.manifest?.admin;
56
+ if (adminDecl)
57
+ mergePluginAdminState(state, manifestAdminAsState(adminDecl), row.name);
58
+ }
59
+ // Runtime (api.admin.*): best-effort — garante o escopo do tenant carregado;
60
+ // falha não derruba o endpoint (o manifesto segue válido sozinho).
61
+ if (tenantId) {
62
+ try {
63
+ await ensureTenantPluginsLoaded(tenantId);
64
+ }
65
+ catch {
66
+ // runtime indisponível — segue só com o manifesto
67
+ }
68
+ }
69
+ for (const entry of await getPluginAdminExtensions(null)) {
70
+ mergePluginAdminState(state, entry.state, entry.pluginName);
71
+ }
72
+ if (tenantId) {
73
+ for (const entry of await getPluginAdminExtensions(tenantId)) {
74
+ mergePluginAdminState(state, entry.state, entry.pluginName);
75
+ }
76
+ }
77
+ return c.json(state);
78
+ }
79
+ catch (error) {
80
+ const message = error instanceof Error ? error.message : 'Failed to collect admin extensions';
81
+ return c.json({ error: message }, 500);
82
+ }
83
+ });
40
84
  // POST /plugins/:id/tenants/:tenantId — habilita plugin para um tenant (SUPER_ADMIN)
41
85
  plugins.post('/:id/tenants/:tenantId', requirePermission('update', 'plugin'), async (c) => {
42
86
  const userRoles = c.get('userRoles');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/plugins/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/plugins/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,QAAA,MAAM,MAAM,4EAAa,CAAC;AA6J1B,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/webhooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO5B,QAAA,MAAM,MAAM,4EAAa,CAAC;AA0M1B,eAAe,MAAM,CAAC"}