@gitpagedocs/cli 1.1.44

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 (66) hide show
  1. package/README.md +169 -0
  2. package/ai/application/ai-command.ts +24 -0
  3. package/ai/application/ai-provider-factory.ts +22 -0
  4. package/ai/application/run-ai-cli-command.ts +136 -0
  5. package/ai/config.ts +22 -0
  6. package/ai/core/models/ai-cli-config.ts +31 -0
  7. package/ai/core/ports/illm-provider.ts +32 -0
  8. package/ai/infrastructure/ai-config-file.ts +32 -0
  9. package/ai/infrastructure/file-system-adapter.ts +83 -0
  10. package/ai/infrastructure/llm/tools-llm-provider.ts +54 -0
  11. package/ai/presentation/ai-prompts.ts +239 -0
  12. package/application/config-only/handler.mjs +55 -0
  13. package/application/home/handler.mjs +83 -0
  14. package/application/ports/cli-runtime-ports.ts +87 -0
  15. package/application/report/config-only-reporter.mjs +62 -0
  16. package/application/use-cases/dispatch-mode.ts +18 -0
  17. package/builders/config-orchestrator.mjs +40 -0
  18. package/builders/root-config-builder.mjs +54 -0
  19. package/builders/route-builders.mjs +111 -0
  20. package/builders/source-viewer.mjs +330 -0
  21. package/builders/theme-template.mjs +75 -0
  22. package/builders/version-config-builder.mjs +151 -0
  23. package/content/docs-en.mjs +542 -0
  24. package/content/docs-es.mjs +459 -0
  25. package/content/docs-pt.mjs +459 -0
  26. package/content/docs.mjs +9 -0
  27. package/contracts/doc-versions.mjs +1 -0
  28. package/contracts/index.mjs +1 -0
  29. package/data/default-site-config.mjs +312 -0
  30. package/data/i18n-langmenu.mjs +122 -0
  31. package/data/i18n-translations.mjs +20 -0
  32. package/data/layouts.mjs +353 -0
  33. package/data/path-mappings.mjs +34 -0
  34. package/data/route-metas.mjs +73 -0
  35. package/data/theme-colors.mjs +387 -0
  36. package/data/urls.mjs +7 -0
  37. package/data/version-constants.mjs +3 -0
  38. package/domain/models/cli-options.ts +18 -0
  39. package/domain/services/sanitize-segment.mjs +7 -0
  40. package/home/constants.mjs +4 -0
  41. package/home/home-file-writer.mjs +20 -0
  42. package/home/templates.mjs +48 -0
  43. package/index.mjs +26 -0
  44. package/infrastructure/config-only/runtime.mjs +17 -0
  45. package/infrastructure/home/runtime.mjs +37 -0
  46. package/package.json +60 -0
  47. package/presentation/commands/ai-info.ts +57 -0
  48. package/presentation/commands/config-info.ts +24 -0
  49. package/presentation/commands/diagnostics.ts +70 -0
  50. package/presentation/commands/docs.ts +37 -0
  51. package/presentation/commands/mcp.ts +20 -0
  52. package/presentation/commands/pages.ts +91 -0
  53. package/presentation/commands/run-command.ts +62 -0
  54. package/presentation/index.ts +108 -0
  55. package/presentation/options/parser.ts +104 -0
  56. package/presentation/options/resolver.ts +25 -0
  57. package/presentation/options/schema.ts +10 -0
  58. package/presentation/ui/banner.ts +13 -0
  59. package/presentation/ui/clack.ts +74 -0
  60. package/presentation/ui/prompts.ts +64 -0
  61. package/runtime/doc-path-resolver.mjs +57 -0
  62. package/runtime/git-ops.mjs +110 -0
  63. package/runtime/output.mjs +122 -0
  64. package/runtime/workflow.mjs +144 -0
  65. package/start.mjs +12 -0
  66. package/ui/logger.mjs +9 -0
