@oktis-works/cms 0.6.4 → 0.7.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 (44) hide show
  1. package/dist/commands.d.ts.map +1 -1
  2. package/dist/commands.js +11 -0
  3. package/dist/commands.js.map +1 -1
  4. package/dist/dev.d.ts +34 -0
  5. package/dist/dev.d.ts.map +1 -1
  6. package/dist/dev.js +173 -6
  7. package/dist/dev.js.map +1 -1
  8. package/dist/index.js +9 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/parser.d.ts +5 -0
  11. package/dist/parser.d.ts.map +1 -1
  12. package/dist/parser.js +8 -1
  13. package/dist/parser.js.map +1 -1
  14. package/dist/prompt.d.ts.map +1 -1
  15. package/dist/prompt.js +29 -9
  16. package/dist/prompt.js.map +1 -1
  17. package/dist/scaffold-docs.d.ts.map +1 -1
  18. package/dist/scaffold-docs.js +16 -7
  19. package/dist/scaffold-docs.js.map +1 -1
  20. package/dist/wizard-env.d.ts +24 -0
  21. package/dist/wizard-env.d.ts.map +1 -0
  22. package/dist/wizard-env.js +171 -0
  23. package/dist/wizard-env.js.map +1 -0
  24. package/dist/wizard-flows.d.ts +19 -0
  25. package/dist/wizard-flows.d.ts.map +1 -0
  26. package/dist/wizard-flows.js +165 -0
  27. package/dist/wizard-flows.js.map +1 -0
  28. package/dist/wizard-i18n.d.ts +112 -0
  29. package/dist/wizard-i18n.d.ts.map +1 -0
  30. package/dist/wizard-i18n.js +232 -0
  31. package/dist/wizard-i18n.js.map +1 -0
  32. package/dist/wizard-run.d.ts +39 -0
  33. package/dist/wizard-run.d.ts.map +1 -0
  34. package/dist/wizard-run.js +121 -0
  35. package/dist/wizard-run.js.map +1 -0
  36. package/dist/wizard-state.d.ts +30 -0
  37. package/dist/wizard-state.d.ts.map +1 -0
  38. package/dist/wizard-state.js +69 -0
  39. package/dist/wizard-state.js.map +1 -0
  40. package/dist/wizard.d.ts +16 -0
  41. package/dist/wizard.d.ts.map +1 -0
  42. package/dist/wizard.js +304 -0
  43. package/dist/wizard.js.map +1 -0
  44. package/package.json +1 -1
