@oktis-works/cms 0.6.4 → 0.6.5
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/dev.d.ts +34 -0
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +173 -6
- package/dist/dev.js.map +1 -1
- package/dist/scaffold-docs.d.ts.map +1 -1
- package/dist/scaffold-docs.js +14 -7
- package/dist/scaffold-docs.js.map +1 -1
- package/package.json +1 -1
package/dist/dev.d.ts
CHANGED
|
@@ -44,7 +44,41 @@ export interface DevOptions {
|
|
|
44
44
|
probe?: ContainerProbe;
|
|
45
45
|
hooks?: DevHooks;
|
|
46
46
|
log?: (message: string) => void;
|
|
47
|
+
/** Sondas/timeouts da infra (tests). */
|
|
48
|
+
infraWait?: InfraWaitOptions;
|
|
47
49
|
}
|
|
50
|
+
/** TCP reachável? Usado para esperar o postgres e checar o redis do host. */
|
|
51
|
+
export declare const defaultTcpProbe: (host: string, port: number, timeoutMs?: number) => Promise<boolean>;
|
|
52
|
+
export interface InfraWaitOptions {
|
|
53
|
+
tcpProbe?: (host: string, port: number, timeoutMs?: number) => Promise<boolean>;
|
|
54
|
+
sleep?: (ms: number) => Promise<void>;
|
|
55
|
+
/** Timeout do postgres (ms). Default 60s — primeiro boot do volume é lento. */
|
|
56
|
+
postgresWaitMs?: number;
|
|
57
|
+
/** Timeout do redis no host (ms). Default 30s. */
|
|
58
|
+
redisWaitMs?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Aplica o override (recria o serviço redis) quando o probe falha?
|
|
61
|
+
* `runDev` liga só quando a infra subiu agora ou já está rodando — quem
|
|
62
|
+
* recusou o passo de infra não tem serviço recriado às costas.
|
|
63
|
+
*/
|
|
64
|
+
apply?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Espera o Postgres do compose aceitar conexões — `pg_isready` no container
|
|
68
|
+
* (TCP connect não basta: durante o startup o socket aceita e o Postgres
|
|
69
|
+
* responde "the database system is starting up"). Se o container não existe
|
|
70
|
+
* (Postgres externo), cai no probe TCP do host.
|
|
71
|
+
*/
|
|
72
|
+
export declare function waitForPostgresReady(runner: Runner, record: Record<string, string>, opts?: InfraWaitOptions): Promise<boolean>;
|
|
73
|
+
/** Override SOLO de dev: publica o redis em loopback para os apps de HOST. */
|
|
74
|
+
export declare const DEV_INFRA_OVERRIDE = "# Written by `okcms dev` \u2014 publishes Redis on loopback (127.0.0.1) so the\n# HOST processes (api/admin/web/worker from `okcms start`) can reach it.\n# The deploy re-runs compose WITHOUT this file: Redis goes back to\n# network-only (containers reach it as `redis` on okcms-net). The named\n# volume okcms-redis-data is untouched by both paths.\n#\n# Safe to delete; `okcms dev` rewrites it on the next run.\nservices:\n redis:\n ports:\n - \"127.0.0.1:${REDIS_PORT:-6379}:6379\"\n";
|
|
75
|
+
/**
|
|
76
|
+
* Garante o Redis alcançável do host quando o .env aponta para
|
|
77
|
+
* localhost/127.0.0.1: o compose de infra NÃO publica a 6379 (por design de
|
|
78
|
+
* produção), então o dev recria só o serviço redis com um override de dev
|
|
79
|
+
* (loopback) — volume preservado, deploy volta ao normal sem o override.
|
|
80
|
+
*/
|
|
81
|
+
export declare function ensureRedisOnHost(prompt: Prompt, runner: Runner, cwd: string, record: Record<string, string>, opts?: InfraWaitOptions): Promise<void>;
|
|
48
82
|
/**
|
|
49
83
|
* Completa apenas as chaves ausentes/vazias: required sem valor recebe
|
|
50
84
|
* segredo gerado; o resto recebe o default do schema. Respeita `when`
|
package/dist/dev.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.js
CHANGED
|
@@ -5,12 +5,20 @@
|
|
|
5
5
|
// 1. `.env` completa o que falta (segredos gerados, valores existentes
|
|
6
6
|
// NUNCA são tocados);
|
|
7
7
|
// 2. infra sobe o compose de infra do projeto (postgres + redis) —
|
|
8
|
-
// a MESMA infra que os alvos de `okcms deploy` reutilizam
|
|
8
|
+
// a MESMA infra que os alvos de `okcms deploy` reutilizam —
|
|
9
|
+
// e ESPERA o postgres aceitar conexões (pg_isready) antes
|
|
10
|
+
// de qualquer migration. O compose de infra não publica o
|
|
11
|
+
// redis no host (por design de produção); para os apps de
|
|
12
|
+
// HOST funcionarem, o dev escreve um override SOLO de dev
|
|
13
|
+
// em `.data/dev-infra.override.yml` que publica
|
|
14
|
+
// `127.0.0.1:6379` — o deploy recria o serviço sem ele
|
|
15
|
+
// (a porta some sozinha, o volume fica intacto);
|
|
9
16
|
// 3. banco schema core + seed idempotente + migrations de `./migrations`
|
|
10
17
|
// (o mesmo caminho do `okcms db:migrate`);
|
|
11
18
|
// 4. usuário se não existe NINGUÉM no banco, cria o primeiro admin
|
|
12
19
|
// (SUPER_ADMIN) pelo mesmo caminho do `okcms user:create`;
|
|
13
|
-
// 5. apps `okcms start` (api · admin · web · worker no host)
|
|
20
|
+
// 5. apps `okcms start` (api · admin · web · worker no host) e os
|
|
21
|
+
// endereços finais impressos (API/Admin/Web no localhost).
|
|
14
22
|
//
|
|
15
23
|
// Cada etapa é reexecutável — rodar de novo depois de um
|
|
16
24
|
// `docker compose down -v` recria tudo na hora.
|
|
@@ -32,16 +40,123 @@
|
|
|
32
40
|
// Fora de TTY o fluxo completo exige `--yes` (mesma política do
|
|
33
41
|
// `okcms update`); o primeiro usuário em scripts vem de
|
|
34
42
|
// `--email/--name/--password`.
|
|
35
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
43
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
44
|
+
import { connect } from 'node:net';
|
|
36
45
|
import { join } from 'node:path';
|
|
37
|
-
import { COMPOSE_INFRA_FILE, composeAvailable, defaultRunner, dockerAvailable, infraCompose, } from './docker.js';
|
|
46
|
+
import { COMPOSE_INFRA_FILE, INFRA_PROJECT, composeAvailable, defaultRunner, dockerAvailable, infraCompose, } from './docker.js';
|
|
38
47
|
import { EnvFile, loadEnvFile } from './env-file.js';
|
|
39
48
|
import { ENV_FIELDS } from './env-schema.js';
|
|
40
49
|
import { assertHostOnly, generateSecret } from './guards.js';
|
|
50
|
+
import { loadProjectConfig } from './project-config.js';
|
|
41
51
|
import { Prompt } from './prompt.js';
|
|
42
52
|
const isEmail = (value) => /.+@.+\..+/.test(value) ? null : 'invalid email';
|
|
43
53
|
const nonEmpty = (value) => value.trim().length > 0 ? null : 'required';
|
|
44
54
|
const min8 = (value) => value.length >= 8 ? null : 'min 8 characters';
|
|
55
|
+
const defaultSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
56
|
+
/** TCP reachável? Usado para esperar o postgres e checar o redis do host. */
|
|
57
|
+
export const defaultTcpProbe = (host, port, timeoutMs = 2000) => new Promise((resolve) => {
|
|
58
|
+
const socket = connect({ host, port, timeout: timeoutMs });
|
|
59
|
+
const settle = (ok) => {
|
|
60
|
+
socket.destroy();
|
|
61
|
+
resolve(ok);
|
|
62
|
+
};
|
|
63
|
+
socket.once('connect', () => settle(true));
|
|
64
|
+
socket.once('error', () => settle(false));
|
|
65
|
+
socket.once('timeout', () => settle(false));
|
|
66
|
+
});
|
|
67
|
+
/**
|
|
68
|
+
* Espera o Postgres do compose aceitar conexões — `pg_isready` no container
|
|
69
|
+
* (TCP connect não basta: durante o startup o socket aceita e o Postgres
|
|
70
|
+
* responde "the database system is starting up"). Se o container não existe
|
|
71
|
+
* (Postgres externo), cai no probe TCP do host.
|
|
72
|
+
*/
|
|
73
|
+
export async function waitForPostgresReady(runner, record, opts = {}) {
|
|
74
|
+
const sleep = opts.sleep ?? defaultSleep;
|
|
75
|
+
const probe = opts.tcpProbe ?? defaultTcpProbe;
|
|
76
|
+
const timeoutMs = opts.postgresWaitMs ?? 60_000;
|
|
77
|
+
const deadline = Date.now() + timeoutMs;
|
|
78
|
+
const user = record['DB_USER'] || 'postgres';
|
|
79
|
+
const db = record['DB_NAME'] || 'okcms';
|
|
80
|
+
const hostPort = Number(record['DB_HOST_PORT'] || record['DB_PORT'] || 5432);
|
|
81
|
+
for (;;) {
|
|
82
|
+
const result = runner('docker', ['exec', 'okcms-postgres', 'pg_isready', '-U', user, '-d', db], { timeoutMs: 5_000 });
|
|
83
|
+
if (result.ok)
|
|
84
|
+
return true;
|
|
85
|
+
if (/No such container/i.test(result.stderr)) {
|
|
86
|
+
return probe('127.0.0.1', hostPort);
|
|
87
|
+
}
|
|
88
|
+
if (Date.now() >= deadline)
|
|
89
|
+
return false;
|
|
90
|
+
await sleep(2_000);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/** Override SOLO de dev: publica o redis em loopback para os apps de HOST. */
|
|
94
|
+
export const DEV_INFRA_OVERRIDE = `# Written by \`okcms dev\` — publishes Redis on loopback (127.0.0.1) so the
|
|
95
|
+
# HOST processes (api/admin/web/worker from \`okcms start\`) can reach it.
|
|
96
|
+
# The deploy re-runs compose WITHOUT this file: Redis goes back to
|
|
97
|
+
# network-only (containers reach it as \`redis\` on okcms-net). The named
|
|
98
|
+
# volume okcms-redis-data is untouched by both paths.
|
|
99
|
+
#
|
|
100
|
+
# Safe to delete; \`okcms dev\` rewrites it on the next run.
|
|
101
|
+
services:
|
|
102
|
+
redis:
|
|
103
|
+
ports:
|
|
104
|
+
- "127.0.0.1:\${REDIS_PORT:-6379}:6379"
|
|
105
|
+
`;
|
|
106
|
+
/**
|
|
107
|
+
* Garante o Redis alcançável do host quando o .env aponta para
|
|
108
|
+
* localhost/127.0.0.1: o compose de infra NÃO publica a 6379 (por design de
|
|
109
|
+
* produção), então o dev recria só o serviço redis com um override de dev
|
|
110
|
+
* (loopback) — volume preservado, deploy volta ao normal sem o override.
|
|
111
|
+
*/
|
|
112
|
+
export async function ensureRedisOnHost(prompt, runner, cwd, record, opts = {}) {
|
|
113
|
+
const host = (record['REDIS_HOST'] ?? 'localhost').trim() || 'localhost';
|
|
114
|
+
if (host === 'disabled')
|
|
115
|
+
return;
|
|
116
|
+
if (!['localhost', '127.0.0.1', '::1'].includes(host))
|
|
117
|
+
return; // redis externo
|
|
118
|
+
const port = Number(record['REDIS_PORT'] || 6379);
|
|
119
|
+
const probe = opts.tcpProbe ?? defaultTcpProbe;
|
|
120
|
+
const sleep = opts.sleep ?? defaultSleep;
|
|
121
|
+
const timeoutMs = opts.redisWaitMs ?? 30_000;
|
|
122
|
+
if (await probe(host, port))
|
|
123
|
+
return; // já alcançável (compose novo ou override anterior)
|
|
124
|
+
const composeFile = join(cwd, COMPOSE_INFRA_FILE);
|
|
125
|
+
if (opts.apply === false ||
|
|
126
|
+
!dockerAvailable(runner) ||
|
|
127
|
+
!composeAvailable(runner).ok ||
|
|
128
|
+
!existsSync(composeFile)) {
|
|
129
|
+
prompt.warn(`redis not reachable at ${host}:${port} — worker queues will not connect`);
|
|
130
|
+
prompt.info('start the infrastructure (`okcms dev` → Yes), or set REDIS_HOST=disabled to run without queues (dev only)');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
prompt.info(`redis not published on the host — applying dev override (127.0.0.1:${port})`);
|
|
134
|
+
const overridePath = join('.data', 'dev-infra.override.yml');
|
|
135
|
+
mkdirSync(join(cwd, '.data'), { recursive: true });
|
|
136
|
+
writeFileSync(join(cwd, overridePath), DEV_INFRA_OVERRIDE, 'utf-8');
|
|
137
|
+
const result = runner('docker', [
|
|
138
|
+
'compose', '-p', INFRA_PROJECT,
|
|
139
|
+
'-f', COMPOSE_INFRA_FILE,
|
|
140
|
+
'-f', overridePath,
|
|
141
|
+
'up', '-d', 'redis',
|
|
142
|
+
], { cwd, inherit: true, timeoutMs: 120_000 });
|
|
143
|
+
if (!result.ok) {
|
|
144
|
+
prompt.warn('failed to apply the redis dev override');
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const deadline = Date.now() + timeoutMs;
|
|
148
|
+
for (;;) {
|
|
149
|
+
if (await probe(host, port)) {
|
|
150
|
+
prompt.success(`redis is reachable at ${host}:${port}`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (Date.now() >= deadline) {
|
|
154
|
+
prompt.warn(`redis still not reachable at ${host}:${port} — worker queues will retry`);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
await sleep(1_000);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
45
160
|
/**
|
|
46
161
|
* Completa apenas as chaves ausentes/vazias: required sem valor recebe
|
|
47
162
|
* segredo gerado; o resto recebe o default do schema. Respeita `when`
|
|
@@ -135,6 +250,8 @@ export async function runDev(opts) {
|
|
|
135
250
|
prompt.success('.env is ready');
|
|
136
251
|
}
|
|
137
252
|
// ---- 2. infra (compose do projeto — o mesmo que o deploy reutiliza) ------
|
|
253
|
+
const record = env.toRecord();
|
|
254
|
+
let startedInfra = false;
|
|
138
255
|
if (opts.noInfra !== true) {
|
|
139
256
|
const composeFile = join(cwd, COMPOSE_INFRA_FILE);
|
|
140
257
|
if (dockerAvailable(runner) && composeAvailable(runner).ok && existsSync(composeFile)) {
|
|
@@ -149,9 +266,38 @@ export async function runDev(opts) {
|
|
|
149
266
|
prompt.error('failed to start the infrastructure — run `docker compose -f docker-compose.infra.yml up -d` to see why');
|
|
150
267
|
return 1;
|
|
151
268
|
}
|
|
269
|
+
startedInfra = true;
|
|
152
270
|
prompt.success('infrastructure is up (postgres + redis)');
|
|
153
271
|
prompt.info('same infra reused by `okcms deploy` targets — nothing to redo later');
|
|
154
272
|
}
|
|
273
|
+
// Postgres NÃO aceita conexões no mesmo instante em que o container
|
|
274
|
+
// sobe (primeiro boot: init do volume leva ~10-30s) — sem esta espera
|
|
275
|
+
// as migrations falham com "the database system is starting up".
|
|
276
|
+
if (startedInfra || interactive) {
|
|
277
|
+
prompt.write('Waiting for postgres to accept connections...\n');
|
|
278
|
+
const ready = await waitForPostgresReady(runner, record, {
|
|
279
|
+
...opts.infraWait,
|
|
280
|
+
postgresWaitMs: opts.infraWait?.postgresWaitMs ?? (startedInfra ? 60_000 : 10_000),
|
|
281
|
+
});
|
|
282
|
+
if (ready) {
|
|
283
|
+
prompt.success('postgres is ready');
|
|
284
|
+
}
|
|
285
|
+
else if (startedInfra) {
|
|
286
|
+
prompt.error('postgres did not accept connections in time — check `docker compose logs postgres`');
|
|
287
|
+
return 1;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
prompt.warn('postgres not reachable yet — continuing (migrations will surface the real error)');
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// O compose de infra NÃO publica a 6379 no host (por design de
|
|
294
|
+
// produção) — mas os apps do `start` rodam NO host e precisam dela.
|
|
295
|
+
// Só recria o serviço quando a infra subiu agora (quem recusou o
|
|
296
|
+
// passo não tem container recriado às costas).
|
|
297
|
+
await ensureRedisOnHost(prompt, runner, cwd, record, {
|
|
298
|
+
...opts.infraWait,
|
|
299
|
+
apply: startedInfra,
|
|
300
|
+
});
|
|
155
301
|
}
|
|
156
302
|
else {
|
|
157
303
|
prompt.warn('docker/compose not available — infrastructure step skipped');
|
|
@@ -159,7 +305,18 @@ export async function runDev(opts) {
|
|
|
159
305
|
}
|
|
160
306
|
}
|
|
161
307
|
// ---- 3. banco: schema + seed + migrations -------------------------------
|
|
162
|
-
|
|
308
|
+
try {
|
|
309
|
+
await hooks.prepareDatabase();
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
313
|
+
prompt.error(`database setup failed: ${message}`);
|
|
314
|
+
if (/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|starting up|Connection terminated/i.test(message)) {
|
|
315
|
+
prompt.info('the database is not reachable — rerun `okcms dev` and answer Yes to the infrastructure step,');
|
|
316
|
+
prompt.info('or point DB_HOST/DB_PORT/DATABASE_URL in .env at a running Postgres.');
|
|
317
|
+
}
|
|
318
|
+
return 1;
|
|
319
|
+
}
|
|
163
320
|
prompt.success('database ready (schema + seed + migrations)');
|
|
164
321
|
// ---- 4. primeiro usuário (se o banco está vazio) -------------------------
|
|
165
322
|
const hasUsers = await hooks.anyUserExists();
|
|
@@ -185,9 +342,17 @@ export async function runDev(opts) {
|
|
|
185
342
|
prompt.success('users already exist — user creation skipped');
|
|
186
343
|
}
|
|
187
344
|
// ---- 5. apps -------------------------------------------------------------
|
|
345
|
+
const config = loadProjectConfig(cwd);
|
|
346
|
+
const urls = [
|
|
347
|
+
`API http://localhost:${config.ports.api}`,
|
|
348
|
+
`Admin http://localhost:${config.ports.admin}`,
|
|
349
|
+
`Web http://localhost:${config.ports.web}`,
|
|
350
|
+
];
|
|
188
351
|
const finishNotStarted = () => {
|
|
189
352
|
prompt.success('dev environment ready');
|
|
190
|
-
prompt.info('start the apps with `okcms start` (or rerun `okcms dev`)');
|
|
353
|
+
prompt.info('start the apps with `okcms start` (or rerun `okcms dev`), then open:');
|
|
354
|
+
for (const url of urls)
|
|
355
|
+
prompt.info(` ${url}`);
|
|
191
356
|
prompt.info('deploying later? `okcms stop` first — dev processes hold the ports the containers need');
|
|
192
357
|
};
|
|
193
358
|
if (opts.skipStart === true) {
|
|
@@ -217,6 +382,8 @@ export async function runDev(opts) {
|
|
|
217
382
|
return 0;
|
|
218
383
|
}
|
|
219
384
|
prompt.success('dev environment ready — starting the apps (Ctrl+C stops everything)');
|
|
385
|
+
for (const url of urls)
|
|
386
|
+
prompt.info(` ${url}`);
|
|
220
387
|
prompt.info('deploying later? `okcms stop` first — dev processes hold the ports the containers need');
|
|
221
388
|
await hooks.startApps();
|
|
222
389
|
return 0;
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-docs.d.ts","sourceRoot":"","sources":["../src/scaffold-docs.ts"],"names":[],"mappings":"AAiBA,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;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAQ9D;
|
|
1
|
+
{"version":3,"file":"scaffold-docs.d.ts","sourceRoot":"","sources":["../src/scaffold-docs.ts"],"names":[],"mappings":"AAiBA,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;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAQ9D;AAglCD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,QAA4B,GACjC,MAAM,CAGR;AAED,kCAAkC;AAClC,wBAAgB,SAAS,CAAC,IAAI,GAAE,QAA4B,GAAG,MAAM,CAEpE;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CAAC,IAAI,GAAE,QAA4B,GAAG,MAAM,CAEnE"}
|
package/dist/scaffold-docs.js
CHANGED
|
@@ -107,9 +107,13 @@ Pré-requisitos: **Node 20+** ou **Bun 1.3+** · **PostgreSQL 16+** (obrigatóri
|
|
|
107
107
|
|
|
108
108
|
Atalho — \`okcms dev\` faz tudo em um comando: completa o \`.env\` (gera os
|
|
109
109
|
segredos que faltam, mantém os existentes), sobe a infra (o MESMO compose
|
|
110
|
-
que o \`okcms deploy\` reutiliza)
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
que o \`okcms deploy\` reutiliza) e espera o Postgres aceitar conexões antes
|
|
111
|
+
das migrations, torna o Redis alcançável do host (via override só-de-dev
|
|
112
|
+
em \`.data/dev-infra.override.yml\`, que o deploy não lê), aplica schema +
|
|
113
|
+
seed + migrations, cria o primeiro admin (\`SUPER_ADMIN\`) se o banco estiver
|
|
114
|
+
vazio, sobe os apps e imprime os endereços finais (API · Admin · Web no
|
|
115
|
+
localhost). É reexecutável; sem TTY exige \`--yes\` (com
|
|
116
|
+
\`--email/--name/--password\`).
|
|
113
117
|
Indo para produção: \`okcms stop\` antes de \`okcms deploy\` — os processos
|
|
114
118
|
do dev ocupam as mesmas portas que os containers.
|
|
115
119
|
|
|
@@ -409,10 +413,13 @@ Prerequisites: **Node 20+** or **Bun 1.3+** · **PostgreSQL 16+** (required) ·
|
|
|
409
413
|
|
|
410
414
|
Shortcut — \`okcms dev\` does everything in one command: completes \`.env\`
|
|
411
415
|
(generating missing secrets, keeping existing values), starts the infra
|
|
412
|
-
(the SAME compose \`okcms deploy\` reuses)
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
+
(the SAME compose \`okcms deploy\` reuses) and waits for Postgres to accept
|
|
417
|
+
connections before migrating, makes Redis reachable from the host (via a
|
|
418
|
+
dev-only override in \`.data/dev-infra.override.yml\` that the deploy never
|
|
419
|
+
reads), applies schema + seed + migrations, creates the first admin
|
|
420
|
+
(\`SUPER_ADMIN\`) when the database is empty, starts the apps and prints the
|
|
421
|
+
final URLs (API · Admin · Web on localhost). Re-runnable; non-TTY requires
|
|
422
|
+
\`--yes\` (with \`--email/--name/--password\`). Going to production: \`okcms stop\` before
|
|
416
423
|
\`okcms deploy\` — the dev processes hold the same ports the containers
|
|
417
424
|
need.
|
|
418
425
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-docs.js","sourceRoot":"","sources":["../src/scaffold-docs.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,wEAAwE;AACxE,gFAAgF;AAChF,EAAE;AACF,sEAAsE;AACtE,6EAA6E;AAC7E,yDAAyD;AACzD,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa,IAAI,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAEtD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,8DAA8D;AAC9D,SAAS,eAAe,CAAC,WAAmB;IAC1C,OAAO,KAAK,WAAW
|
|
1
|
+
{"version":3,"file":"scaffold-docs.js","sourceRoot":"","sources":["../src/scaffold-docs.ts"],"names":[],"mappings":"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"}
|