@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 +55 -11
- package/dist/index.js.map +1 -1
- package/dist/rendering.d.ts +25 -17
- package/dist/rendering.d.ts.map +1 -1
- package/dist/rendering.js +139 -71
- package/dist/rendering.js.map +1 -1
- package/package.json +6 -6
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,
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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:
|
|
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
|
-
|
|
86
|
-
|
|
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":";AACA,0CAA0C;AAC1C,2CAA2C;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/rendering.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
17
|
-
*
|
|
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
|
|
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
|
|
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
|
package/dist/rendering.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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
|
|
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="
|
|
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
|
-
|
|
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="
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
|
|
233
|
-
|
|
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
|
-
|
|
335
|
-
|
|
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
|
}
|
package/dist/rendering.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
21
|
+
"@oktis-works/core": "^0.5.10",
|
|
22
22
|
"@oktis-works/config": "^0.5.5",
|
|
23
|
-
"@oktis-works/database": "^0.5.
|
|
23
|
+
"@oktis-works/database": "^0.5.6",
|
|
24
24
|
"@oktis-works/types": "^0.5.5",
|
|
25
|
-
"@oktis-works/theme-sdk": "^0.
|
|
26
|
-
"@oktis-works/theme-runtime": "^0.
|
|
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.
|
|
29
|
+
"@oktis-works/plugin-runtime": "^0.5.7"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"typescript": "5.7.3",
|