@neetru/cli 2.26.4 → 2.26.6
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
Convenção: [Keep a Changelog](https://keepachangelog.com/) + [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [2.26.6] — 2026-07-28 (fix crítico: DDL de `neetru db apply` não era idempotente — CREATE TYPE, CREATE TABLE, CREATE INDEX, ADD CONSTRAINT)
|
|
6
|
+
|
|
7
|
+
> Depois de 2.26.4/2.26.5 resolverem `--dialect` e o path Windows, o pdv-agiliza aplicou a migração e chegou até o Core — mas quebrou em `type "ft_entity_type" already exists`. Causa raiz: a premissa de que `drizzle-kit generate` embrulha `CREATE TYPE` num guard idempotente por padrão (escrita no fix da 2.26.3) estava ERRADA — confirmado ao vivo contra o schema real que `generate` emite DDL puro, sem guard nenhum, pra CREATE TYPE **nem** CREATE TABLE/INDEX/ADD CONSTRAINT. Qualquer produto com enum/FK no schema colide com "already exists" assim que o objeto existir no banco por qualquer via fora do pipeline (ex.: recuperação de incidente) — não é bug do schema do produto.
|
|
8
|
+
|
|
9
|
+
### Corrigido
|
|
10
|
+
|
|
11
|
+
- `generateSql` agora pós-processa o DDL gerado (só Postgres):
|
|
12
|
+
- `CREATE TYPE ... AS ENUM(...)` → guard `DO $$ BEGIN ... EXCEPTION WHEN duplicate_object THEN null; END $$;` (Postgres não tem `CREATE TYPE IF NOT EXISTS`). Scanner char-a-char respeitando literais `'...'` (não regex ingênuo — evita truncar em valores de enum contendo `)`).
|
|
13
|
+
- `CREATE TABLE`/`CREATE INDEX`/`CREATE UNIQUE INDEX` → ganham `IF NOT EXISTS` nativo.
|
|
14
|
+
- `ALTER TABLE ... ADD CONSTRAINT` (FK/CHECK/UNIQUE/PK) → mesmo guard `DO $$ ... duplicate_object` do CREATE TYPE (Postgres não tem `ADD CONSTRAINT IF NOT EXISTS`).
|
|
15
|
+
- `rehearse.ts`: `psql` agora roda com `-v ON_ERROR_STOP=1` — sem isso, confirmado ao vivo que o `psql --single-transaction` engolia erro no meio do script e saía com exit code 0 mesmo com tudo revertido, deixando `rehearseInContainer` reportar `{ ok: true }` pra SQL que na real falhou 100%.
|
|
16
|
+
- Bump `@neetru/db-classifier` → `^0.1.5` (reconhece os guards `DO $$ ... duplicate_object` acima como aditivos — sem isso toda migração com enum/FK passaria a exigir `confirm --mfa-token` à toa).
|
|
17
|
+
|
|
18
|
+
### Verificação
|
|
19
|
+
|
|
20
|
+
- 1117 testes (suíte completa), tsc limpo.
|
|
21
|
+
- Codex review adversarial (2 rounds) — sem bypass de MFA encontrado; achou e corrigiu 1 bug real (regex de wrap não quote-aware) antes de publicar.
|
|
22
|
+
- **Prova real**: SQL gerado contra o schema do pdv-agiliza (78 statements) aplicado 2x seguidas num Postgres real (`docker`) — 1ª aplicação (banco vazio) e 2ª aplicação (banco já populado, o cenário real do incidente) ambas com exit code 0.
|
|
23
|
+
|
|
24
|
+
## [2.26.5] — 2026-07-28 (fix crítico Windows: `drizzle-kit generate` não achava o schema com path absoluto backslash)
|
|
25
|
+
|
|
26
|
+
> Regressão da própria 2.26.4: resolvido o `--dialect`, apareceu "No schema files found for path config [...]" no Windows mesmo com o arquivo existindo e extensão `.ts` correta. Causa: `prepareFilenames` do `drizzle-kit` resolve `--schema` via `glob.sync(path)` — o pacote `glob` trata `\` como caractere de ESCAPE no padrão, não como separador. Um path absoluto Windows normal (`path.resolve`/`path.join` produzem `S:\Documents\...`) faz o glob não casar nada. Reproduzido e confirmado ao vivo contra o schema real do pdv-agiliza (14 tabelas): falha com backslash, passa com forward-slash.
|
|
27
|
+
|
|
28
|
+
### Corrigido
|
|
29
|
+
|
|
30
|
+
- `generateSql` normaliza `--schema`/`--out` de backslash pra forward-slash no Windows antes de spawnar o `drizzle-kit generate` (`S:\foo\bar` → `S:/foo/bar` — Windows aceita ambos em paths de `fs`, só o `glob` do drizzle-kit exige forward-slash). No-op fora do Windows. Mesma classe de bug que `normalizePathForTar` (`commands/build.ts`), alvo diferente (glob vs GNU tar via MSYS2).
|
|
31
|
+
|
|
5
32
|
## [2.26.4] — 2026-07-28 (fix crítico: `neetru db apply` falhava na fase `generate` — `--dialect` ausente)
|
|
6
33
|
|
|
7
34
|
> Regressão introduzida pela própria 2.26.3: trocar `drizzle-kit export` por `drizzle-kit generate --schema <path> --out <tmp>` tirou o `drizzle-kit` do modo "lê `drizzle.config.ts`" (o `bin.cjs` só faz esse discovery quando NENHUMA flag de schema/out/dialect é passada via CLI — ver `prepareGenerateConfig`). Sem `drizzle.config.ts`, `dialect` ficava `undefined` e o `drizzle-kit` abortava com "Please provide required params: [x] dialect: undefined" — quebrando `neetru db apply` ANTES até da fase de rehearse, em qualquer produto. Achado ao vivo pelo pdv-agiliza logo após instalar a 2.26.3.
|
|
@@ -90,6 +90,189 @@ const ENGINE_TO_DIALECT = {
|
|
|
90
90
|
postgres: 'postgresql',
|
|
91
91
|
mysql: 'mysql',
|
|
92
92
|
};
|
|
93
|
+
/**
|
|
94
|
+
* BUG FIX (bug_pdv_generate_winpath_2026-07-28): `prepareFilenames` do
|
|
95
|
+
* `drizzle-kit` (`bin.cjs`) resolve `--schema` via `glob.sync(path)` — o
|
|
96
|
+
* pacote `glob` trata `\` como caractere de ESCAPE dentro do padrão, não
|
|
97
|
+
* como separador (só reconhece `/`). Um path absoluto Windows normal
|
|
98
|
+
* (`path.resolve`/`path.join` produzem `S:\Documents\...`) faz o glob não
|
|
99
|
+
* casar NADA, mesmo o arquivo existindo — `drizzle-kit` aborta com
|
|
100
|
+
* "No schema files found for path config [...]" mesmo com extensão `.ts`
|
|
101
|
+
* correta. Fix: barra invertida vira barra normal antes de passar como
|
|
102
|
+
* `--schema`/`--out` — Windows aceita `/` em paths com drive-letter
|
|
103
|
+
* (`S:/Documents/...`) tanto no `fs` do Node quanto no `glob`. No-op fora
|
|
104
|
+
* do Windows. Mesma classe de bug que `normalizePathForTar` (`commands/build.ts`),
|
|
105
|
+
* só que ali o alvo é GNU tar via MSYS2 (drive-letter vira `/S/...`); aqui
|
|
106
|
+
* o alvo é `glob.sync`, que aceita `S:/...` direto — não precisa do prefixo
|
|
107
|
+
* SSH-style.
|
|
108
|
+
*/
|
|
109
|
+
function toGlobSafePath(p) {
|
|
110
|
+
return process.platform === 'win32' ? p.replace(/\\/g, '/') : p;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* BUG FIX (bug_pdv_createtype_guard_2026-07-28): Postgres NÃO tem
|
|
114
|
+
* `CREATE TYPE IF NOT EXISTS`, e `drizzle-kit generate` NÃO embrulha
|
|
115
|
+
* `CREATE TYPE` em guard nenhum por padrão — confirmado AO VIVO contra o
|
|
116
|
+
* schema real do pdv-agiliza (a premissa anterior, escrita no fix do
|
|
117
|
+
* bug_pdv_rehearse_2026-07-27, de que `generate` já dava esse guard "de
|
|
118
|
+
* graça", estava ERRADA — veio de ler `.sql` editados à mão, não da saída
|
|
119
|
+
* real do drizzle-kit). Sem isso, qualquer produto com enum no schema
|
|
120
|
+
* colide com "already exists" assim que o tipo existir no banco por
|
|
121
|
+
* QUALQUER via fora do pipeline rastreado (ex.: recuperação de incidente) —
|
|
122
|
+
* não é bug do schema do produto, é o pipeline nunca gerar DDL idempotente
|
|
123
|
+
* pra tipos.
|
|
124
|
+
*
|
|
125
|
+
* Fix: embrulha cada `CREATE TYPE "schema"."nome" AS ENUM(...);` no guard
|
|
126
|
+
* idiomático do Postgres — `DO $$ BEGIN ... EXCEPTION WHEN duplicate_object
|
|
127
|
+
* THEN null; END $$;`. Só roda pra Postgres (MySQL não tem essa sintaxe;
|
|
128
|
+
* `generateSql` só chama isto quando `engine === 'postgres'`).
|
|
129
|
+
*
|
|
130
|
+
* O `@neetru/db-classifier` (>= 0.1.5) reconhece ESSE shape exato do guard
|
|
131
|
+
* como aditivo (`detectIdempotentCreateTypeGuard`) — sem essa contraparte no
|
|
132
|
+
* classifier, a migração passaria a exigir `confirm --mfa-token` à toa (o
|
|
133
|
+
* `node-sql-parser` não entende blocos PL/pgSQL `DO $$`, cai em UNKNOWN ->
|
|
134
|
+
* destrutivo por padrão).
|
|
135
|
+
*/
|
|
136
|
+
const CREATE_TYPE_ENUM_START_RE = /CREATE TYPE (?:"[^"]+"\.)?"[^"]+" AS ENUM\(/g;
|
|
137
|
+
/**
|
|
138
|
+
* BUG FIX (achado por Codex review adversarial, mesmo bug_pdv_createtype_
|
|
139
|
+
* guard_2026-07-28): a primeira versão usava um regex ingênuo
|
|
140
|
+
* (`AS ENUM\(([^)]*)\);`) pra achar o fim da lista de valores — `[^)]*` para
|
|
141
|
+
* no PRIMEIRO `)`, mas Postgres aceita QUALQUER caractere dentro de um
|
|
142
|
+
* literal `'...'`, incluindo `)`. Um enum com valor tipo `'a)b'` truncava o
|
|
143
|
+
* match no `)` de dentro da string, produzindo um bloco `DO $$` com string
|
|
144
|
+
* não-fechada (SQL corrompido). Não é um bypass de MFA (Postgres rejeitaria
|
|
145
|
+
* essa string na hora e o classificador trata o resto como comentário —
|
|
146
|
+
* confirmado que não abre brecha pra statement destrutivo escondido), mas
|
|
147
|
+
* quebra a própria garantia de idempotência que este fix existe pra dar.
|
|
148
|
+
*
|
|
149
|
+
* Fix: escaneia char-a-char respeitando literais `'...'` (com `''` como
|
|
150
|
+
* escape, igual ao Postgres/`splitSqlStatements` do `@neetru/db-classifier`)
|
|
151
|
+
* pra achar o `)` que FECHA de verdade a lista de valores, em vez de regex
|
|
152
|
+
* guloso. Se o statement não tiver o shape exato esperado (não termina com
|
|
153
|
+
* `);` logo após o fechamento), NÃO embrulha — deixa o `CREATE TYPE` como
|
|
154
|
+
* está (volta ao comportamento pré-fix pra esse statement específico, que é
|
|
155
|
+
* ruim mas não corrompe nada) em vez de arriscar produzir DDL quebrado.
|
|
156
|
+
*/
|
|
157
|
+
/**
|
|
158
|
+
* Escaneia `sql` a partir de `start` procurando o PRÓXIMO caractere em
|
|
159
|
+
* `targetChars` que esteja FORA de um literal `'...'` (com `''` como
|
|
160
|
+
* escape) — usado pra achar o fim real de um statement/lista de valores sem
|
|
161
|
+
* cair em `)`/`;` que apareçam DENTRO de uma string (Postgres aceita
|
|
162
|
+
* qualquer caractere num literal entre aspas simples). Devolve o índice do
|
|
163
|
+
* caractere encontrado, ou `sql.length` se nenhum aparecer antes do fim
|
|
164
|
+
* (statement malformado — callers tratam isso como "não mexe").
|
|
165
|
+
*/
|
|
166
|
+
function scanTopLevel(sql, start, targetChars) {
|
|
167
|
+
let i = start;
|
|
168
|
+
while (i < sql.length) {
|
|
169
|
+
if (sql[i] === "'") {
|
|
170
|
+
i++;
|
|
171
|
+
while (i < sql.length) {
|
|
172
|
+
if (sql[i] === "'") {
|
|
173
|
+
if (sql[i + 1] === "'") {
|
|
174
|
+
i += 2;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
i++;
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
i++;
|
|
181
|
+
}
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (targetChars.includes(sql[i]))
|
|
185
|
+
return i;
|
|
186
|
+
i++;
|
|
187
|
+
}
|
|
188
|
+
return i;
|
|
189
|
+
}
|
|
190
|
+
function makeCreateTypeIdempotent(sql) {
|
|
191
|
+
let result = '';
|
|
192
|
+
let cursor = 0;
|
|
193
|
+
CREATE_TYPE_ENUM_START_RE.lastIndex = 0;
|
|
194
|
+
let match;
|
|
195
|
+
while ((match = CREATE_TYPE_ENUM_START_RE.exec(sql)) !== null) {
|
|
196
|
+
const statementStart = match.index;
|
|
197
|
+
// `i` fica no ")" que fecha de verdade a lista de valores (ou em
|
|
198
|
+
// `sql.length`, se o SQL estiver malformado — nesse caso o `if` abaixo
|
|
199
|
+
// é falso e caímos no "não embrulha").
|
|
200
|
+
const i = scanTopLevel(sql, CREATE_TYPE_ENUM_START_RE.lastIndex, ')');
|
|
201
|
+
if (sql[i] === ')' && sql[i + 1] === ';') {
|
|
202
|
+
const statementEnd = i + 2; // inclui o ");"
|
|
203
|
+
const statement = sql.slice(statementStart, statementEnd);
|
|
204
|
+
result += sql.slice(cursor, statementStart);
|
|
205
|
+
result += `DO $$ BEGIN\n ${statement}\nEXCEPTION WHEN duplicate_object THEN null;\nEND $$;`;
|
|
206
|
+
cursor = statementEnd;
|
|
207
|
+
CREATE_TYPE_ENUM_START_RE.lastIndex = statementEnd;
|
|
208
|
+
}
|
|
209
|
+
// shape inesperado (não fecha com ");") -> não mexe, segue escaneando
|
|
210
|
+
// a partir de onde já está (lastIndex já avançou pelo exec acima).
|
|
211
|
+
}
|
|
212
|
+
result += sql.slice(cursor);
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
const ADD_CONSTRAINT_START_RE = /ALTER TABLE (?:"[^"]+"\.)?"[^"]+" ADD CONSTRAINT "[^"]+" (?:FOREIGN KEY|CHECK|UNIQUE|PRIMARY KEY)\b/g;
|
|
216
|
+
/**
|
|
217
|
+
* BUG FIX (achado verificando os fixes acima com Docker real, mesmo
|
|
218
|
+
* bug_pdv_createtype_guard_2026-07-28): depois de CREATE TYPE/TABLE/INDEX
|
|
219
|
+
* ficarem idempotentes, a 2ª aplicação (schema já existente) ainda quebrava
|
|
220
|
+
* em `constraint "..." already exists` — `ALTER TABLE ... ADD CONSTRAINT`
|
|
221
|
+
* (FK/CHECK/UNIQUE/PRIMARY KEY) é a ÚNICA DDL aditiva restante sem `IF NOT
|
|
222
|
+
* EXISTS` nativo no Postgres (ao contrário de TABLE/INDEX/COLUMN, que têm).
|
|
223
|
+
* Mesmo guard idiomático de CREATE TYPE serve aqui (o erro é o mesmo
|
|
224
|
+
* SQLSTATE `duplicate_object`). O `@neetru/db-classifier` (>= 0.1.6) já
|
|
225
|
+
* classifica `ADD CONSTRAINT` bare como aditiva incondicionalmente
|
|
226
|
+
* (FK/CHECK/UNIQUE/PK, regra `ADD_CONSTRAINT`) — a contraparte
|
|
227
|
+
* `detectIdempotentAddConstraintGuard` reconhece esse MESMO shape só que
|
|
228
|
+
* embrulhado no guard, sem precisar (re)validar qual constraint é.
|
|
229
|
+
*/
|
|
230
|
+
function makeAddConstraintIdempotent(sql) {
|
|
231
|
+
let result = '';
|
|
232
|
+
let cursor = 0;
|
|
233
|
+
ADD_CONSTRAINT_START_RE.lastIndex = 0;
|
|
234
|
+
let match;
|
|
235
|
+
while ((match = ADD_CONSTRAINT_START_RE.exec(sql)) !== null) {
|
|
236
|
+
const statementStart = match.index;
|
|
237
|
+
const semiIdx = scanTopLevel(sql, ADD_CONSTRAINT_START_RE.lastIndex, ';');
|
|
238
|
+
if (sql[semiIdx] === ';') {
|
|
239
|
+
const statementEnd = semiIdx + 1; // inclui o ";"
|
|
240
|
+
const statement = sql.slice(statementStart, statementEnd);
|
|
241
|
+
result += sql.slice(cursor, statementStart);
|
|
242
|
+
result += `DO $$ BEGIN\n ${statement}\nEXCEPTION WHEN duplicate_object THEN null;\nEND $$;`;
|
|
243
|
+
cursor = statementEnd;
|
|
244
|
+
ADD_CONSTRAINT_START_RE.lastIndex = statementEnd;
|
|
245
|
+
}
|
|
246
|
+
// sem ";" até o fim da string (malformado) -> não mexe.
|
|
247
|
+
}
|
|
248
|
+
result += sql.slice(cursor);
|
|
249
|
+
return result;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* BUG FIX (achado verificando o fix acima end-to-end com Docker real, mesmo
|
|
253
|
+
* bug_pdv_createtype_guard_2026-07-28): `drizzle-kit generate` TAMBÉM não
|
|
254
|
+
* emite `IF NOT EXISTS` em `CREATE TABLE`/`CREATE INDEX` — confirmado
|
|
255
|
+
* aplicando o SQL guardado (CREATE TYPE já idempotente) duas vezes seguidas
|
|
256
|
+
* contra um Postgres real: a 1ª aplica limpo, a 2ª quebra em
|
|
257
|
+
* `relation "admin_jobs" already exists` (a PRÓXIMA coisa que travaria o
|
|
258
|
+
* pdv-agiliza depois do fix de CREATE TYPE, já que a produção deles já tem
|
|
259
|
+
* essas tabelas da recuperação de incidente). Diferente de CREATE TYPE,
|
|
260
|
+
* Postgres TEM `IF NOT EXISTS` nativo pra TABLE e INDEX — não precisa de
|
|
261
|
+
* guard DO$$, só inserir a cláusula. `node-sql-parser` entende `IF NOT
|
|
262
|
+
* EXISTS` nativamente pra ambos (confirmado — astify preenche
|
|
263
|
+
* `if_not_exists`), então isto NÃO precisa de nenhuma contraparte no
|
|
264
|
+
* `@neetru/db-classifier` (CREATE TABLE/INDEX com ou sem a cláusula já
|
|
265
|
+
* classifica aditiva pelo caminho AST normal).
|
|
266
|
+
*
|
|
267
|
+
* Esta é exatamente a mitigação que a skill `neetru-migrations` (ME1) já
|
|
268
|
+
* documentava pra este cenário: "DDL idempotente — CREATE TABLE IF NOT
|
|
269
|
+
* EXISTS" — só faltava aplicar de verdade na geração.
|
|
270
|
+
*/
|
|
271
|
+
function makeTableAndIndexIdempotent(sql) {
|
|
272
|
+
return sql
|
|
273
|
+
.replace(/CREATE TABLE (?!IF NOT EXISTS\b)/g, 'CREATE TABLE IF NOT EXISTS ')
|
|
274
|
+
.replace(/CREATE (UNIQUE )?INDEX (?!IF NOT EXISTS\b)/g, (_match, unique) => `CREATE ${unique ?? ''}INDEX IF NOT EXISTS `);
|
|
275
|
+
}
|
|
93
276
|
export function generateSql(schemaPath, engine = 'postgres') {
|
|
94
277
|
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'neetru-drizzle-'));
|
|
95
278
|
return new Promise((resolve, reject) => {
|
|
@@ -97,9 +280,9 @@ export function generateSql(schemaPath, engine = 'postgres') {
|
|
|
97
280
|
'drizzle-kit',
|
|
98
281
|
'generate',
|
|
99
282
|
'--schema',
|
|
100
|
-
schemaPath,
|
|
283
|
+
toGlobSafePath(schemaPath),
|
|
101
284
|
'--out',
|
|
102
|
-
tmpDir,
|
|
285
|
+
toGlobSafePath(tmpDir),
|
|
103
286
|
'--dialect',
|
|
104
287
|
ENGINE_TO_DIALECT[engine],
|
|
105
288
|
], {
|
|
@@ -142,7 +325,9 @@ export function generateSql(schemaPath, engine = 'postgres') {
|
|
|
142
325
|
const sql = sqlFiles
|
|
143
326
|
.map((f) => fs.readFileSync(path.join(tmpDir, f), 'utf8'))
|
|
144
327
|
.join('\n');
|
|
145
|
-
resolve(
|
|
328
|
+
resolve(engine === 'postgres'
|
|
329
|
+
? makeTableAndIndexIdempotent(makeAddConstraintIdempotent(makeCreateTypeIdempotent(sql)))
|
|
330
|
+
: sql);
|
|
146
331
|
}
|
|
147
332
|
catch (err) {
|
|
148
333
|
reject(new Error(`falha lendo o .sql gerado em ${tmpDir}: ${err.message}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-deps.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/build-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAElB,MAAM,eAAe,CAAC;AAQvB;;;;;;;;;;;;;GAaG;AACH,MAAM,sBAAsB,GAAG,iBAE2D,CAAC;AAC3F,KAAK,sBAAsB,CAAC;AAE5B;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,iBAAiB,GAAmC;IACxD,QAAQ,EAAE,YAAY;IACtB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,UAAkB,EAClB,SAAyB,UAAU;IAEnC,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEzE,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,KAAK,CACjB,KAAK,EACL;YACE,aAAa;YACb,UAAU;YACV,UAAU;YACV,UAAU;
|
|
1
|
+
{"version":3,"file":"build-deps.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/build-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,10 +86,21 @@ const ENGINE_SPECS = {
|
|
|
86
86
|
'exec', c, 'pg_isready', '--username', PG_ENV.user, '--dbname', PG_ENV.db, '--quiet',
|
|
87
87
|
],
|
|
88
88
|
// psql --single-transaction: rollback total em erro parcial (container limpo).
|
|
89
|
+
//
|
|
90
|
+
// BUG FIX (achado por Codex review adversarial, bug_pdv_createtype_guard_
|
|
91
|
+
// 2026-07-28): SEM `-v ON_ERROR_STOP=1`, o psql continua lendo o script
|
|
92
|
+
// após um statement falhar e sai com exit code 0 mesmo que TUDO tenha
|
|
93
|
+
// sido revertido (confirmado ao vivo: script com um statement inválido
|
|
94
|
+
// no meio → psql roda até o fim, imprime os erros no stderr, exit 0,
|
|
95
|
+
// `\dt` depois confirma zero tabelas criadas — o --single-transaction já
|
|
96
|
+
// reverteu tudo). Sem ON_ERROR_STOP, `rehearseInContainer` podia devolver
|
|
97
|
+
// `{ ok: true }` pra SQL que na real falhou 100% — quebrando a garantia
|
|
98
|
+
// de "rehearse pega SQL quebrado antes do push pro Core". Com
|
|
99
|
+
// ON_ERROR_STOP=1 confirmado: mesmo script → exit code 3 (falha real).
|
|
89
100
|
applyCmd: (c) => [
|
|
90
101
|
'exec', '--interactive', c, 'psql',
|
|
91
102
|
'--username', PG_ENV.user, '--dbname', PG_ENV.db,
|
|
92
|
-
'--no-psqlrc', '--single-transaction', '--file', '-',
|
|
103
|
+
'--no-psqlrc', '--single-transaction', '-v', 'ON_ERROR_STOP=1', '--file', '-',
|
|
93
104
|
],
|
|
94
105
|
},
|
|
95
106
|
mysql: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehearse.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/rehearse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA2D3C,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,gCAAgC,GAAG,IAAa,CAAC;IAE1D,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;QAC7C,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAClD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF;AAED,6EAA6E;AAC7E,MAAM,UAAU,gCAAgC,CAC9C,KAAc;IAEd,OAAO,CACL,KAAK,YAAY,8BAA8B;QAC/C,CAAC,OAAO,KAAK,KAAK,QAAQ;YACxB,KAAK,KAAK,IAAI;YACb,KAAwD;iBACtD,gCAAgC,KAAK,IAAI,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,uEAAuE;AACvE,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,+DAA+D;AAC/D,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,6CAA6C;AAC7C,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,qBAAqB;IAC/B,EAAE,EAAE,iBAAiB;CACb,CAAC;AAEX,yEAAyE;AACzE,MAAM,SAAS,GAAG;IAChB,QAAQ,EAAE,qBAAqB;IAC/B,EAAE,EAAE,iBAAiB;CACb,CAAC;AAgBX,MAAM,YAAY,GAAuC;IACvD,QAAQ,EAAE;QACR,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,wBAAwB;QACxC,UAAU,EAAE;YACV,IAAI,EAAE,iBAAiB,MAAM,CAAC,IAAI,EAAE;YACpC,IAAI,EAAE,qBAAqB,MAAM,CAAC,QAAQ,EAAE;YAC5C,IAAI,EAAE,eAAe,MAAM,CAAC,EAAE,EAAE;SACjC;QACD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS;SACrF;QACD,+EAA+E;QAC/E,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM;YAClC,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;YAChD,aAAa,EAAE,sBAAsB,EAAE,QAAQ,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"rehearse.js","sourceRoot":"","sources":["../../../src/lib/db-pipeline/rehearse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neetru/cli",
|
|
3
|
-
"version": "2.26.
|
|
3
|
+
"version": "2.26.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Neetru Developer Kit — scaffold, AI assistant, publish, build e deploy de produtos SaaS Neetru via Core (VM-based agents)",
|
|
6
6
|
"keywords": [
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@anthropic-ai/sdk": "^0.96.0",
|
|
44
|
-
"@neetru/db-classifier": "^0.1.
|
|
44
|
+
"@neetru/db-classifier": "^0.1.5",
|
|
45
45
|
"chalk": "^5.4.1",
|
|
46
46
|
"commander": "^12.1.0",
|
|
47
47
|
"conf": "^13.0.1",
|