@@ -0,0 +1,459 @@
1
+ export const docsPt = {
2
+ index: `# Git Page Docs
3
+
4
+ Git Page Docs e um runtime de documentacao multi-idioma para repositorios que possuem a pasta \`gitpagedocs/\`.
5
+
6
+ ## O que este projeto entrega
7
+
8
+ - Renderizacao markdown em varios idiomas (\`en\`, \`pt\`, \`es\`)
9
+ - Roteamento por versao (\`/v/:versao\`)
10
+ - Sistema de temas por templates JSON
11
+ - Execucao local e em GitHub Pages
12
+ - Busca de repositorio + renderizacao remota opcional
13
+
14
+ ## Contrato de pastas
15
+
16
+ O runtime espera esta estrutura:
17
+
18
+ - \`gitpagedocs/config.json\`
19
+ - \`gitpagedocs/docs/<lang>/*.md\`
20
+ - \`gitpagedocs/docs/versions/<versao>/config.json\`
21
+ - \`gitpagedocs/docs/versions/<versao>/<lang>/*.md\`
22
+ - \`gitpagedocs/layouts/layoutsConfig.json\`
23
+ - \`gitpagedocs/layouts/templates/*.json\`
24
+
25
+ ## Navegacao rapida
26
+
27
+ - Abra **Primeiros passos** para setup local.
28
+ - Abra **Configuracao** para detalhes completos do \`config.json\`.
29
+ - Abra **Publicacao** para comportamento local/producao/GitHub Pages.
30
+ - Abra **Arquitetura** para mapa de codigo e fluxo de dados.
31
+ - Abra **Temas e layouts** para autoria de templates.
32
+ - Abra **Rotas autorizadas** para configurar chave, papeis e autenticacao externa.
33
+ - Abra **FAQ** para troubleshooting.
34
+ `,
35
+ gettingStarted: `# Primeiros passos
36
+
37
+ Este guia leva o projeto do zero ate docs rodando.
38
+
39
+ ## Pre-requisitos
40
+
41
+ - Node.js 20+
42
+ - npm 10+ (ou pnpm)
43
+
44
+ ## Setup local
45
+
46
+ 1. Instale dependencias:
47
+ - \`npm install\`
48
+ 2. Gere/atualize os artefatos de docs:
49
+ - \`npm run gitpagedocs\`
50
+ 3. Inicie o desenvolvimento:
51
+ - \`npm run dev\`
52
+ 4. Build e execucao local de producao:
53
+ - \`npm run build\`
54
+ - \`npm start\`
55
+
56
+ ## Comportamento da CLI
57
+
58
+ \`npx gitpagedocs\` (ou \`npm run gitpagedocs\`) gera os artefatos na pasta oficial \`gitpagedocs/\`.
59
+
60
+ - Gera somente markdown/json
61
+ - Nao gera \`index.html\`
62
+ - Nao gera \`index.js\`
63
+ - Nao executa comandos de instalacao
64
+
65
+ ## Modo de busca por repositorio
66
+
67
+ No ambiente local, o controle e por variavel:
68
+
69
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\`
70
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH=false\`
71
+
72
+ Em build de GitHub Pages (\`GITHUB_ACTIONS=true\`), a busca de repositorio fica sempre ativa.
73
+ `,
74
+ projectOverview: `# Visao geral do projeto
75
+
76
+ Git Page Docs e um monorepo pnpm + turborepo que transforma a pasta \`gitpagedocs/\` de um repositorio em um site de documentacao multilinguagem e versionado — com assistente de IA integrado e um servidor MCP (Model Context Protocol).
77
+
78
+ ## Pacotes do monorepo
79
+
80
+ - **frontend/** — visualizador Next.js 15 (App Router, React 19), exportado estaticamente para o GitHub Pages.
81
+ - **cli/** — o pacote npm publicado \`gitpagedocs\` (\`npm install -g gitpagedocs\`): gera a estrutura de docs, documenta com IA, configura o Pages e roda o servidor MCP.
82
+ - **tools/** — \`@gitpagedocs/tools\`, o nucleo de logica compartilhado: sistema de IA com 14 provedores, cofre de credenciais criptografado, loader de config, caches e logger.
83
+ - **mcp/** — \`@gitpagedocs/mcp\`, servidor Model Context Protocol (20 ferramentas + 7 recursos).
84
+ - **gitpagedocs/** — o contrato do usuario: \`config.json\`, docs versionados e layouts.
85
+
86
+ ## Stack
87
+
88
+ - Next.js 15 (App Router) + React 19 + TypeScript; exportacao estatica para GitHub Pages
89
+ - gray-matter + marked para Markdown; react-icons
90
+ - pnpm workspaces + turborepo; Vitest + Playwright; ESLint
91
+
92
+ ## Destaques
93
+
94
+ - Multilinguagem (\`en\`, \`pt\`, \`es\`) e rotas por versao (\`/v/:version\`)
95
+ - Sistema de IA com 14 provedores (OpenAI, Anthropic, Gemini, Ollama, Mistral, DeepSeek, Cohere, Groq, xAI e mais) com streaming
96
+ - Chaves de IA **criptografadas em repouso** (AES-256-GCM) atras de uma senha local — nunca em texto puro
97
+ - **Drawer de chat de IA** nos docs + um **console \`/ai\`** dedicado
98
+ - Sistema de 36 temas; execucao local e no GitHub Pages
99
+ `,
100
+ functionalities: `# Funcionalidades
101
+
102
+ Referencia completa de opcoes da CLI, chaves de configuracao e recursos do runtime.
103
+
104
+ ## Comandos da CLI
105
+
106
+ | Comando | Descricao |
107
+ |---------|------------|
108
+ | \`npx gitpagedocs\` | Gera config e docs em \`gitpagedocs/\` |
109
+ | \`npx gitpagedocs --layoutconfig\` | Tambem gera layouts/templates locais |
110
+ | \`npx gitpagedocs --home\` | Distribuicao standalone (\`gitpagedocshome/\`) |
111
+ | \`npx gitpagedocs --push --owner X --repo Y\` | Configura workflow, commit, push |
112
+ | \`npx gitpagedocs --interactive\` / \`-i\` | Modo interativo com prompts |
113
+
114
+ ## Opcoes da CLI
115
+
116
+ | Opcao | Descricao |
117
+ |-------|-----------|
118
+ | \`--owner <user>\` | Owner do GitHub |
119
+ | \`--repo <repo>\` | Repositorio GitHub |
120
+ | \`--path <subpath>\` | Subcaminho dos docs (ex: \`docs\`); sem ele, base path = nome do repo para CSS/JS em project sites |
121
+ | \`--output <dir>\` | Diretorio de saida (padrao: \`gitpagedocs\`) |
122
+ | \`--search true|false\` | Habilita/desabilita busca de repositorio (\`--home\`) |
123
+ | \`--layoutconfig\` | Gera \`gitpagedocs/layouts/\` |
124
+ | \`--push\` | Cria workflow, commit de artefatos, push |
125
+ | \`--home\` | Gera \`gitpagedocshome/\` (estatico + .env + Dockerfile) |
126
+
127
+ ## Saida gerada
128
+
129
+ - \`gitpagedocs/config.json\` – config raiz
130
+ - \`gitpagedocs/icon.svg\` – icone padrao
131
+ - \`gitpagedocs/docs/versions/<ver>/config.json\` – rotas por versao
132
+ - \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/*.md\` – docs em markdown
133
+ - \`gitpagedocs/docs/versions/<ver>/{en,pt,es}/source-viewer\` – visualizador de codigo (estilo GitHub)
134
+ - \`gitpagedocs/layouts/\` – apenas com \`--layoutconfig\`
135
+
136
+ ## Tipos de conteudo
137
+
138
+ | Tipo | Chave config | Descricao |
139
+ |------|--------------|-----------|
140
+ | Markdown | \`routes-md\` | Arquivos .md com \`path\` por idioma |
141
+ | HTML | \`routes-html\` | \`path\` (ex: source-viewer) ou \`url\` externa |
142
+ | Video | \`routes-video\` | \`video.pathVideo\`, \`video.videoType\` |
143
+ | Audio | \`routes-audio\` | \`audio.pathAudio\`, \`audio.audioType\` |
144
+
145
+ ## Visualizador de codigo fonte
146
+
147
+ A CLI gera uma pagina **Codigo fonte** por versao. Escaneia \`src/\`, \`cli/\` e arquivos raiz (README.md, package.json, next.config.ts, etc.) e constroi um visualizador estilo GitHub em modo escuro com:
148
+
149
+ - Arvore de arquivos na lateral com expandir/recolher pastas
150
+ - Filtro de busca
151
+ - Destaque de sintaxe (TypeScript, JavaScript, JSON, CSS, Markdown)
152
+ - Botao copiar, numeros de linha
153
+ - Alternar preview/codigo do README.md
154
+ - Controles Expandir tudo / Recolher tudo
155
+
156
+ ## Chaves de config (site)
157
+
158
+ - \`name\`, \`defaultLanguage\`, \`supportedLanguages\`
159
+ - \`docsVersion\`, \`rendering\`, \`ThemeDefault\`, \`ThemeModeDefault\`
160
+ - \`ProjectLink\`, \`layoutsConfigPathOficial\`, \`layoutsConfigPath\`
161
+
162
+ ## Variaveis de ambiente
163
+
164
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH\` – busca de repositorio (local)
165
+ - \`GITHUB_ACTIONS\` – modo build GitHub Pages
166
+ `,
167
+ configuration: `# Configuracao
168
+
169
+ A configuracao de runtime fica em \`gitpagedocs/config.json\`.
170
+
171
+ ## Secao \`site\`
172
+
173
+ Principais chaves:
174
+
175
+ - \`name\`: titulo do projeto no UI
176
+ - \`defaultLanguage\`: idioma padrao
177
+ - \`supportedLanguages\`: lista de idiomas disponiveis
178
+ - \`HideThemeSelector\`: esconde/mostra seletor de tema
179
+ - \`ThemeDefault\`: id do tema inicial
180
+ - \`ThemeModeDefault\`: modo inicial (\`light\` ou \`dark\`)
181
+ - \`ProjectLink\`: URL de repositorio para acoes no cabecalho
182
+ - \`docsVersion\`: versao inicial selecionada
183
+ - \`ActiveNavigation\`: habilita comportamento de anterior/proximo
184
+ - \`FocusMode\`: habilita modo foco/leitura
185
+ - \`IconImageMenuHeaderImgWidth\`, \`IconImageMenuHeaderImgHeight\`: tamanho do icone principal
186
+ - \`IconImageMenuHeaderLightImg\`, \`IconImageMenuHeaderDarkImg\`: icone principal (light/dark)
187
+ - \`IconProjectLinkImgWidth\`, \`IconProjectLinkImgHeight\`: tamanho do icone link do projeto
188
+ - \`IconProjectLinkLightImg\`, \`IconProjectLinkDarkImg\`: icone link do projeto
189
+ - \`IconVersionLinksImgWidth\`, \`IconVersionLinksImgHeight\`: tamanho do icone links de versao
190
+ - \`IconVersionLinksLightImg\`, \`IconVersionLinksDarkImg\`: icone links de versao
191
+ - \`IconInfoHeaderMenuImgWidth\`, \`IconInfoHeaderMenuImgHeight\`: tamanho do icone info
192
+ - \`IconInfoHeaderMenuLightImg\`, \`IconInfoHeaderMenuDarkImg\`: icone info
193
+ - \`IconPreviewProjectLinkImgWidth\`, \`IconPreviewProjectLinkImgHeight\`: tamanho do icone preview
194
+ - \`IconPreviewProjectLinkLightImg\`, \`IconPreviewProjectLinkDarkImg\`: icone preview
195
+ - \`layoutsConfigPath\`: fallback remoto para layouts
196
+ - \`rendering\`: URL canonica publicada
197
+
198
+ ## Secao \`VersionControl\`
199
+
200
+ \`VersionControl.versions\` define:
201
+
202
+ - \`id\`: identificador da versao
203
+ - \`path\`: caminho do config da versao
204
+ - links opcionais (\`ProjectLink\`, \`branch\`, \`release\`, \`commit\`)
205
+
206
+ ## Navegacao e rotas
207
+
208
+ - \`routes\`: caminhos markdown por idioma (legado)
209
+ - \`menus-header\`: menu hierarquico
210
+ - \`translations\`: labels de UI para not-found e navegacao
211
+
212
+ ## Autorizacao (config de versao)
213
+
214
+ - \`auth\`: configuracoes globais de autorizacao para a versao
215
+ - \`auth.accessKeys\`: mapa de chaves usado por \`authorization.accessKeyId\`
216
+ - \`auth.rolesStorageKey\`: chave de localStorage para bootstrap de papeis
217
+ - \`auth.providers\`: adaptadores de provedor (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
218
+
219
+ ## Tipos de conteudo (config de versao)
220
+
221
+ Configs de versao suportam multiplos tipos:
222
+
223
+ - \`routes-md\`: Rotas markdown com \`title\`, \`description\` (centralizados via \`titlePosition\`, \`descriptionPosition\`)
224
+ - \`routes-html\`: Caminhos de paginas HTML por idioma
225
+ - \`routes-video\`: Config de video com \`video.videoType\` (youtube, vimeo, mp4, etc.) e \`video.pathVideo\`
226
+ - \`routes-audio\`: Config de audio com \`audio.audioType\` (youtube, mp3, etc.) e \`audio.pathAudio\`
227
+ - \`authorization\` (md/html/video): guarda de acesso por chave, papeis e autenticacao externa
228
+ - \`menus-header-md\`, \`menus-header-html\`, \`menus-header-video\`, \`menus-header-audio\`: menus por tipo
229
+ - \`hierarchyPage\`: ordem dos containers na pagina \`{ md: 0, html: 1, video: 2, audio: 3 }\`
230
+ - \`hierarchyMenu\`: ordem das secoes do menu \`{ md: 0, html: 1, video: 2, audio: 3 }\`
231
+
232
+ Cada rota pode incluir \`title\`, \`description\` (por idioma), \`titleCss\`, \`titlePosition: "center"\`, \`descriptionPosition: "center"\`, \`titleIsVisible\`, \`descriptionIsVisible\`.
233
+
234
+ ## Variaveis por rota (blockLink, container, url, browseAll)
235
+
236
+ Opcoes por rota em \`routes-md\`, \`routes-html\` e \`routes-video\`:
237
+
238
+ - **\`blockLink\`** (padrao: true) – Para HTML: se true, links abrem em nova aba (\`target="_blank"\`); se false, no proprio contexto.
239
+ - **\`container\`** – \`"full"\` = altura automatica; numero (ex: \`500\`) = altura fixa em px com overflow auto. Aplica-se a md, html e video.
240
+ - **\`url\`** – Apenas em \`routes-html\`: \`Record<LanguageCode, string>\` com URLs externas. Quando definido, o iframe usa \`src={url}\` em vez de HTML local via \`srcDoc\`. Rotas com \`url\` nao geram arquivos HTML locais.
241
+ - **\`browseAll\`** (padrao: false) – Se true, o container mostra botoes Anterior/Proximo para navegar entre todos os itens daquele tipo.
242
+
243
+ ## Tipos de conteudo: path vs url (HTML)
244
+
245
+ - **Markdown (\`routes-md\`)**: usa \`path\` apontando para arquivos \`.md\` locais.
246
+ - **HTML (\`routes-html\`)**: usa \`path\` para arquivos HTML locais (sem extensao .html no config, ex: \`source-viewer\`) ou \`url\` para URLs externas. Com \`url\`, o iframe carrega a pagina externa; nenhum arquivo local e gerado. A CLI gera um visualizador **Codigo fonte** (estilo GitHub) por versao.
247
+ - **Video (\`routes-video\`)**: usa \`video.pathVideo\` e \`video.videoType\` (youtube, vimeo, mp4, etc.).
248
+
249
+ ## Variaveis de ambiente
250
+
251
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH\`: ativa/desativa busca remota localmente
252
+ - \`GITHUB_ACTIONS\`: ativa comportamento especifico de GitHub Pages
253
+ `,
254
+ deployment: `# Publicacao
255
+
256
+ Git Page Docs roda como app Next.js com dois alvos: servidor local e GitHub Pages.
257
+
258
+ ## Publicacao local
259
+
260
+ Use:
261
+
262
+ 1. \`npm run build\`
263
+ 2. \`npm start\`
264
+
265
+ Isso sobe runtime Node + Next.js usando a pasta local \`gitpagedocs/\`.
266
+
267
+ ## Publicacao em GitHub Pages
268
+
269
+ Em build de GitHub Actions:
270
+
271
+ - \`GITHUB_ACTIONS=true\`
272
+ - comportamento de export estatico e habilitado pela configuracao
273
+ - pagina inicial de busca de repositorio fica ativa
274
+
275
+ ## Fluxo de publish do pacote
276
+
277
+ Para publicar no npm:
278
+
279
+ - atualize versao no \`package.json\`
280
+ - execute \`npm publish --access public\`
281
+ - valide autenticacao com \`npm whoami\`
282
+
283
+ Se \`build:prebuilt\` for pulado no Windows, use CI para gerar artefatos prebuilt.
284
+ `,
285
+ architecture: `# Arquitetura
286
+
287
+ O projeto e organizado por fronteiras de feature e responsabilidades do runtime.
288
+
289
+ ## Pacotes
290
+
291
+ - **frontend/** — visualizador Next.js (Feature-Sliced: app / widgets / features / entities / shared); export estatico.
292
+ - **cli/** — o bin publicado \`gitpagedocs\` (hexagonal) + \`cli/ai/\` (CLI de documentacao com IA).
293
+ - **tools/** — \`@gitpagedocs/tools\`: ai/ security/ crypto/ cache/ config/ logger/ errors/ filesystem/ documentation/ ports/.
294
+ - **mcp/** — \`@gitpagedocs/mcp\`: ferramentas + recursos MCP que delegam ao tools/.
295
+
296
+ ## Modulos principais (frontend)
297
+
298
+ - \`frontend/src/app/[[...repo]]/page.tsx\` — parser de rota, generateStaticParams, selecao de shell.
299
+ - \`frontend/src/entities/docs/api/load-docs-data.ts\` — config local/remota, versao, parse markdown, layouts + temas.
300
+ - \`frontend/src/widgets/docs-shell/docs-shell.tsx\` — UI, estado idioma/versao/tema, sync de URL, montagem do chat de IA.
301
+
302
+ ## Seguranca: credenciais de IA criptografadas
303
+
304
+ O console \`/ai\` e o chat drawer exigem uma senha local que deriva (PBKDF2) uma chave AES-256-GCM; as chaves ficam criptografadas no \`localStorage\` e so sao descriptografadas durante a sessao (\`@gitpagedocs/tools/security\`).
305
+
306
+ ## Fluxo de dados
307
+
308
+ 1. A rota chega (\`/owner/repo/v/x.y.z\` ou equivalente local)
309
+ 2. O config e resolvido (local ou remoto)
310
+ 3. Config de versao sobrescreve rotas/menus base
311
+ 4. Markdown e carregado e convertido para HTML
312
+ 5. Template de layout e resolvido e aplicado em CSS vars
313
+ 6. Shell renderiza conteudo e controles
314
+
315
+ ## Pontos de resiliencia
316
+
317
+ - fallback de carga para layouts/templates
318
+ - carregamento de markdown por idioma com fallback de erro
319
+ - sincronizacao de linguagem/versao/tema via localStorage
320
+ `,
321
+ githubIssuesProjects: `# GitHub Issues e Projects
322
+
323
+ Aprenda a usar GitHub Issues e Projects para gerenciar seu trabalho.
324
+
325
+ ## Conceitos
326
+
327
+ - Issues para rastrear tarefas e bugs
328
+ - Projects para visualizar e organizar o trabalho
329
+ - Workflows recomendados para equipes
330
+ `,
331
+ gitIntroduction: `# Introducao ao Git
332
+
333
+ Conceitos basicos de Git para iniciantes.
334
+
335
+ ## Comandos essenciais
336
+
337
+ - \`git init\` - iniciar repositorio
338
+ - \`git add\` - preparar alteracoes
339
+ - \`git commit\` - registrar commit
340
+ - \`git push\` - enviar para remoto
341
+ `,
342
+ authorizedRoutes: `# Rotas autorizadas
343
+
344
+ Proteja rotas por chave de acesso, papeis obrigatorios e provedores externos.
345
+
346
+ ## Local do config de versao
347
+
348
+ Configure em:
349
+
350
+ - \`gitpagedocs/docs/versions/<versao>/config.json\`
351
+
352
+ ## Secao global auth
353
+
354
+ Use \`auth\` no topo do config de versao:
355
+
356
+ - \`accessKeys\`: mapa de ids de chave para segredo esperado
357
+ - \`rolesStorageKey\`: chave de localStorage para bootstrap de papeis
358
+ - \`providers\`: lista de provedores externos (\`authjs\`, \`clerk\`, \`firebase\`, \`jwt\`)
359
+
360
+ ## Autorizacao por rota
361
+
362
+ Dentro de cada rota (\`routes-md\`, \`routes-html\`, \`routes-video\`):
363
+
364
+ - \`authorization.accessKeyId\`
365
+ - \`authorization.requiredRoles\`
366
+ - \`authorization.requireExternalAuth\`
367
+ - \`authorization.allowedProviders\`
368
+
369
+ ## Fases
370
+
371
+ ### Fase A - Chave de acesso
372
+
373
+ Defina \`authorization.accessKeyId\` e a chave correspondente em \`auth.accessKeys\`.
374
+
375
+ ### Fase B - Papeis
376
+
377
+ Defina \`authorization.requiredRoles\` com um ou mais papeis.
378
+
379
+ Os papeis podem vir de:
380
+
381
+ - query param \`?authRoles=admin,maintainer\`
382
+ - localStorage (\`rolesStorageKey\`)
383
+ - claims de provedores externos
384
+
385
+ ### Fase C - Provedores externos
386
+
387
+ Defina \`authorization.requireExternalAuth=true\` e opcionalmente \`allowedProviders\`.
388
+
389
+ Adaptadores suportados:
390
+
391
+ - Auth.js (\`type: "authjs"\`)
392
+ - Clerk (\`type: "clerk"\`)
393
+ - Firebase Auth (\`type: "firebase"\`)
394
+ - JWT custom (\`type: "jwt"\`)
395
+ `,
396
+ themes: `# Temas e layouts
397
+
398
+ Temas sao templates JSON mapeados por \`layoutsConfig.json\`.
399
+
400
+ ## Arquivos
401
+
402
+ - \`gitpagedocs/layouts/layoutsConfig.json\`
403
+ - \`gitpagedocs/layouts/layoutsFallbackConfig.json\`
404
+ - \`gitpagedocs/layouts/templates/*.json\`
405
+
406
+ ## Modelo de template
407
+
408
+ Cada template normalmente contem:
409
+
410
+ - \`id\`, \`name\`, \`author\`, \`version\`
411
+ - \`mode\` e metadados de par dark/light
412
+ - \`colors\`
413
+ - \`typography\`
414
+ - tokens de \`components\`
415
+ - \`animations\`
416
+
417
+ ## Comportamento em runtime
418
+
419
+ - tema ativo vem de config/usuario
420
+ - toggle light/dark resolve o tema pareado por referencia
421
+ - variaveis CSS sao geradas dos tokens do template
422
+
423
+ ## Boas praticas
424
+
425
+ - mantenha contraste acessivel
426
+ - padronize escala de espaco e borda
427
+ - ofereca variantes dark e light quando possivel
428
+ `,
429
+ faq: `# FAQ
430
+
431
+ ## Por que repositorios remotos nao abrem localmente?
432
+
433
+ Verifique:
434
+
435
+ - \`GITPAGEDOCS_REPOSITORY_SEARCH=true\` no \`.env\`
436
+ - repositorio alvo contem \`gitpagedocs/config.json\`
437
+ - paths markdown do repositorio batem com seu config de rotas
438
+
439
+ ## Por que rota de versao mostra conteudo errado?
440
+
441
+ Verifique:
442
+
443
+ - \`VersionControl.versions[*].path\` em \`gitpagedocs/config.json\`
444
+ - config da versao possui \`routes\` e \`menus-header\` validos
445
+ - markdown existe para cada idioma
446
+
447
+ ## Por que tema nao aplica corretamente?
448
+
449
+ Verifique:
450
+
451
+ - \`layoutsConfig.json\` referencia templates validos
452
+ - ids de template sao unicos
453
+ - tema selecionado existe no mapa de temas carregados
454
+
455
+ ## Por que GitHub Pages pode se comportar diferente do local?
456
+
457
+ Porque o build de GitHub Pages habilita pagina inicial de busca e comportamento especifico de exportacao.
458
+ `,
459
+ };
@@ -0,0 +1,9 @@
1
+ import { docsEn } from "./docs-en.mjs";
2
+ import { docsPt } from "./docs-pt.mjs";
3
+ import { docsEs } from "./docs-es.mjs";
4
+
5
+ export const DOCS = {
6
+ en: docsEn,
7
+ pt: docsPt,
8
+ es: docsEs
9
+ };
@@ -0,0 +1 @@
1
+ export const DOC_VERSIONS = ["1.0.0", "1.1.0", "1.1.1"];
@@ -0,0 +1 @@
1
+ export { DOC_VERSIONS } from "./doc-versions.mjs";