@oktis-works/cms 0.1.13 → 0.2.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/assets.d.ts +94 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +671 -0
- package/dist/assets.js.map +1 -0
- package/dist/bluegreen.d.ts +121 -0
- package/dist/bluegreen.d.ts.map +1 -0
- package/dist/bluegreen.js +393 -0
- package/dist/bluegreen.js.map +1 -0
- package/dist/commands.d.ts +6 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +116 -61
- package/dist/commands.js.map +1 -1
- package/dist/config-wizard.d.ts +39 -0
- package/dist/config-wizard.d.ts.map +1 -0
- package/dist/config-wizard.js +308 -0
- package/dist/config-wizard.js.map +1 -0
- package/dist/docker.d.ts +148 -0
- package/dist/docker.d.ts.map +1 -0
- package/dist/docker.js +324 -0
- package/dist/docker.js.map +1 -0
- package/dist/doctor.d.ts +2 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +51 -0
- package/dist/doctor.js.map +1 -1
- package/dist/env-file.d.ts +45 -0
- package/dist/env-file.d.ts.map +1 -0
- package/dist/env-file.js +200 -0
- package/dist/env-file.js.map +1 -0
- package/dist/env-schema.d.ts +28 -0
- package/dist/env-schema.d.ts.map +1 -0
- package/dist/env-schema.js +497 -0
- package/dist/env-schema.js.map +1 -0
- package/dist/guards.d.ts +40 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +159 -0
- package/dist/guards.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +12 -3
- package/dist/parser.js.map +1 -1
- package/dist/project-config.js +2 -2
- package/dist/prompt.d.ts +81 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +379 -0
- package/dist/prompt.js.map +1 -0
- package/dist/redeploy.d.ts +109 -0
- package/dist/redeploy.d.ts.map +1 -0
- package/dist/redeploy.js +363 -0
- package/dist/redeploy.js.map +1 -0
- package/dist/scaffold-docs.d.ts +25 -6
- package/dist/scaffold-docs.d.ts.map +1 -1
- package/dist/scaffold-docs.js +711 -33
- package/dist/scaffold-docs.js.map +1 -1
- package/dist/scaffold.d.ts +17 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +77 -14
- package/dist/scaffold.js.map +1 -1
- package/dist/theme-build.d.ts +35 -0
- package/dist/theme-build.d.ts.map +1 -0
- package/dist/theme-build.js +86 -0
- package/dist/theme-build.js.map +1 -0
- package/dist/update.d.ts +51 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +210 -0
- package/dist/update.js.map +1 -0
- package/package.json +7 -7
package/dist/redeploy.js
ADDED
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
// @oktis-works/cms - `okcms redeploy` (F4)
|
|
2
|
+
//
|
|
3
|
+
// Instalar plugin/tema no host ainda não muda o que está no ar:
|
|
4
|
+
//
|
|
5
|
+
// plugins e temas entram na imagem pelo `COPY . .` do Dockerfile (o
|
|
6
|
+
// `.dockerignore` os preserva de propósito) — sem rebuild, o container segue
|
|
7
|
+
// servindo a cópia antiga;
|
|
8
|
+
//
|
|
9
|
+
// `themes/<n>/dist/theme.css` só existe se o build de estilo rodou no host:
|
|
10
|
+
// o web linka esse arquivo pronto, ele não é compilado dentro do container;
|
|
11
|
+
//
|
|
12
|
+
// um plugin que mexe no banco traz SQL em `plugins/<n>/migrations/`, que
|
|
13
|
+
// precisa chegar em `migrations/` para o `db:migrate` aplicá-lo — o runner
|
|
14
|
+
// só lê UM diretório e classifica como PLUGIN todo owner que não é `core`
|
|
15
|
+
// (`V###__owner__nome.sql`, rastreado por `owner:version`).
|
|
16
|
+
//
|
|
17
|
+
// Redeploy = preparar no host (stage do SQL + build dos temas) e então
|
|
18
|
+
// delegar a troca ao mesmo blue/green do `okcms update --mode deploy`, só que
|
|
19
|
+
// sem `bun add`: o que mudou é conteúdo de extensão, não versão de pacote.
|
|
20
|
+
//
|
|
21
|
+
// Ordem e garantias são as do deploy normal: falha no preparo = nada foi
|
|
22
|
+
// buildado nem trocado; falha no deploy = rollback e a lane que estava
|
|
23
|
+
// servindo continua servindo.
|
|
24
|
+
import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync } from 'node:fs';
|
|
25
|
+
import { dirname, join } from 'node:path';
|
|
26
|
+
import { deployBlueGreen } from './bluegreen.js';
|
|
27
|
+
import { assertHostOnly } from './guards.js';
|
|
28
|
+
import { loadProjectConfig } from './project-config.js';
|
|
29
|
+
import { Prompt } from './prompt.js';
|
|
30
|
+
import { buildThemeStylesOnDisk, resolveThemeStyle, themeManifestPath, } from './theme-build.js';
|
|
31
|
+
import { resolveDeployChoices } from './update.js';
|
|
32
|
+
/**
|
|
33
|
+
* Mesmo padrão de `parseMigrationName` (packages/database): qualquer `.sql`
|
|
34
|
+
* fora dele derruba `loadMigrationsFromDir` para TODAS as migrations do
|
|
35
|
+
* diretório — por isso nada fora do padrão é copiado para `migrations/`.
|
|
36
|
+
*/
|
|
37
|
+
export const MIGRATION_FILENAME = /^V\d+__\w+__.+\.sql$/;
|
|
38
|
+
function listDirs(dir) {
|
|
39
|
+
if (!existsSync(dir))
|
|
40
|
+
return [];
|
|
41
|
+
return readdirSync(dir, { withFileTypes: true })
|
|
42
|
+
.filter((entry) => entry.isDirectory())
|
|
43
|
+
.map((entry) => entry.name)
|
|
44
|
+
.sort();
|
|
45
|
+
}
|
|
46
|
+
function listSql(dir) {
|
|
47
|
+
if (!existsSync(dir))
|
|
48
|
+
return [];
|
|
49
|
+
return readdirSync(dir)
|
|
50
|
+
.filter((file) => file.endsWith('.sql'))
|
|
51
|
+
.sort();
|
|
52
|
+
}
|
|
53
|
+
function sameContent(a, b) {
|
|
54
|
+
try {
|
|
55
|
+
return readFileSync(a, 'utf-8') === readFileSync(b, 'utf-8');
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Lê o estado de plugins/temas e devolve o que o redeploy faria. Só lê —
|
|
63
|
+
* nenhum byte é escrito aqui, o que torna `--dry-run` e os testes triviais.
|
|
64
|
+
*/
|
|
65
|
+
export function planRedeploy(opts = {}) {
|
|
66
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
67
|
+
const config = loadProjectConfig(cwd);
|
|
68
|
+
const pluginsDir = join(cwd, config.pluginsDir);
|
|
69
|
+
const themesDir = join(cwd, config.themesDir);
|
|
70
|
+
const migrationsDir = opts.migrationsDir ?? join(cwd, 'migrations');
|
|
71
|
+
const plugins = listDirs(pluginsDir);
|
|
72
|
+
const themes = listDirs(themesDir);
|
|
73
|
+
// ---- migrations de plugin ------------------------------------------------
|
|
74
|
+
const migrations = [];
|
|
75
|
+
const scopedPlugins = opts.plugin ? plugins.filter((name) => name === opts.plugin) : plugins;
|
|
76
|
+
for (const plugin of scopedPlugins) {
|
|
77
|
+
const dir = join(pluginsDir, plugin, 'migrations');
|
|
78
|
+
for (const file of listSql(dir)) {
|
|
79
|
+
const source = join(dir, file);
|
|
80
|
+
const target = join(migrationsDir, file);
|
|
81
|
+
let status;
|
|
82
|
+
if (!MIGRATION_FILENAME.test(file))
|
|
83
|
+
status = 'invalid';
|
|
84
|
+
else if (!existsSync(target))
|
|
85
|
+
status = 'new';
|
|
86
|
+
else if (sameContent(source, target))
|
|
87
|
+
status = 'staged';
|
|
88
|
+
else
|
|
89
|
+
status = 'conflict';
|
|
90
|
+
migrations.push({ plugin, file, source, target, status });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// ---- build de tema -------------------------------------------------------
|
|
94
|
+
const themeBuilds = [];
|
|
95
|
+
const scopedThemes = opts.theme ? themes.filter((name) => name === opts.theme) : themes;
|
|
96
|
+
for (const theme of scopedThemes) {
|
|
97
|
+
const manifestPath = themeManifestPath(themesDir, theme);
|
|
98
|
+
if (!manifestPath) {
|
|
99
|
+
themeBuilds.push({
|
|
100
|
+
theme,
|
|
101
|
+
manifestPath: null,
|
|
102
|
+
engine: '-',
|
|
103
|
+
output: 'dist/theme.css',
|
|
104
|
+
entry: null,
|
|
105
|
+
status: 'missing-manifest',
|
|
106
|
+
problems: [],
|
|
107
|
+
});
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const resolved = resolveThemeStyle(themesDir, theme);
|
|
111
|
+
if (!resolved) {
|
|
112
|
+
themeBuilds.push({
|
|
113
|
+
theme,
|
|
114
|
+
manifestPath,
|
|
115
|
+
engine: '-',
|
|
116
|
+
output: 'dist/theme.css',
|
|
117
|
+
entry: null,
|
|
118
|
+
status: 'invalid-manifest',
|
|
119
|
+
problems: ['manifesto não é um JSON válido'],
|
|
120
|
+
});
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
// O ThemeLoader recusa manifesto sem name/version — buildar seria trabalho
|
|
124
|
+
// jogado fora.
|
|
125
|
+
const problems = [];
|
|
126
|
+
if (typeof resolved.manifest['name'] !== 'string' ||
|
|
127
|
+
typeof resolved.manifest['version'] !== 'string') {
|
|
128
|
+
problems.push('manifesto sem "name" e/ou "version"');
|
|
129
|
+
}
|
|
130
|
+
problems.push(...resolved.report.errors);
|
|
131
|
+
const { report } = resolved;
|
|
132
|
+
themeBuilds.push({
|
|
133
|
+
theme,
|
|
134
|
+
manifestPath,
|
|
135
|
+
engine: report.engine,
|
|
136
|
+
output: report.output,
|
|
137
|
+
entry: report.entry,
|
|
138
|
+
status: problems.length > 0 ? 'invalid-manifest' : report.entry ? 'build' : 'no-entry',
|
|
139
|
+
problems,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
// ---- higiene do diretório canônico de migrations --------------------------
|
|
143
|
+
const invalidExisting = listSql(migrationsDir).filter((file) => !MIGRATION_FILENAME.test(file));
|
|
144
|
+
return { plugins, themes, migrations, themeBuilds, invalidExisting };
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Copia o SQL de plugin para `migrations/` (o único diretório que o runner
|
|
148
|
+
* lê). Idempotente: arquivo idêntico não é tocado, arquivo divergente é
|
|
149
|
+
* PRESERVADO — `migrations/` pertence ao operador e a versão aplicada no
|
|
150
|
+
* banco já tem checksum registrado.
|
|
151
|
+
*/
|
|
152
|
+
export function stagePluginMigrations(plan) {
|
|
153
|
+
const result = { copied: [], already: [], conflicts: [], invalid: [] };
|
|
154
|
+
for (const entry of plan.migrations) {
|
|
155
|
+
if (entry.status === 'invalid') {
|
|
156
|
+
result.invalid.push(`${entry.plugin}: ${entry.file}`);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (entry.status === 'conflict') {
|
|
160
|
+
result.conflicts.push(`${entry.plugin}: ${entry.file}`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (entry.status === 'staged') {
|
|
164
|
+
result.already.push(`${entry.plugin}: ${entry.file}`);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
mkdirSync(dirname(entry.target), { recursive: true });
|
|
168
|
+
copyFileSync(entry.source, entry.target);
|
|
169
|
+
result.copied.push(`${entry.plugin}: ${entry.file}`);
|
|
170
|
+
}
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
/** Linhas do resumo do redeploy — puras, para `--dry-run` e para os testes. */
|
|
174
|
+
export function renderPlan(plan, opts = {}) {
|
|
175
|
+
const lines = [];
|
|
176
|
+
lines.push(`plugins: ${plan.plugins.length > 0 ? plan.plugins.join(', ') : 'nenhum'}`);
|
|
177
|
+
lines.push(`temas: ${plan.themes.length > 0 ? plan.themes.join(', ') : 'nenhum'}`);
|
|
178
|
+
if (opts.skipMigrations) {
|
|
179
|
+
lines.push('migrations de plugin: puladas (--skip-migrations)');
|
|
180
|
+
}
|
|
181
|
+
else if (plan.migrations.length === 0) {
|
|
182
|
+
lines.push('migrations de plugin: nenhuma');
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
lines.push('migrations de plugin (plugins/*/migrations → migrations/):');
|
|
186
|
+
for (const entry of plan.migrations) {
|
|
187
|
+
const who = `${entry.plugin}: ${entry.file}`;
|
|
188
|
+
if (entry.status === 'new')
|
|
189
|
+
lines.push(` + ${who} → migrations/ (novo)`);
|
|
190
|
+
else if (entry.status === 'staged')
|
|
191
|
+
lines.push(` = ${who} (já em migrations/)`);
|
|
192
|
+
else if (entry.status === 'conflict')
|
|
193
|
+
lines.push(` ! ${who} difere do que já está em migrations/ — mantido o do projeto`);
|
|
194
|
+
else
|
|
195
|
+
lines.push(` ! ${who} fora do padrão V###__owner__nome.sql — não copiado`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (opts.skipThemeBuild) {
|
|
199
|
+
lines.push('build de tema: pulado (--skip-theme-build)');
|
|
200
|
+
}
|
|
201
|
+
else if (plan.themeBuilds.length === 0) {
|
|
202
|
+
lines.push('build de tema: nenhum tema instalado');
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
lines.push('build de tema:');
|
|
206
|
+
for (const entry of plan.themeBuilds) {
|
|
207
|
+
if (entry.status === 'build') {
|
|
208
|
+
lines.push(` ✓ ${entry.theme} — ${entry.engine} → ${entry.output}`);
|
|
209
|
+
}
|
|
210
|
+
else if (entry.status === 'no-entry') {
|
|
211
|
+
lines.push(` - ${entry.theme} — sem entrada de estilo (${entry.engine})`);
|
|
212
|
+
}
|
|
213
|
+
else if (entry.status === 'missing-manifest') {
|
|
214
|
+
lines.push(` ! ${entry.theme} — sem theme.json`);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
lines.push(` ! ${entry.theme} — manifest recusado: ${entry.problems.join('; ')}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
for (const file of plan.invalidExisting) {
|
|
222
|
+
lines.push(` ! migrations/${file} fora do padrão V###__owner__nome.sql — quebra todo db:migrate`);
|
|
223
|
+
}
|
|
224
|
+
lines.push('ordem: stage no host → build da imagem → migrations → health → swap → worker → down');
|
|
225
|
+
return lines;
|
|
226
|
+
}
|
|
227
|
+
export async function runRedeploy(opts = {}) {
|
|
228
|
+
const prompt = opts.prompt ?? new Prompt();
|
|
229
|
+
const ownsPrompt = opts.prompt === undefined;
|
|
230
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
231
|
+
const write = opts.log ?? ((message) => prompt.write(message));
|
|
232
|
+
// Mesmo motivo do `okcms update`: dentro de um container a CLI viraria um
|
|
233
|
+
// executor de `bun add` na rede do banco, com o .env na mão.
|
|
234
|
+
const guard = assertHostOnly('okcms redeploy', { force: opts.force, probe: opts.probe });
|
|
235
|
+
if (!guard.ok) {
|
|
236
|
+
console.error(guard.message);
|
|
237
|
+
if (ownsPrompt)
|
|
238
|
+
prompt.close();
|
|
239
|
+
return 1;
|
|
240
|
+
}
|
|
241
|
+
const onInterrupt = () => {
|
|
242
|
+
prompt.write(`\n interrompido — nenhuma troca de lane em andamento foi registrada.\n`);
|
|
243
|
+
process.exit(130);
|
|
244
|
+
};
|
|
245
|
+
process.once('SIGINT', onInterrupt);
|
|
246
|
+
try {
|
|
247
|
+
const plan = planRedeploy({ cwd, plugin: opts.plugin, theme: opts.theme });
|
|
248
|
+
const config = loadProjectConfig(cwd);
|
|
249
|
+
const themesDir = join(cwd, config.themesDir);
|
|
250
|
+
if (opts.plugin && !plan.plugins.includes(opts.plugin)) {
|
|
251
|
+
prompt.error(`plugin não encontrado: ${opts.plugin}`);
|
|
252
|
+
prompt.info(`instalados: ${plan.plugins.join(', ') || 'nenhum'}`);
|
|
253
|
+
return 1;
|
|
254
|
+
}
|
|
255
|
+
if (opts.theme && !plan.themes.includes(opts.theme)) {
|
|
256
|
+
prompt.error(`tema não encontrado: ${opts.theme}`);
|
|
257
|
+
prompt.info(`instalados: ${plan.themes.join(', ') || 'nenhum'}`);
|
|
258
|
+
return 1;
|
|
259
|
+
}
|
|
260
|
+
prompt.heading('OkCMS redeploy');
|
|
261
|
+
for (const line of renderPlan(plan, opts))
|
|
262
|
+
write(`${line}\n`);
|
|
263
|
+
// `.sql` inválido em migrations/ derruba o `db:migrate` do passo 5 do
|
|
264
|
+
// deploy. Falhar aqui é melhor que falhar no meio do blue/green.
|
|
265
|
+
if (plan.invalidExisting.length > 0) {
|
|
266
|
+
prompt.error(`${plan.invalidExisting.length} arquivo(s) em migrations/ fora do padrão ` +
|
|
267
|
+
`V###__owner__nome.sql — o db:migrate falharia. Renomeie ou remova.`);
|
|
268
|
+
return 1;
|
|
269
|
+
}
|
|
270
|
+
if (opts.dryRun) {
|
|
271
|
+
prompt.info('dry-run: nada foi executado.');
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
274
|
+
const choices = await resolveDeployChoices(opts, prompt);
|
|
275
|
+
const interactive = prompt.interactive && opts.yes !== true;
|
|
276
|
+
if (interactive) {
|
|
277
|
+
prompt.heading('Resumo do redeploy');
|
|
278
|
+
prompt.info(`stage: ${plan.migrations.filter((m) => m.status === 'new').length} migration(s) de plugin`);
|
|
279
|
+
prompt.info(`build de estilo: ${plan.themeBuilds.filter((t) => t.status === 'build').length} tema(s)`);
|
|
280
|
+
prompt.info(`imagem: ${choices.noCache ? 'sem cache' : 'com cache de camadas'}`);
|
|
281
|
+
prompt.info(`órfãos da lane antiga: ${choices.removeOrphans ? 'remover' : 'manter'}`);
|
|
282
|
+
const confirmed = await prompt.confirm('Iniciar redeploy?', { defaultValue: true });
|
|
283
|
+
if (!confirmed) {
|
|
284
|
+
prompt.warn('cancelado — nada foi executado.');
|
|
285
|
+
return 0;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// ---- stage de migrations ----------------------------------------------
|
|
289
|
+
if (opts.skipMigrations) {
|
|
290
|
+
const pending = plan.migrations.filter((m) => m.status === 'new').length;
|
|
291
|
+
if (pending > 0) {
|
|
292
|
+
prompt.warn(`${pending} migration(s) de plugin não copiadas (--skip-migrations).`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
const staged = stagePluginMigrations(plan);
|
|
297
|
+
for (const item of staged.copied)
|
|
298
|
+
write(` + migrations: ${item}\n`);
|
|
299
|
+
if (staged.copied.length > 0) {
|
|
300
|
+
prompt.success(`${staged.copied.length} migration(s) de plugin em migrations/`);
|
|
301
|
+
}
|
|
302
|
+
for (const item of staged.conflicts)
|
|
303
|
+
prompt.warn(`conflito (mantido o do projeto): ${item}`);
|
|
304
|
+
for (const item of staged.invalid)
|
|
305
|
+
prompt.warn(`fora do padrão, não copiada: ${item}`);
|
|
306
|
+
}
|
|
307
|
+
// ---- build de estilo ---------------------------------------------------
|
|
308
|
+
const toBuild = plan.themeBuilds.filter((entry) => entry.status === 'build');
|
|
309
|
+
if (opts.skipThemeBuild) {
|
|
310
|
+
if (toBuild.length > 0) {
|
|
311
|
+
prompt.warn(`${toBuild.length} tema(s) sem build de estilo (--skip-theme-build).`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
for (const entry of toBuild) {
|
|
316
|
+
try {
|
|
317
|
+
const outcome = await buildThemeStylesOnDisk(themesDir, entry.theme);
|
|
318
|
+
for (const warning of outcome.warnings)
|
|
319
|
+
prompt.warn(`${entry.theme}: ${warning}`);
|
|
320
|
+
write(` ✓ tema ${outcome.theme}: ${outcome.engine} → ${outcome.output} ` +
|
|
321
|
+
`(${outcome.bytes} bytes, isolated=${outcome.isolated})\n`);
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
prompt.error(`build do tema ${entry.theme} falhou: ${error instanceof Error ? error.message : String(error)}`);
|
|
325
|
+
prompt.warn('nada foi buildado nem trocado — a lane atual segue no ar.');
|
|
326
|
+
return 1;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
for (const entry of plan.themeBuilds) {
|
|
330
|
+
if (entry.status === 'missing-manifest') {
|
|
331
|
+
prompt.warn(`${entry.theme}: sem theme.json — ignorado.`);
|
|
332
|
+
}
|
|
333
|
+
else if (entry.status === 'invalid-manifest') {
|
|
334
|
+
prompt.warn(`${entry.theme}: manifest recusado — ${entry.problems.join('; ')}`);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// ---- deploy blue/green -------------------------------------------------
|
|
339
|
+
const result = await deployBlueGreen({
|
|
340
|
+
cwd,
|
|
341
|
+
runner: opts.runner,
|
|
342
|
+
choices,
|
|
343
|
+
// Sem `bun add`: o que mudou é conteúdo de extensão, não versão de
|
|
344
|
+
// pacote. Só instala tudo quando o host nem tem node_modules — sem ele
|
|
345
|
+
// o `db:migrate` do passo 5 não tem como rodar.
|
|
346
|
+
packages: [],
|
|
347
|
+
installAll: !existsSync(join(cwd, 'node_modules', '@oktis-works')),
|
|
348
|
+
log: write,
|
|
349
|
+
warn: write,
|
|
350
|
+
});
|
|
351
|
+
if (result.ok) {
|
|
352
|
+
prompt.success(`redeploy concluído na lane ${result.lane}` +
|
|
353
|
+
(result.previousLane ? ` (lane anterior: ${result.previousLane})` : ''));
|
|
354
|
+
}
|
|
355
|
+
return result.ok ? 0 : 1;
|
|
356
|
+
}
|
|
357
|
+
finally {
|
|
358
|
+
process.removeListener('SIGINT', onInterrupt);
|
|
359
|
+
if (ownsPrompt)
|
|
360
|
+
prompt.close();
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
//# sourceMappingURL=redeploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redeploy.js","sourceRoot":"","sources":["../src/redeploy.ts"],"names":[],"mappings":"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"}
|
package/dist/scaffold-docs.d.ts
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export
|
|
3
|
-
/**
|
|
4
|
-
export declare const
|
|
5
|
-
/**
|
|
6
|
-
|
|
1
|
+
/** Língua da documentação gerada no scaffold. */
|
|
2
|
+
export type DocsLang = 'en' | 'pt';
|
|
3
|
+
/** Línguas suportadas (ordem = ordem do menu do init). */
|
|
4
|
+
export declare const DOCS_LANGS: DocsLang[];
|
|
5
|
+
/**
|
|
6
|
+
* Default: inglês — é o que o Enter do prompt escolhe e o único valor em
|
|
7
|
+
* modo não-interativo (CI/scripts), onde o prompt nunca aparece.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_DOCS_LANG: DocsLang;
|
|
10
|
+
/**
|
|
11
|
+
* Normaliza o valor de `--lang`. Devolve `null` para valor desconhecido (ou
|
|
12
|
+
* vazio): o chamador decide entre erro (flag explícita) e default (flag ausente).
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseDocsLang(value: string | undefined | null): DocsLang | null;
|
|
15
|
+
/** Rótulo legível da língua (mensagens da CLI). */
|
|
16
|
+
export declare function docsLangLabel(lang: DocsLang): string;
|
|
17
|
+
/**
|
|
18
|
+
* README.md do projeto scaffoldado, na língua escolhida no \`okcms init\`.
|
|
19
|
+
* Default \`en\` (Enter do prompt e único valor em modo não-interativo).
|
|
20
|
+
*/
|
|
21
|
+
export declare function projectReadme(projectName: string, lang?: DocsLang): string;
|
|
22
|
+
/** PLUGIN.md na língua pedida. */
|
|
23
|
+
export declare function pluginDoc(lang?: DocsLang): string;
|
|
24
|
+
/** THEME.md na língua pedida. */
|
|
25
|
+
export declare function themeDoc(lang?: DocsLang): string;
|
|
7
26
|
//# sourceMappingURL=scaffold-docs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-docs.d.ts","sourceRoot":"","sources":["../src/scaffold-docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scaffold-docs.d.ts","sourceRoot":"","sources":["../src/scaffold-docs.ts"],"names":[],"mappings":"AAeA,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,0DAA0D;AAC1D,eAAO,MAAM,UAAU,EAAE,QAAQ,EAAiB,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAe,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAW/E;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEpD;AAsgCD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,QAA4B,GACjC,MAAM,CAER;AAED,kCAAkC;AAClC,wBAAgB,SAAS,CAAC,IAAI,GAAE,QAA4B,GAAG,MAAM,CAEpE;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CAAC,IAAI,GAAE,QAA4B,GAAG,MAAM,CAEnE"}
|