@oktis-works/web 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6,21 +6,47 @@ import { existsSync, readFileSync, statSync } from 'node:fs';
6
6
  import { join } from 'node:path';
7
7
  import { serve } from '@hono/node-server';
8
8
  import { bootstrap } from '@oktis-works/core';
9
+ import { resolveExtensionDirectory } from '@oktis-works/core';
9
10
  import { runWithTenantContext } from '@oktis-works/core';
10
11
  import { getConnection, runWithTenantTransaction } from '@oktis-works/database';
11
- import { createRouter, wireThemeHooks, renderContentPage, fetchSiteSettings, resolveThemeAssetPath, contentTypeForAsset, } from './rendering.js';
12
+ import { createRouter, wireThemeHooks, renderContentPage, toSiteSettings, resolveThemeAssetPath, contentTypeForAsset, enrichItemsMedia, buildThemeSettings, } from './rendering.js';
12
13
  import { createDatabaseThemeDataProvider, loadThemeRenderData } from './theme-data.js';
13
14
  import { resolveTenantFromHost } from './tenant-resolver.js';
14
15
  import { runWithThemeDataProvider, setCurrentContent } from '@oktis-works/theme-sdk';
15
16
  function bodyOf(row) {
16
17
  return (row['body'] ?? {});
17
18
  }