@@ -0,0 +1,165 @@
1
+ // @oktis-works/cms - Wizard: fluxos guiados
2
+ //
3
+ // Seis trilhas passo-a-passo que ENCADEIAM os comandos reais via subprocesso:
4
+ // nada é reimplementado aqui — o wizard explica, pergunta, imprime a linha de
5
+ // automação e executa o mesmo `okcms ...` que você rodaria à mão.
6
+ //
7
+ // Padrão comum de todos os fluxos:
8
+ // intro → entrevista de env (pulável, dev/deploys) → pré-checagens →
9
+ // confirmação → execução (espelho + subprocesso) → em falha: doctor/retry/menu
10
+ //
11
+ // Comandos longos (dev/start) são marcados como `longRunning`: o Ctrl+C neles
12
+ // retorna ao wizard em vez de encerrar a sessão.
13
+ import { probeState } from './wizard-state.js';
14
+ import { runEnvInterview } from './wizard-env.js';
15
+ import { runCliCommand } from './wizard-run.js';
16
+ const stateOf = (deps) => deps.stateFn ? deps.stateFn() : probeState({ cwd: deps.cwd });
17
+ /** Entrevista de env comum aos fluxos dev/deploys (pulável). */
18
+ async function envStep(deps) {
19
+ const result = await runEnvInterview({ prompt: deps.prompt, catalog: deps.catalog, cwd: deps.cwd }, { skipOption: true });
20
+ if (result.status === 'cancelled') {
21
+ deps.prompt.warn(deps.catalog.stepCancelled);
22
+ return false;
23
+ }
24
+ if (result.status === 'nothing')
25
+ deps.prompt.info(deps.catalog.stepEnvSkip);
26
+ return true;
27
+ }
28
+ /** Pré-checagem dos deploys: apps locais seguram as portas dos containers. */
29
+ async function precheckDeploy(deps) {
30
+ const state = stateOf(deps);
31
+ if (!state.isProject) {
32
+ deps.prompt.error(deps.catalog.warnNoProject);
33
+ return false;
34
+ }
35
+ if (!state.dockerUp) {
36
+ deps.prompt.error(deps.catalog.statusDockerDown);
37
+ return false;
38
+ }
39
+ if (state.appsRunning) {
40
+ deps.prompt.warn(deps.catalog.stepAppsRunning);
41
+ const stop = await deps.prompt.confirm(deps.catalog.stepStopFirst, { defaultValue: true });
42
+ if (!stop) {
43
+ deps.prompt.warn(deps.catalog.stepCancelled);
44
+ return false;
45
+ }
46
+ const result = await runCliCommand('stop', [], { prompt: deps.prompt, spawn: deps.spawn, cwd: deps.cwd });
47
+ if (result.code !== 0)
48
+ return false;
49
+ }
50
+ deps.prompt.info(deps.catalog.stepPrecheck + ': ' + deps.catalog.statusInfraUp);
51
+ return true;
52
+ }
53
+ /** Em falha: doctor / retry / menu. Retorna 'retry' para repetir o passo. */
54
+ async function failureMenu(deps, retry) {
55
+ for (;;) {
56
+ const pick = await deps.prompt.select(deps.catalog.onFailure, [
57
+ { value: 'doctor', label: deps.catalog.failDoctor },
58
+ { value: 'retry', label: deps.catalog.failRetry },
59
+ { value: 'menu', label: deps.catalog.failMenu },
60
+ ]);
61
+ if (pick === 'menu')
62
+ return 'failed';
63
+ if (pick === 'doctor') {
64
+ await runCliCommand('doctor', [], { prompt: deps.prompt, spawn: deps.spawn, cwd: deps.cwd });
65
+ continue;
66
+ }
67
+ const result = await retry();
68
+ if (result.code === 0)
69
+ return 'done';
70
+ }
71
+ }
72
+ async function confirmRun(deps, line) {
73
+ return deps.prompt.confirm(deps.catalog.stepConfirmRun(line), { defaultValue: true });
74
+ }
75
+ // ---------------------------------------------------------------------------
76
+ // Init
77
+ // ---------------------------------------------------------------------------
78
+ export async function flowInit(deps) {
79
+ const { prompt, catalog } = deps;
80
+ prompt.heading(catalog.stepIntro(catalog.flowInit));
81
+ prompt.info(catalog.initWhatItDoes);
82
+ const dir = await prompt.ask('Project directory', { default: '.' });
83
+ const lang = await prompt.select('Docs language', [
84
+ { value: 'en', label: 'English', hint: 'default' },
85
+ { value: 'pt', label: 'Português (Brasil)' },
86
+ ]);
87
+ const install = await prompt.select('Install dependencies now?', [
88
+ { value: true, label: 'Yes', hint: 'recommended' },
89
+ { value: false, label: 'No' },
90
+ ]);
91
+ const flags = [['lang', lang]];
92
+ if (!install)
93
+ flags.push(['no-install', 'true']);
94
+ const run = () => runCliCommand('init', flags, {
95
+ prompt,
96
+ spawn: deps.spawn,
97
+ cwd: deps.cwd,
98
+ positional: [dir],
99
+ longRunning: true,
100
+ });
101
+ if (!(await confirmRun(deps, `okcms init ${dir} --lang ${lang}${install ? '' : ' --no-install'}`))) {
102
+ prompt.warn(catalog.stepCancelled);
103
+ return 'cancelled';
104
+ }
105
+ const result = await run();
106
+ return result.code === 0 ? 'done' : failureMenu(deps, run);
107
+ }
108
+ // ---------------------------------------------------------------------------
109
+ // Dev
110
+ // ---------------------------------------------------------------------------
111
+ export async function flowDev(deps) {
112
+ const { prompt, catalog } = deps;
113
+ prompt.heading(catalog.stepIntro(catalog.flowDev));
114
+ prompt.info(catalog.devWhatItDoes);
115
+ if (!(await envStep(deps)))
116
+ return 'cancelled';
117
+ if (!(await confirmRun(deps, 'okcms dev'))) {
118
+ prompt.warn(catalog.stepCancelled);
119
+ return 'cancelled';
120
+ }
121
+ const run = () => runCliCommand('dev', [], { prompt, spawn: deps.spawn, cwd: deps.cwd, longRunning: true });
122
+ const result = await run();
123
+ return result.code === 0 ? 'done' : failureMenu(deps, run);
124
+ }
125
+ async function flowDeploy(deps, target, label) {
126
+ const { prompt, catalog } = deps;
127
+ prompt.heading(catalog.stepIntro(label));
128
+ prompt.info(catalog.deployTargetSummary(target));
129
+ if (!(await envStep(deps)))
130
+ return 'cancelled';
131
+ if (!(await precheckDeploy(deps)))
132
+ return 'cancelled';
133
+ const flags = [['target', target], ['yes', 'true']];
134
+ const run = () => runCliCommand('deploy', flags, { prompt, spawn: deps.spawn, cwd: deps.cwd });
135
+ if (!(await confirmRun(deps, `okcms deploy --target ${target} --yes`))) {
136
+ prompt.warn(catalog.stepCancelled);
137
+ return 'cancelled';
138
+ }
139
+ const result = await run();
140
+ return result.code === 0 ? 'done' : failureMenu(deps, run);
141
+ }
142
+ export const flowDeployBlueGreen = (deps) => flowDeploy(deps, 'blue-green', deps.catalog.flowDeployBg);
143
+ export const flowDeploySimple = (deps) => flowDeploy(deps, 'simple', deps.catalog.flowDeploySimple);
144
+ export const flowDeployPm2 = (deps) => flowDeploy(deps, 'pm2', deps.catalog.flowDeployPm2);
145
+ // ---------------------------------------------------------------------------
146
+ // Update
147
+ // ---------------------------------------------------------------------------
148
+ export async function flowUpdate(deps) {
149
+ const { prompt, catalog } = deps;
150
+ const state = stateOf(deps);
151
+ prompt.heading(catalog.stepIntro(catalog.flowUpdate));
152
+ prompt.info(catalog.updateSummary);
153
+ if (!state.isProject) {
154
+ prompt.error(catalog.warnNoProject);
155
+ return 'cancelled';
156
+ }
157
+ if (!(await confirmRun(deps, 'okcms update'))) {
158
+ prompt.warn(catalog.stepCancelled);
159
+ return 'cancelled';
160
+ }
161
+ const run = () => runCliCommand('update', [], { prompt, spawn: deps.spawn, cwd: deps.cwd, longRunning: true });
162
+ const result = await run();
163
+ return result.code === 0 ? 'done' : failureMenu(deps, run);
164
+ }
165
+ //# sourceMappingURL=wizard-flows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard-flows.js","sourceRoot":"","sources":["../src/wizard-flows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ export type WizardLang = 'en' | 'pt';
2
+ export interface Catalog {
3
+ title: string;
4
+ langLabel: (current: WizardLang) => string;
5
+ pickLang: string;
6
+ suggestNone: string;
7
+ suggestInit: string;
8
+ suggestEnv: string;
9
+ suggestInfra: string;
10
+ suggestApps: string;
11
+ suggestDeploy: string;
12
+ menuFlows: string;
13
+ menuFlowsHint: string;
14
+ menuCommand: string;
15
+ menuCommandHint: string;
16
+ menuEnv: string;
17
+ menuEnvHint: string;
18
+ menuStatus: string;
19
+ menuStatusHint: string;
20
+ menuRefresh: string;
21
+ menuRefreshHint: string;
22
+ menuExit: string;
23
+ menuExitHint: string;
24
+ flowsHeading: string;
25
+ catalogHeading: string;
26
+ envHeading: string;
27
+ statusHeading: string;
28
+ languageHeading: string;
29
+ statusNoProject: string;
30
+ statusProject: (name: string) => string;
31
+ statusEnvComplete: string;
32
+ statusEnvIncomplete: (missing: number) => string;
33
+ statusDockerUp: string;
34
+ statusDockerDown: string;
35
+ statusInfraUp: string;
36
+ statusInfraDown: string;
37
+ statusAppsUp: (labels: string) => string;
38
+ statusAppsDown: string;
39
+ statusRefreshed: string;
40
+ mirrorLine: (command: string) => string;
41
+ running: (command: string) => string;
42
+ exitedZero: string;
43
+ exitedNonZero: (code: number) => string;
44
+ onFailure: string;
45
+ failDoctor: string;
46
+ failRetry: string;
47
+ failMenu: string;
48
+ longRunning: string;
49
+ interrupted: string;
50
+ envIntro: string;
51
+ envSkipOption: string;
52
+ envKeepHint: string;
53
+ envSectionCount: (count: number) => string;
54
+ envSecretNotSet: string;
55
+ envJwtGenerate: string;
56
+ envGenerated: string;
57
+ envSaved: (count: number) => string;
58
+ envDiscarded: string;
59
+ envDefaultApplies: (value: string) => string;
60
+ envSummaryTitle: string;
61
+ envSummaryPending: (count: number) => string;
62
+ envConfirmSave: (count: number) => string;
63
+ envCancelled: string;
64
+ envNoProject: string;
65
+ flowInit: string;
66
+ flowInitHint: string;
67
+ flowDev: string;
68
+ flowDevHint: string;
69
+ flowDeployBg: string;
70
+ flowDeployBgHint: string;
71
+ flowDeploySimple: string;
72
+ flowDeploySimpleHint: string;
73
+ flowDeployPm2: string;
74
+ flowDeployPm2Hint: string;
75
+ flowUpdate: string;
76
+ flowUpdateHint: string;
77
+ flowBack: string;
78
+ flowBackHint: string;
79
+ stepIntro: (flow: string) => string;
80
+ stepEnvAsk: string;
81
+ stepEnvSkip: string;
82
+ stepPrecheck: string;
83
+ stepAppsRunning: string;
84
+ stepStopFirst: string;
85
+ stepConfirmRun: (command: string) => string;
86
+ stepCancelled: string;
87
+ deployTargetSummary: (target: string) => string;
88
+ updateSummary: string;
89
+ initWhatItDoes: string;
90
+ devWhatItDoes: string;
91
+ catalogIntro: string;
92
+ catalogPickCommand: string;
93
+ catalogRequired: (flag: string, desc: string) => string;
94
+ catalogAddOptionals: string;
95
+ catalogPickOptional: string;
96
+ catalogValueFor: (flag: string, desc: string) => string;
97
+ catalogDanger: (name: string) => string;
98
+ catalogConfirmDanger: (command: string) => string;
99
+ catalogConfirmRun: (command: string) => string;
100
+ catalogDone: string;
101
+ warnNoProject: string;
102
+ bye: string;
103
+ }
104
+ export declare const CATALOGS: Record<WizardLang, Catalog>;
105
+ export declare const WIZARD_LANGS: WizardLang[];
106
+ /**
107
+ * Idioma inicial do wizard: sempre EN por padrão; se o projeto já tem docs em
108
+ * português, o wizard SUGERE pt na primeira interação (não força).
109
+ */
110
+ export declare function initialLang(cwd: string): WizardLang;
111
+ export declare function catalogFor(lang: WizardLang): Catalog;
112
+ //# sourceMappingURL=wizard-i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard-i18n.d.ts","sourceRoot":"","sources":["../src/wizard-i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ // @oktis-works/cms - Wizard i18n: catálogo de mensagens plugável (en/pt)
2
+ //
3
+ // O wizard começa em inglês e permite trocar o idioma durante a sessão. O
4
+ // catálogo é um DICIONÁRIO plugável: adicionar um idioma novo = acrescentar um
5
+ // objeto `Catalog` em `CATALOGS` (o tipo força preencher toda a UI — um campo
6
+ // esquecido é erro de compilação, não texto vazio em produção).
7
+ //
8
+ // Comandos e nomes de flags NUNCA são traduzidos: a sintaxe que o usuário copia
9
+ // pra automação é sempre a real (`okcms deploy --target blue-green`).
10
+ import { detectProjectDocsLang } from './scaffold-docs.js';
11
+ const en = {
12
+ title: 'OKCMS wizard',
13
+ langLabel: (current) => `language: ${current}`,
14
+ pickLang: 'Interface language',
15
+ suggestNone: 'what would you like to do?',
16
+ suggestInit: 'no project here yet — start with a new project',
17
+ suggestEnv: 'next step: complete the environment variables (.env)',
18
+ suggestInfra: 'next step: start the infrastructure (Postgres + Redis)',
19
+ suggestApps: 'next step: start the apps (okcms start)',
20
+ suggestDeploy: 'apps are running locally — deploy when ready',
21
+ menuFlows: 'Guided flows',
22
+ menuFlowsHint: 'init · dev · deploy blue-green/simple/pm2 · update',
23
+ menuCommand: 'Run a command',
24
+ menuCommandHint: 'all {n} CLI commands, grouped — dangerous ones marked',
25
+ menuEnv: 'Configure .env',
26
+ menuEnvHint: 'field-by-field interview for all 47 variables',
27
+ menuStatus: 'Project status',
28
+ menuStatusHint: 'docker, infrastructure, apps, environment',
29
+ menuRefresh: 'Refresh status',
30
+ menuRefreshHint: 're-probe docker/apps/.env',
31
+ menuExit: 'Exit',
32
+ menuExitHint: 'back to the shell',
33
+ flowsHeading: 'Guided flows',
34
+ catalogHeading: 'Commands',
35
+ envHeading: 'Environment variables',
36
+ statusHeading: 'Project status',
37
+ languageHeading: 'Language',
38
+ statusNoProject: 'no OkCMS project in this directory (run okcms init)',
39
+ statusProject: (name) => `project: ${name}`,
40
+ statusEnvComplete: '.env: complete',
41
+ statusEnvIncomplete: (missing) => `.env: ${missing} required variable(s) missing`,
42
+ statusDockerUp: 'docker: up',
43
+ statusDockerDown: 'docker: not available',
44
+ statusInfraUp: 'infrastructure: running (Postgres + Redis)',
45
+ statusInfraDown: 'infrastructure: not running',
46
+ statusAppsUp: (labels) => `apps: running (${labels})`,
47
+ statusAppsDown: 'apps: not running',
48
+ statusRefreshed: 'status refreshed',
49
+ mirrorLine: (command) => `$ ${command}`,
50
+ running: (command) => `running: ${command}`,
51
+ exitedZero: 'finished with success',
52
+ exitedNonZero: (code) => `exited with code ${code}`,
53
+ onFailure: 'command failed — what now?',
54
+ failDoctor: 'Run diagnostics (okcms doctor)',
55
+ failRetry: 'Retry the same command',
56
+ failMenu: 'Back to the menu',
57
+ longRunning: 'long-running command — press Ctrl+C to stop it and return to the wizard',
58
+ interrupted: 'interrupted — returned to the wizard',
59
+ envIntro: 'Enter keeps the current value · empty input keeps it too · Ctrl+C cancels everything',
60
+ envSkipOption: 'Skip — use the current .env as-is',
61
+ envKeepHint: 'current',
62
+ envSectionCount: (count) => `${count} field(s) in this section`,
63
+ envSecretNotSet: '(not set)',
64
+ envJwtGenerate: 'JWT_SECRET is missing or a placeholder — generate a strong one?',
65
+ envGenerated: 'JWT_SECRET generated (48 hex, 32 bytes)',
66
+ envSaved: (count) => `${count} key(s) saved to .env (permission 600)`,
67
+ envDiscarded: 'discarded — nothing was saved',
68
+ envDefaultApplies: (value) => `not set — the default (${value}) applies`,
69
+ envSummaryTitle: 'Review before saving',
70
+ envSummaryPending: (count) => `${count} pending change(s)`,
71
+ envConfirmSave: (count) => `Save ${count} change(s) to .env?`,
72
+ envCancelled: 'cancelled — nothing was saved',
73
+ envNoProject: 'no .env to edit — run okcms init (or okcms dev) first',
74
+ flowInit: 'New project',
75
+ flowInitHint: 'scaffold a fresh OkCMS project from zero',
76
+ flowDev: 'Local development',
77
+ flowDevHint: 'env → infra → migrations → first admin → apps',
78
+ flowDeployBg: 'Deploy: blue/green',
79
+ flowDeployBgHint: 'zero-downtime lanes behind the proxy',
80
+ flowDeploySimple: 'Deploy: simple',
81
+ flowDeploySimpleHint: 'plain containers (okcms-api/web/admin)',
82
+ flowDeployPm2: 'Deploy: PM2',
83
+ flowDeployPm2Hint: 'process manager on the host',
84
+ flowUpdate: 'Update',
85
+ flowUpdateHint: 'packages + migrations + redeploy',
86
+ flowBack: 'Back',
87
+ flowBackHint: 'return to the main menu',
88
+ stepIntro: (flow) => `Flow: ${flow}`,
89
+ stepEnvAsk: 'Configure environment variables first?',
90
+ stepEnvSkip: 'using the current .env',
91
+ stepPrecheck: 'pre-checks',
92
+ stepAppsRunning: 'local apps are running — they hold the ports the containers need',
93
+ stepStopFirst: 'stop them now (okcms stop)?',
94
+ stepConfirmRun: (command) => `Run ${command}?`,
95
+ stepCancelled: 'cancelled — nothing was executed',
96
+ deployTargetSummary: (target) => `deploy target: ${target}`,
97
+ updateSummary: 'update = download packages → apply migrations → redeploy (blue/green, simple or PM2)',
98
+ initWhatItDoes: 'init scaffolds the project: apps, .env.example, okcms.config.json, docs (README/PLUGIN/THEME) and dependency install',
99
+ devWhatItDoes: 'dev prepares everything and runs locally: .env → Docker infra (Postgres/Redis) → migrations → first admin user → API + Admin + Web',
100
+ catalogIntro: 'Every command here prints its CLI line first — copy it for scripts/CI',
101
+ catalogPickCommand: 'Command',
102
+ catalogRequired: (flag, desc) => `${flag} — ${desc}`,
103
+ catalogAddOptionals: 'Add optional flags?',
104
+ catalogPickOptional: 'Optional flag (choose "run" to execute)',
105
+ catalogValueFor: (flag, desc) => `Value for ${flag} (${desc})`,
106
+ catalogDanger: (name) => `${name} — DESTRUCTIVE`,
107
+ catalogConfirmDanger: (command) => `${command}\nThis command can destroy data. Run it anyway?`,
108
+ catalogConfirmRun: (command) => `Run ${command}?`,
109
+ catalogDone: 'command finished',
110
+ warnNoProject: 'this command expects an OkCMS project (okcms.config.json / .env)',
111
+ bye: 'bye',
112
+ };
113
+ const pt = {
114
+ title: 'OKCMS wizard',
115
+ langLabel: (current) => `idioma: ${current}`,
116
+ pickLang: 'Idioma da interface',
117
+ suggestNone: 'o que você quer fazer?',
118
+ suggestInit: 'não há projeto aqui ainda — comece criando um projeto',
119
+ suggestEnv: 'próximo passo: completar as variáveis de ambiente (.env)',
120
+ suggestInfra: 'próximo passo: subir a infraestrutura (Postgres + Redis)',
121
+ suggestApps: 'próximo passo: subir os apps (okcms start)',
122
+ suggestDeploy: 'apps rodando localmente — deploy quando quiser',
123
+ menuFlows: 'Fluxos guiados',
124
+ menuFlowsHint: 'init · dev · deploy blue-green/simple/pm2 · update',
125
+ menuCommand: 'Rodar um comando',
126
+ menuCommandHint: 'todos os {n} comandos do CLI, agrupados — destrutivos marcados',
127
+ menuEnv: 'Configurar .env',
128
+ menuEnvHint: 'entrevista campo a campo das 47 variáveis',
129
+ menuStatus: 'Status do projeto',
130
+ menuStatusHint: 'docker, infraestrutura, apps, ambiente',
131
+ menuRefresh: 'Atualizar status',
132
+ menuRefreshHint: 're-sondear docker/apps/.env',
133
+ menuExit: 'Sair',
134
+ menuExitHint: 'voltar ao shell',
135
+ flowsHeading: 'Fluxos guiados',
136
+ catalogHeading: 'Comandos',
137
+ envHeading: 'Variáveis de ambiente',
138
+ statusHeading: 'Status do projeto',
139
+ languageHeading: 'Idioma',
140
+ statusNoProject: 'nenhum projeto OkCMS neste diretório (rode okcms init)',
141
+ statusProject: (name) => `projeto: ${name}`,
142
+ statusEnvComplete: '.env: completo',
143
+ statusEnvIncomplete: (missing) => `.env: ${missing} variável(is) obrigatória(s) faltando`,
144
+ statusDockerUp: 'docker: disponível',
145
+ statusDockerDown: 'docker: indisponível',
146
+ statusInfraUp: 'infraestrutura: rodando (Postgres + Redis)',
147
+ statusInfraDown: 'infraestrutura: não está rodando',
148
+ statusAppsUp: (labels) => `apps: rodando (${labels})`,
149
+ statusAppsDown: 'apps: não estão rodando',
150
+ statusRefreshed: 'status atualizado',
151
+ mirrorLine: (command) => `$ ${command}`,
152
+ running: (command) => `executando: ${command}`,
153
+ exitedZero: 'finalizou com sucesso',
154
+ exitedNonZero: (code) => `saiu com código ${code}`,
155
+ onFailure: 'o comando falhou — e agora?',
156
+ failDoctor: 'Rodar diagnóstico (okcms doctor)',
157
+ failRetry: 'Tentar de novo o mesmo comando',
158
+ failMenu: 'Voltar ao menu',
159
+ longRunning: 'comando de longa duração — Ctrl+C para voltar ao wizard',
160
+ interrupted: 'interrompido — voltando ao wizard',
161
+ envIntro: 'Enter mantém o valor atual · vazio também mantém · Ctrl+C cancela tudo',
162
+ envSkipOption: 'Pular — usar o .env atual como está',
163
+ envKeepHint: 'atual',
164
+ envSectionCount: (count) => `${count} campo(s) nesta seção`,
165
+ envSecretNotSet: '(não definido)',
166
+ envJwtGenerate: 'JWT_SECRET ausente ou placeholder — gerar um forte?',
167
+ envGenerated: 'JWT_SECRET gerado (48 hex, 32 bytes)',
168
+ envSaved: (count) => `${count} chave(s) salva(s) no .env (permissão 600)`,
169
+ envDiscarded: 'descartado — nada foi salvo',
170
+ envDefaultApplies: (value) => `não definido — o default (${value}) vale`,
171
+ envSummaryTitle: 'Confira antes de salvar',
172
+ envSummaryPending: (count) => `${count} alteração(ões) pendente(s)`,
173
+ envConfirmSave: (count) => `Salvar ${count} alteração(ões) no .env?`,
174
+ envCancelled: 'cancelado — nada foi salvo',
175
+ envNoProject: 'não há .env para editar — rode okcms init (ou okcms dev) primeiro',
176
+ flowInit: 'Projeto novo',
177
+ flowInitHint: 'criar um projeto OkCMS do zero',
178
+ flowDev: 'Desenvolvimento local',
179
+ flowDevHint: 'env → infra → migrations → primeiro admin → apps',
180
+ flowDeployBg: 'Deploy: blue/green',
181
+ flowDeployBgHint: 'lanes sem downtime atrás do proxy',
182
+ flowDeploySimple: 'Deploy: simple',
183
+ flowDeploySimpleHint: 'containers diretos (okcms-api/web/admin)',
184
+ flowDeployPm2: 'Deploy: PM2',
185
+ flowDeployPm2Hint: 'process manager no host',
186
+ flowUpdate: 'Atualizar',
187
+ flowUpdateHint: 'pacotes + migrations + redeploy',
188
+ flowBack: 'Voltar',
189
+ flowBackHint: 'menu principal',
190
+ stepIntro: (flow) => `Fluxo: ${flow}`,
191
+ stepEnvAsk: 'Configurar as variáveis de ambiente primeiro?',
192
+ stepEnvSkip: 'usando o .env atual',
193
+ stepPrecheck: 'pré-checagens',
194
+ stepAppsRunning: 'apps locais estão rodando — eles ocupam as portas que os containers precisam',
195
+ stepStopFirst: 'parar agora (okcms stop)?',
196
+ stepConfirmRun: (command) => `Rodar ${command}?`,
197
+ stepCancelled: 'cancelado — nada foi executado',
198
+ deployTargetSummary: (target) => `alvo do deploy: ${target}`,
199
+ updateSummary: 'update = baixar pacotes → aplicar migrations → redesploy (blue/green, simple ou PM2)',
200
+ initWhatItDoes: 'init cria o projeto: apps, .env.example, okcms.config.json, docs (README/PLUGIN/THEME) e instala as dependências',
201
+ devWhatItDoes: 'dev prepara tudo e roda local: .env → infra Docker (Postgres/Redis) → migrations → primeiro admin → API + Admin + Web',
202
+ catalogIntro: 'Todo comando aqui imprime a linha de CLI primeiro — copie pra automação/CI',
203
+ catalogPickCommand: 'Comando',
204
+ catalogRequired: (flag, desc) => `${flag} — ${desc}`,
205
+ catalogAddOptionals: 'Adicionar flags opcionais?',
206
+ catalogPickOptional: 'Flag opcional (escolha "executar" para rodar)',
207
+ catalogValueFor: (flag, desc) => `Valor para ${flag} (${desc})`,
208
+ catalogDanger: (name) => `${name} — DESTRUTIVO`,
209
+ catalogConfirmDanger: (command) => `${command}\nEste comando pode destruir dados. Rodar mesmo assim?`,
210
+ catalogConfirmRun: (command) => `Rodar ${command}?`,
211
+ catalogDone: 'comando finalizado',
212
+ warnNoProject: 'este comando espera um projeto OkCMS (okcms.config.json / .env)',
213
+ bye: 'até mais',
214
+ };
215
+ export const CATALOGS = { en, pt };
216
+ export const WIZARD_LANGS = ['en', 'pt'];
217
+ /**
218
+ * Idioma inicial do wizard: sempre EN por padrão; se o projeto já tem docs em
219
+ * português, o wizard SUGERE pt na primeira interação (não força).
220
+ */
221
+ export function initialLang(cwd) {
222
+ try {
223
+ return detectProjectDocsLang(cwd) === 'pt' ? 'pt' : 'en';
224
+ }
225
+ catch {
226
+ return 'en';
227
+ }
228
+ }
229
+ export function catalogFor(lang) {
230
+ return CATALOGS[lang] ?? CATALOGS.en;
231
+ }
232
+ //# sourceMappingURL=wizard-i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard-i18n.js","sourceRoot":"","sources":["../src/wizard-i18n.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type Prompt } from './prompt.js';
2
+ export interface RunResult {
3
+ code: number;
4
+ /** true quando o filho foi encerrado por sinal (Ctrl+C). */
5
+ interrupted: boolean;
6
+ }
7
+ /** Assinatura de spawn — injetável nos testes. */
8
+ export type SpawnFn = (command: string, args: string[], cwd?: string) => Promise<RunResult>;
9
+ /**
10
+ * Resolve o executável + script do CLI atual. Preferências:
11
+ * 1. `process.argv[1]` — quando o usuário rodou `okcms`/`bunx`, é o entry
12
+ * real (dev usa src/index.ts, build usa dist/index.js);
13
+ * 2. dist vizinho deste módulo — fallback defensivo.
14
+ * O intérprete é `process.execPath` (bun) — mesmo runtime, zero PATH.
15
+ */
16
+ export declare function resolveCliInvocation(): {
17
+ command: string;
18
+ script: string;
19
+ };
20
+ export declare const defaultSpawn: SpawnFn;
21
+ /** `['dev', ['--yes']]` → `okcms dev --yes` (a linha de automação). */
22
+ export declare function formatCommand(command: string, flags: Array<[string, string]>, positional?: string[]): string;
23
+ /** Mesma conversão de `formatCommand`, mas como argv para o spawn. */
24
+ export declare function flagsToArgv(flags: Array<[string, string]>): string[];
25
+ export interface RunCliOptions {
26
+ prompt: Prompt;
27
+ spawn?: SpawnFn;
28
+ cwd?: string;
29
+ }
30
+ /**
31
+ * Imprime o espelho (`$ okcms ...`), executa como filho com stdio herdado e
32
+ * devolve o resultado. `longRunning` muda o aviso: o comando vai bloquear
33
+ * (dev/start) e o Ctrl+C retorna ao wizard, não mata a sessão.
34
+ */
35
+ export declare function runCliCommand(command: string, flags: Array<[string, string]>, opts: RunCliOptions & {
36
+ longRunning?: boolean;
37
+ positional?: string[];
38
+ }): Promise<RunResult>;
39
+ //# sourceMappingURL=wizard-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard-run.d.ts","sourceRoot":"","sources":["../src/wizard-run.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc1E;AAED,eAAO,MAAM,YAAY,EAAE,OAqBvB,CAAC;AAEL,uEAAuE;AACvE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC9B,UAAU,GAAE,MAAM,EAAO,GACxB,MAAM,CAQR;AAWD,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,CASpE;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC9B,IAAI,EAAE,aAAa,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrE,OAAO,CAAC,SAAS,CAAC,CAsBpB"}