19
+ /**
20
+ * Tema ativo efetivo: a fonte única é o banco (status ACTIVE, gravado pelo
21
+ * admin ou pela CLI). Sem linha ativa — ou com o tema sem arquivos no disco —
22
+ * cai no ACTIVE_THEME do ambiente. Lido por request: ativação no admin não
23
+ * exige restart do web. A row completa volta junto (manifest + config do
24
+ * customizador) para expor `settings.theme` nos templates.
25
+ */
26
+ async function resolveActiveTheme(themesRoot, envFallback) {
27
+ try {
28
+ const rows = await getConnection().unsafe(`SELECT * FROM themes WHERE status = 'ACTIVE'
29
+ ORDER BY activated_at DESC NULLS LAST, created_at DESC
30
+ LIMIT 1`);
31
+ const row = rows[0];
32
+ const name = row?.['name'];
33
+ if (typeof name === 'string' && name && existsSync(join(themesRoot, name))) {
34
+ return { name, row: row ?? null };
35
+ }
36
+ }
37
+ catch {
38
+ // tabela ausente/falha de leitura nunca derruba o render — usa o env
39
+ }
40
+ return { name: envFallback, row: null };
41
+ }
18
42
  async function main() {
19
43
  const lifecycle = await bootstrap();
20
- wireThemeHooks();
21
- const themesRoot = process.env['THEMES_DIR'] ?? join(process.cwd(), 'themes');
22
- const activeTheme = process.env['ACTIVE_THEME'] ?? 'default';
23
- const router = createRouter(themesRoot, activeTheme);
44
+ await wireThemeHooks();
45
+ // Fonte ÚNICA de resolução do diretório de temas: a mesma função usada pela
46
+ // API/CLI (env → okcms.config.json → ./themes). Antes o web lia só
47
+ // THEMES_DIR com outro fallback — apps com cwd diferente divergiam.
48
+ const themesRoot = resolveExtensionDirectory('theme');
49
+ const envActiveTheme = process.env['ACTIVE_THEME']?.trim() || 'default';
24
50
  const app = new Hono();
25
51
  // Tenant resolution middleware (loopback → default; senão subdomain/domain)
26
52
  app.use('*', async (c, next) => {
@@ -74,19 +100,23 @@ async function main() {
74
100
  app.get('*', async (c) => {
75
101
  const path = c.req.path;
76
102
  try {
103
+ // Tema ativo por request (banco → env): ativação reflete sem restart.
104
+ const active = await resolveActiveTheme(themesRoot, envActiveTheme);
105
+ const activeTheme = active.name;
106
+ const router = createRouter(themesRoot, activeTheme);
77
107
  const resolution = await router.resolve(path);
78
108
  if (!resolution.matched) {
79
109
  return c.notFound();
80
110
  }
81
- // B1 — conteúdo real: row publicada do slug resolvido
111
+ // B1 — conteúdo real: payload já enriquecido pelo lookup (mídia real +
112
+ // _terms) — sem re-consultar a row crua.
82
113
  let contentRow = null;
83
114
  let data = {};
84
115
  if (resolution.slug && resolution.contentType) {
85
- const rows = await getConnection().unsafe("SELECT * FROM content WHERE slug = $1 AND type = $2 AND status = 'PUBLISHED' LIMIT 1", [resolution.slug, resolution.contentType]);
86
- contentRow = rows[0] ?? null;
116
+ contentRow = resolution.record ?? null;
117
+ data = resolution.data ?? {};
87
118
  if (contentRow) {
88
119
  setCurrentContent(contentRow);
89
- data = bodyOf(contentRow);
90
120
  }
91
121
  }
92
122
  // B1 — archives/home: itens publicados recentes do tipo resolvido
@@ -106,12 +136,26 @@ async function main() {
106
136
  published_at: row['published_at'],
107
137
  updated_at: row['updated_at'],
108
138
  })));
139
+ // REQU-028-001 em lote: cover/image dos itens viram objetos reais
140
+ try {
141
+ await enrichItemsMedia(getConnection(), items);
142
+ }
143
+ catch {
144
+ // enriquecimento de lista nunca derruba a renderização
145
+ }
109
146
  }
110
- // B1 — título/meta das settings (fim do "OkCMS" hardcoded)
111
- const settings = await fetchSiteSettings(getConnection());
112
147
  const provider = createDatabaseThemeDataProvider(getConnection(), String(c.get('tenant')['id']));
113
148
  const html = await runWithThemeDataProvider(provider, async () => {
114
149
  const themeData = await loadThemeRenderData(provider);
150
+ // B1 — título/meta das settings (fim do "OkCMS" hardcoded) + o config do
151
+ // customizador do tema ativo exposto como `settings.theme`. As settings
152
+ // vêm do provider do tema (mesma fonte/contrato das demais consultas,
153
+ // com filtro de tenant) — não de uma query ad-hoc sem tenant_id.
154
+ const rawSettings = await provider.getSettings().catch(() => ({}));
155
+ const settings = {
156
+ ...toSiteSettings(rawSettings),
157
+ theme: buildThemeSettings(active.row?.['manifest'], active.row?.['config']),
158
+ };
115
159
  return renderContentPage({
116
160
  resolution,
117
161
  contentRow,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { getConnection } from '@oktis-works/database';
2
2
  import { RuntimeRouter, ThemeRenderer, type ContentLookup, type TemplateFileChecker } from '@oktis-works/theme-runtime';
3
3
  import type { ThemeRenderData } from '@oktis-works/theme-sdk';
4
+ /** Adaptador do checker do TemplateHierarchyResolver sobre o resolver único. */
4
5
  export declare function createTemplateChecker(themesRoot: string, activeTheme: string): TemplateFileChecker;
5
6
  /**
6
7
  * B1 — carrega o ARQUIVO do template do tema ativo (fallback _shared → default).
@@ -10,14 +11,18 @@ export declare function loadTemplateSource(themesRoot: string, activeTheme: stri
10
11
  export interface SiteSettings {
11
12
  siteTitle: string;
12
13
  siteDescription: string;
14
+ /** Idioma do documento (setting `language`); fallback pt-BR. */
15
+ language: string;
13
16
  [key: string]: unknown;
14
17
  }
18
+ export declare function toSiteSettings(raw: Record<string, unknown>): SiteSettings;
19
+ export declare const themeRenderer: ThemeRenderer;
15
20
  /**
16
- * B1 — título/descrição do site vêm das settings (fim do "OkCMS" hardcoded).
17
- * Falha de leitura nunca derruba o render (fallbacks locais).
21
+ * Configurações do tema para os templates: defaults declarados em
22
+ * `manifest.settings` sobrescritos pelo `config` salvo na tela Temas do
23
+ * admin (exposto como `settings.theme` no contexto do template).
18
24
  */
19
- export declare function fetchSiteSettings(sql: ReturnType<typeof getConnection>): Promise<SiteSettings>;
20
- export declare const themeRenderer: ThemeRenderer;
25
+ export declare function buildThemeSettings(manifest: Record<string, unknown> | null | undefined, config: Record<string, unknown> | null | undefined): Record<string, unknown>;
21
26
  export interface ContentPageRenderInput {
22
27
  resolution: {
23
28
  template?: string;
@@ -43,12 +48,18 @@ export interface ContentPageRenderInput {
43
48
  * settings — settings cruas (avançado)
44
49
  */
45
50
  export declare function renderContentPage(input: ContentPageRenderInput): string;
51
+ /**
52
+ * Primeiro fornecedor real de `dist/theme.css` na cadeia (tema ativo →
53
+ * _shared → default). `null` quando ninguém compilou estilos — o documento
54
+ * sai sem <link> quebrado (nada de 404 silencioso no console).
55
+ */
56
+ export declare function resolveThemeStylesheet(themesRoot: string, activeTheme: string): string | null;
46
57
  /**
47
58
  * B1 — envolve o fragmento do template num documento completo com title/meta
48
- * das settings + CSS do tema. Template que já emite documento completo passa
49
- * intocado (temas headless/full-control).
59
+ * das settings + CSS do tema + injeções de plugins via hook `theme:head`.
60
+ * Template que já emite documento completo passa intocado (temas headless/full-control).
50
61
  */
51
- export declare function wrapDocument(body: string, pageTitle: string, settings: SiteSettings, activeTheme: string): string;
62
+ export declare function wrapDocument(body: string, pageTitle: string, settings: SiteSettings, activeTheme: string, stylesheetTheme?: string | null): string;
52
63
  export declare function escapeHtml(value: string): string;
53
64
  /**
54
65
  * B2 — resolução segura de asset do tema: `/themes/<tema>/<path>`.
@@ -57,19 +68,16 @@ export declare function escapeHtml(value: string): string;
57
68
  */
58
69
  export declare function resolveThemeAssetPath(themesRoot: string, themeName: string, assetPath: string): string | null;
59
70
  export declare function contentTypeForAsset(assetPath: string): string;
71
+ /**
72
+ * REQU-028-001 (listas): o mesmo enriquecimento para os itens de archive/home,
73
+ * com UMA query de mídia para todos os itens do lote.
74
+ */
75
+ export declare function enrichItemsMedia(sql: ReturnType<typeof getConnection>, items: Array<Record<string, unknown>>): Promise<void>;
60
76
  export declare function createContentLookup(): ContentLookup;
61
77
  export declare function createRouter(themesRoot: string, activeTheme: string): RuntimeRouter;
62
- /** Helper para web: obtém atributo de isolamento para template */
63
- export declare function getScopedContainer(themeName: string): string;
64
- /** Build pipeline do tema: compila SCSS ou Tailwind e retorna relatório */
65
- export declare function buildTheme(themeRoot: string, themeName: string, manifest: import('@oktis-works/theme-sdk').ThemeManifest): Promise<{
66
- css: string;
67
- report: import("@oktis-works/theme-runtime").ThemeStyleReport & {
68
- themePath: string;
69
- };
70
- }>;
71
78
  /**
72
79
  * Registra o hook registry no Theme SDK para habilitar os filtros theme:data:*.
80
+ * Awaited no boot do web — fire-and-forget deixava a janela inicial sem hooks.
73
81
  */
74
- export declare function wireThemeHooks(): void;
82
+ export declare function wireThemeHooks(): Promise<void>;
75
83
  //# sourceMappingURL=rendering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAEL,aAAa,EACb,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAGzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAMlG;AAWD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvG;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAepG;AASD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,kEAAkE;IAClE,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAoCvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,GAClB,MAAM,CAoBR;AAkCD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB7G;AAqBD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI7D;AAqFD,wBAAgB,mBAAmB,IAAI,aAAa,CAqCnD;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAGnF;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,2EAA2E;AAC3E,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,wBAAwB,EAAE,aAAa;;;;;GAE9H;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAOrC"}
1
+ {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"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"}
package/dist/rendering.js CHANGED
@@ -1,53 +1,41 @@
1
1
  // @oktis-works/web - Runtime Rendering (catch-all SSR com hierarquia de templates)
2
- import { existsSync, readFileSync, realpathSync } from 'node:fs';
2
+ import { existsSync, realpathSync } from 'node:fs';
3
3
  import { join, resolve, sep } from 'node:path';
4
4
  import { getConnection } from '@oktis-works/database';
5
5
  import { getHookRegistry } from '@oktis-works/plugin-runtime';
6
6
  import { postTypeRegistry, HOOK_POINTS } from '@oktis-works/core';
7
- import { TemplateHierarchyResolver, RuntimeRouter, ThemeRenderer, buildThemeStyles, getThemeScopeAttribute, } from '@oktis-works/theme-runtime';
7
+ import { TemplateHierarchyResolver, RuntimeRouter, ThemeRenderer, createProjectTemplateResolver, } from '@oktis-works/theme-runtime';
8
+ /**
9
+ * B1/Unificação (FEAT-095): a cadeia de templates do projeto
10
+ * (tema ativo → `_shared` → `default`), o saneamento dos nomes de tema e o
11
+ * guard contra traversal vivem **apenas** no `@oktis-works/theme-runtime` —
12
+ * este app só consome a fonte única, sem reimplementação local.
13
+ */
14
+ function projectTemplates(themesRoot, activeTheme) {
15
+ return createProjectTemplateResolver(themesRoot, activeTheme);
16
+ }
17
+ /** Adaptador do checker do TemplateHierarchyResolver sobre o resolver único. */
8
18
  export function createTemplateChecker(themesRoot, activeTheme) {
19
+ const resolver = projectTemplates(themesRoot, activeTheme);
9
20
  return {
10
21
  exists(file) {
11
- return templateCandidates(themesRoot, activeTheme, file).some((candidate) => existsSync(candidate));
22
+ return resolver.exists(file);
12
23
  },
13
24
  };
14
25
  }
15
- /** Cadeia de busca do arquivo de template: tema ativo → _shared → default. */
16
- function templateCandidates(themesRoot, activeTheme, file) {
17
- return [
18
- join(themesRoot, activeTheme, file),
19
- join(themesRoot, '_shared', file),
20
- join(themesRoot, 'default', file),
21
- ];
22
- }
23
26
  /**
24
27
  * B1 — carrega o ARQUIVO do template do tema ativo (fallback _shared → default).
25
28
  * Retorna null quando nenhum candidato existe (rota cai no 404 do tema).
26
29
  */
27
30
  export function loadTemplateSource(themesRoot, activeTheme, file) {
28
- for (const candidate of templateCandidates(themesRoot, activeTheme, file)) {
29
- if (existsSync(candidate)) {
30
- return readFileSync(candidate, 'utf-8');
31
- }
32
- }
33
- return null;
31
+ return projectTemplates(themesRoot, activeTheme).read(file);
34
32
  }
35
- /**
36
- * B1 — título/descrição do site vêm das settings (fim do "OkCMS" hardcoded).
37
- * Falha de leitura nunca derruba o render (fallbacks locais).
38
- */
39
- export async function fetchSiteSettings(sql) {
40
- try {
41
- const rows = await sql.unsafe("SELECT key, value FROM settings WHERE key IN ('siteTitle', 'siteDescription')");
42
- const byKey = new Map(rows.map((r) => [r.key, r.value]));
43
- return {
44
- siteTitle: toText(byKey.get('siteTitle')) || 'OkCMS',
45
- siteDescription: toText(byKey.get('siteDescription')) || '',
46
- };
47
- }
48
- catch {
49
- return { siteTitle: 'OkCMS', siteDescription: '' };
50
- }
33
+ export function toSiteSettings(raw) {
34
+ return {
35
+ siteTitle: toText(raw['siteTitle']) || 'OkCMS',
36
+ siteDescription: toText(raw['siteDescription']) || '',
37
+ language: toText(raw['language']) || 'pt-BR',
38
+ };
51
39
  }
52
40
  function toText(value) {
53
41
  if (value == null)
@@ -59,6 +47,30 @@ function toText(value) {
59
47
  return '';
60
48
  }
61
49
  export const themeRenderer = new ThemeRenderer();
50
+ /**
51
+ * Configurações do tema para os templates: defaults declarados em
52
+ * `manifest.settings` sobrescritos pelo `config` salvo na tela Temas do
53
+ * admin (exposto como `settings.theme` no contexto do template).
54
+ */
55
+ export function buildThemeSettings(manifest, config) {
56
+ const settings = {};
57
+ const declared = Array.isArray(manifest?.['settings']) ? manifest['settings'] : [];
58
+ for (const field of declared) {
59
+ if (!field || typeof field !== 'object')
60
+ continue;
61
+ const record = field;
62
+ const name = record['name'];
63
+ if (typeof name === 'string' && name) {
64
+ settings[name] = record['default'];
65
+ }
66
+ }
67
+ if (config && typeof config === 'object' && !Array.isArray(config)) {
68
+ for (const [key, value] of Object.entries(config)) {
69
+ settings[key] = value;
70
+ }
71
+ }
72
+ return settings;
73
+ }
62
74
  /**
63
75
  * B1 — render real: injeta `content.body`/campos no template do tema.
64
76
  * Contexto exposto ao template:
@@ -99,27 +111,48 @@ export function renderContentPage(input) {
99
111
  themeData: input.themeData ?? { menus: { all: [], bySlug: {} }, contentTypes: [], taxonomies: [], terms: {}, settings: input.settings },
100
112
  };
101
113
  const body = themeRenderer.renderString(template, context, row);
102
- return wrapDocument(body, title, input.settings, input.activeTheme);
114
+ const stylesheet = resolveThemeStylesheet(input.themesRoot, input.activeTheme);
115
+ return wrapDocument(body, title, input.settings, input.activeTheme, stylesheet);
116
+ }
117
+ /**
118
+ * Primeiro fornecedor real de `dist/theme.css` na cadeia (tema ativo →
119
+ * _shared → default). `null` quando ninguém compilou estilos — o documento
120
+ * sai sem <link> quebrado (nada de 404 silencioso no console).
121
+ */
122
+ export function resolveThemeStylesheet(themesRoot, activeTheme) {
123
+ for (const theme of [activeTheme, '_shared', 'default']) {
124
+ if (!theme)
125
+ continue;
126
+ if (existsSync(join(themesRoot, theme, 'dist', 'theme.css')))
127
+ return theme;
128
+ }
129
+ return null;
103
130
  }
104
131
  /**
105
132
  * B1 — envolve o fragmento do template num documento completo com title/meta
106
- * das settings + CSS do tema. Template que já emite documento completo passa
107
- * intocado (temas headless/full-control).
133
+ * das settings + CSS do tema + injeções de plugins via hook `theme:head`.
134
+ * Template que já emite documento completo passa intocado (temas headless/full-control).
108
135
  */
109
- export function wrapDocument(body, pageTitle, settings, activeTheme) {
136
+ export function wrapDocument(body, pageTitle, settings, activeTheme, stylesheetTheme = null) {
110
137
  if (body.includes('<html') || body.includes('<!DOCTYPE')) {
111
138
  return body;
112
139
  }
113
140
  const title = pageTitle && pageTitle !== settings.siteTitle ? `${pageTitle} | ${settings.siteTitle}` : settings.siteTitle;
141
+ const lang = escapeHtml(settings.language || 'pt-BR');
142
+ const stylesheet = stylesheetTheme
143
+ ? ` <link rel="stylesheet" href="/themes/${escapeHtml(stylesheetTheme)}/dist/theme.css" data-theme-style="${escapeHtml(stylesheetTheme)}" />\n`
144
+ : '';
145
+ // WP6: ponto de extensão theme:head — plugins injetam tags no <head>
146
+ const registry = getHookRegistry();
147
+ const headInjections = registry.applyFilters(HOOK_POINTS.THEME_HEAD, '', { settings, activeTheme });
114
148
  return `<!DOCTYPE html>
115
- <html lang="pt-BR">
149
+ <html lang="${lang}">
116
150
  <head>
117
151
  <meta charset="UTF-8">
118
152
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
119
153
  <title>${escapeHtml(title)}</title>
120
154
  <meta name="description" content="${escapeHtml(settings.siteDescription)}">
121
- <link rel="stylesheet" href="/themes/${escapeHtml(activeTheme)}/dist/theme.css" data-theme-style="${escapeHtml(activeTheme)}" />
122
- </head>
155
+ ${stylesheet}${headInjections}</head>
123
156
  <body>
124
157
  ${body}
125
158
  </body>
@@ -138,19 +171,35 @@ function plainColumns(row) {
138
171
  /** Tema sem template para a rota: HTML mínimo com os dados reais (nunca stub). */
139
172
  function renderFallbackPage(input) {
140
173
  const title = toText((input.contentRow ?? {})['title']) || input.settings.siteTitle;
174
+ const lang = escapeHtml(input.settings.language || 'pt-BR');
175
+ // WP6: ponto de extensão theme:head — plugins injetam tags no <head>
176
+ const registry = getHookRegistry();
177
+ const headInjections = registry.applyFilters(HOOK_POINTS.THEME_HEAD, '', { settings: input.settings, activeTheme: input.activeTheme });
141
178
  return `<!DOCTYPE html>
142
- <html lang="pt-BR">
179
+ <html lang="${lang}">
143
180
  <head>
144
181
  <meta charset="UTF-8">
145
182
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
146
183
  <title>${escapeHtml(title)} | ${escapeHtml(input.settings.siteTitle)}</title>
147
184
  <meta name="description" content="${escapeHtml(input.settings.siteDescription)}">
148
- </head>
185
+ <style>
186
+ body { font-family: system-ui, sans-serif; margin: 0; color: #111; }
187
+ main { max-width: 46rem; margin: 0 auto; padding: 3rem 1.5rem; }
188
+ .fallback__hint { color: #555; line-height: 1.5; }
189
+ details { margin-top: 2rem; }
190
+ summary { cursor: pointer; color: #555; }
191
+ pre { background: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 6px; padding: 1rem; overflow: auto; font-size: 0.85rem; }
192
+ </style>
193
+ ${headInjections}</head>
149
194
  <body>
150
195
  <main data-theme="${escapeHtml(input.activeTheme)}">
151
196
  <article>
152
197
  <h1>${escapeHtml(title)}</h1>
153
- <div class="entry__body">${escapeHtml(JSON.stringify(input.data))}</div>
198
+ <p class="fallback__hint">Este tema não possui template para esta rota — os dados reais do conteúdo estão abaixo.</p>
199
+ <details>
200
+ <summary>Dados (JSON)</summary>
201
+ <pre>${escapeHtml(JSON.stringify(input.data, null, 2))}</pre>
202
+ </details>
154
203
  </article>
155
204
  </main>
156
205
  </body>
@@ -228,21 +277,9 @@ function collectMediaIds(value, out, depth = 0) {
228
277
  }
229
278
  }
230
279
  }
231
- /**
232
- * REQU-028-001: substitui referências de mídia por objetos {id,url,alt} reais.
233
- * Uma única query batched — sem N+1.
234
- */
235
- async function enrichMedia(sql, data) {
236
- const ids = new Set();
237
- collectMediaIds(data, ids);
238
- if (ids.size === 0)
239
- return;
240
- const idList = [...ids];
241
- const rows = await sql.unsafe(`SELECT id, url, alt, filename FROM media WHERE id = ANY($1::uuid[])`, [idList]);
242
- const byId = new Map(rows.map((r) => [String(r['id']), { id: String(r['id']), url: String(r['url']), alt: r['alt'] ?? null, filename: r['filename'] ?? null }]));
243
- if (byId.size === 0)
244
- return;
245
- const replace = (value, keyHint, depth) => {
280
+ /** Constrói o rewriter que troca UUIDs por objetos de mídia real (REQU-028-001). */
281
+ function buildMediaReplacer(byId) {
282
+ return function replace(value, keyHint, depth) {
246
283
  if (value == null || depth > 6)
247
284
  return value;
248
285
  if (typeof value === 'string') {
@@ -260,10 +297,49 @@ async function enrichMedia(sql, data) {
260
297
  }
261
298
  return value;
262
299
  };
300
+ }
301
+ /** Uma única query de mídia para N payloads — sem N+1. */
302
+ async function fetchMediaById(sql, ids) {
303
+ if (ids.size === 0)
304
+ return new Map();
305
+ const rows = await sql.unsafe(`SELECT id, url, alt, filename FROM media WHERE id = ANY($1::uuid[])`, [[...ids]]);
306
+ return new Map(rows.map((r) => [String(r['id']), { id: String(r['id']), url: String(r['url']), alt: r['alt'] ?? null, filename: r['filename'] ?? null }]));
307
+ }
308
+ /**
309
+ * REQU-028-001: substitui referências de mídia por objetos {id,url,alt} reais.
310
+ * Uma única query batched — sem N+1.
311
+ */
312
+ async function enrichMedia(sql, data) {
313
+ const ids = new Set();
314
+ collectMediaIds(data, ids);
315
+ const byId = await fetchMediaById(sql, ids);
316
+ if (byId.size === 0)
317
+ return;
318
+ const replace = buildMediaReplacer(byId);
263
319
  for (const key of Object.keys(data)) {
264
320
  data[key] = replace(data[key], key, 0);
265
321
  }
266
322
  }
323
+ /**
324
+ * REQU-028-001 (listas): o mesmo enriquecimento para os itens de archive/home,
325
+ * com UMA query de mídia para todos os itens do lote.
326
+ */
327
+ export async function enrichItemsMedia(sql, items) {
328
+ if (items.length === 0)
329
+ return;
330
+ const ids = new Set();
331
+ for (const item of items)
332
+ collectMediaIds(item, ids);
333
+ const byId = await fetchMediaById(sql, ids);
334
+ if (byId.size === 0)
335
+ return;
336
+ const replace = buildMediaReplacer(byId);
337
+ for (const item of items) {
338
+ for (const key of Object.keys(item)) {
339
+ item[key] = replace(item[key], key, 0);
340
+ }
341
+ }
342
+ }
267
343
  /** REQU-028-003: injeta _terms agrupado por taxonomia no payload. */
268
344
  async function attachTerms(sql, contentId, data) {
269
345
  const rows = await sql.unsafe(`
@@ -304,6 +380,7 @@ export function createContentLookup() {
304
380
  slug: String(row['slug']),
305
381
  data,
306
382
  layout: row['layout'] ?? null,
383
+ record: row,
307
384
  };
308
385
  },
309
386
  async listTypes() {
@@ -318,22 +395,13 @@ export function createRouter(themesRoot, activeTheme) {
318
395
  const resolver = new TemplateHierarchyResolver(createTemplateChecker(themesRoot, activeTheme));
319
396
  return new RuntimeRouter(createContentLookup(), resolver);
320
397
  }
321
- /** Helper para web: obtém atributo de isolamento para template */
322
- export function getScopedContainer(themeName) {
323
- const { attr } = getThemeScopeAttribute(themeName);
324
- return attr;
325
- }
326
- /** Build pipeline do tema: compila SCSS ou Tailwind e retorna relatório */
327
- export async function buildTheme(themeRoot, themeName, manifest) {
328
- return buildThemeStyles({ themesRoot: themeRoot, themeName, manifest });
329
- }
330
398
  /**
331
399
  * Registra o hook registry no Theme SDK para habilitar os filtros theme:data:*.
400
+ * Awaited no boot do web — fire-and-forget deixava a janela inicial sem hooks.
332
401
  */
333
- export function wireThemeHooks() {
334
- void import('@oktis-works/theme-sdk').then((sdk) => {
335
- sdk.setThemeHooks(getHookRegistry());
336
- });
402
+ export async function wireThemeHooks() {
403
+ const sdk = await import('@oktis-works/theme-sdk');
404
+ sdk.setThemeHooks(getHookRegistry());
337
405
  // Ponto de extensão head: plugins podem injetar tags no <head> do site público.
338
406
  void HOOK_POINTS;
339
407
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oktis-works/web",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,15 +18,15 @@
18
18
  "clean": "rm -rf dist tsconfig.tsbuildinfo"
19
19
  },
20
20
  "dependencies": {
21
- "@oktis-works/core": "^0.5.5",
21
+ "@oktis-works/core": "^0.5.10",
22
22
  "@oktis-works/config": "^0.5.5",
23
- "@oktis-works/database": "^0.5.5",
23
+ "@oktis-works/database": "^0.5.6",
24
24
  "@oktis-works/types": "^0.5.5",
25
- "@oktis-works/theme-sdk": "^0.5.5",
26
- "@oktis-works/theme-runtime": "^0.5.5",
25
+ "@oktis-works/theme-sdk": "^0.6.0",
26
+ "@oktis-works/theme-runtime": "^0.6.0",
27
27
  "hono": "4.13.12",
28
28
  "@hono/node-server": "1.8.0",
29
- "@oktis-works/plugin-runtime": "^0.5.5"
29
+ "@oktis-works/plugin-runtime": "^0.5.7"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "5.7.3",