@vibeorm/migrate 2.4.0 → 2.6.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 (86) hide show
  1. package/README.md +2 -0
  2. package/dist/artifact-probe.d.ts +41 -0
  3. package/dist/artifact-probe.d.ts.map +1 -0
  4. package/dist/compare-sqlite-primary-key.d.ts +1 -1
  5. package/dist/compare-sqlite-primary-key.d.ts.map +1 -1
  6. package/dist/ddl/mysql.d.ts.map +1 -1
  7. package/dist/ddl/postgres.d.ts +1 -1
  8. package/dist/ddl/rls.d.ts.map +1 -1
  9. package/dist/ddl/sqlite.d.ts.map +1 -1
  10. package/dist/differ.d.ts.map +1 -1
  11. package/dist/down.d.ts +21 -3
  12. package/dist/down.d.ts.map +1 -1
  13. package/dist/enum-values.d.ts +1 -0
  14. package/dist/enum-values.d.ts.map +1 -1
  15. package/dist/exclusions.d.ts +1 -0
  16. package/dist/exclusions.d.ts.map +1 -1
  17. package/dist/extensions.d.ts +52 -0
  18. package/dist/extensions.d.ts.map +1 -1
  19. package/dist/external-dependencies.d.ts +37 -0
  20. package/dist/external-dependencies.d.ts.map +1 -0
  21. package/dist/external-objects.d.ts +122 -0
  22. package/dist/external-objects.d.ts.map +1 -0
  23. package/dist/fs.d.ts.map +1 -1
  24. package/dist/fs.js +1293 -651
  25. package/dist/fs.js.map +35 -31
  26. package/dist/index.d.ts +11 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5424 -4300
  29. package/dist/index.js.map +57 -50
  30. package/dist/inspect-objects.d.ts +5 -0
  31. package/dist/inspect-objects.d.ts.map +1 -1
  32. package/dist/introspect/postgres-rls.d.ts.map +1 -1
  33. package/dist/introspect/postgres.d.ts +4 -2
  34. package/dist/introspect/postgres.d.ts.map +1 -1
  35. package/dist/introspect/shared.d.ts +2 -1
  36. package/dist/introspect/shared.d.ts.map +1 -1
  37. package/dist/inventory.d.ts.map +1 -1
  38. package/dist/migration-checksum.d.ts +2 -0
  39. package/dist/migration-checksum.d.ts.map +1 -1
  40. package/dist/module-adoption-record.d.ts +22 -0
  41. package/dist/module-adoption-record.d.ts.map +1 -0
  42. package/dist/module-adoption-reference.d.ts +27 -0
  43. package/dist/module-adoption-reference.d.ts.map +1 -0
  44. package/dist/module-adoption.d.ts +26 -0
  45. package/dist/module-adoption.d.ts.map +1 -0
  46. package/dist/module-bundle.d.ts.map +1 -1
  47. package/dist/module-export.d.ts +6 -0
  48. package/dist/module-export.d.ts.map +1 -1
  49. package/dist/module-history.d.ts.map +1 -1
  50. package/dist/module-origin.d.ts +1 -1
  51. package/dist/module-origin.d.ts.map +1 -1
  52. package/dist/module-ownership.d.ts.map +1 -1
  53. package/dist/module-pending.d.ts +6 -0
  54. package/dist/module-pending.d.ts.map +1 -1
  55. package/dist/module-readiness.d.ts +5 -0
  56. package/dist/module-readiness.d.ts.map +1 -1
  57. package/dist/normalize.d.ts +15 -2
  58. package/dist/normalize.d.ts.map +1 -1
  59. package/dist/object-ownership.d.ts.map +1 -1
  60. package/dist/operator-classes.d.ts +9 -0
  61. package/dist/operator-classes.d.ts.map +1 -0
  62. package/dist/planner.d.ts +33 -0
  63. package/dist/planner.d.ts.map +1 -1
  64. package/dist/postgres-types.d.ts.map +1 -1
  65. package/dist/push.d.ts +14 -0
  66. package/dist/push.d.ts.map +1 -1
  67. package/dist/reference-state.d.ts.map +1 -1
  68. package/dist/relations.d.ts +1 -0
  69. package/dist/relations.d.ts.map +1 -1
  70. package/dist/renames.d.ts.map +1 -1
  71. package/dist/replay-plan.d.ts.map +1 -1
  72. package/dist/replay-reference.d.ts +10 -0
  73. package/dist/replay-reference.d.ts.map +1 -1
  74. package/dist/runner.d.ts +3 -0
  75. package/dist/runner.d.ts.map +1 -1
  76. package/dist/shadow-dedicated.d.ts.map +1 -1
  77. package/dist/shadow-guard.d.ts +4 -0
  78. package/dist/shadow-guard.d.ts.map +1 -1
  79. package/dist/shadow-types.d.ts +10 -0
  80. package/dist/shadow-types.d.ts.map +1 -1
  81. package/dist/shadow.d.ts.map +1 -1
  82. package/dist/types.d.ts +22 -1
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/verify-history.d.ts +4 -0
  85. package/dist/verify-history.d.ts.map +1 -1
  86. package/package.json +3 -3
package/README.md CHANGED
@@ -52,6 +52,8 @@ await applyMigrations({ executor, migrations: [migration], dialect: "postgres" }
52
52
  const live = await pull({ executor, dialect: "postgres" });
53
53
  ```
54
54
 
55
+ Objects another tool owns are declared as plain `ExternalObjectOwner` data. `parseExternalObjects` validates declarations without a database, `inspectExternalObjects({ executor, dialect, external })` resolves them against the catalog, and `push` accepts that resolution as `external`; `applyMigrations` takes the plain declarations as `external` and resolves them under its lock. PostgreSQL and PGlite only. See [external objects](https://github.com/vibeorm/vibeorm/blob/master/docs/migrations.md#objects-owned-by-another-tool-external).
56
+
55
57
  `SqlExecutor` calls must all reach the same database session — the engine issues `BEGIN`/`COMMIT`, `PRAGMA` and advisory-lock statements through it. Pool-backed executors must pin one connection for the whole operation.
56
58
 
57
59
  ## Links
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Server-normalized definition check for PRESENT extension artifacts on
3
+ * PostgreSQL. The chain's SQL-first history carries no authored snapshot to
4
+ * compare declarations against, and predicting the catalog's spelling of an
5
+ * artifact (`pg_get_indexdef` renders `("street"::pdb.edge_ngram(1, 12))` as
6
+ * `(("street")::pdb.edge_ngram('1', '12'))`) would be a textual guess. So the
7
+ * server spells both sides: the object's catalog facts as they are, then again
8
+ * after the artifact's own drop + create ran inside a savepoint that is rolled
9
+ * back. A differing definition is a real change — a bm25 tokenizer, a
10
+ * tsvector expression, an hnsw option — never a formatting artifact.
11
+ *
12
+ * Meant for the replay shadow inside the caller's rollback probe transaction:
13
+ * its tables are empty, so the probe create is instant. It must NEVER be
14
+ * followed by a real create in the same session: ParadeDB caches tokenizer
15
+ * typmods per backend, a typmod first minted inside the rolled-back savepoint
16
+ * stays in that cache while its `paradedb._typmod_cache` row is gone, and an
17
+ * index built afterwards from the cached id is unreadable from every other
18
+ * connection ("should not fail to load typmod: Spi(InvalidPosition)"). The
19
+ * shadow session ends after planning; the live push planner rebuilds for real
20
+ * (`rebuildArtifacts`) instead of probing.
21
+ */
22
+ import type { ExtensionArtifact } from "@vibeorm/schema";
23
+ import type { SqlExecutor } from "./types.ts";
24
+ /** An artifact the plan drops and creates again, with the statements that put its previous definition back when the catalog can spell them. */
25
+ export type RebuiltArtifact = {
26
+ readonly artifact: ExtensionArtifact;
27
+ /** Absent when the previous definition cannot be restored automatically (a generated column, a trigger). */
28
+ readonly restore?: readonly string[];
29
+ };
30
+ /**
31
+ * Probe every given artifact (all present, all on PostgreSQL) and return the
32
+ * ones whose catalog definition differs from what their create statements
33
+ * produce. Index rebuilds carry the catalog's own `CREATE INDEX` spelling as
34
+ * their restore statement — valid DDL, the way pg_dump emits it.
35
+ */
36
+ export declare function probeChangedArtifacts(params: {
37
+ executor: SqlExecutor;
38
+ namespace: string;
39
+ artifacts: readonly ExtensionArtifact[];
40
+ }): Promise<RebuiltArtifact[]>;
41
+ //# sourceMappingURL=artifact-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-probe.d.ts","sourceRoot":"","sources":["../src/artifact-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,+IAA+I;AAC/I,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,4GAA4G;IAC5G,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAIF;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAuB7B"}
@@ -1,5 +1,5 @@
1
1
  import type { MigrationStateReport } from "./inspect-objects.ts";
2
- /** Accept only proven single INTEGER NOT NULL key syntax changes; retain every other difference. */
2
+ /** Accept only proven table layout and single INTEGER NOT NULL key syntax changes; retain every other difference. */
3
3
  export declare function compareSqlitePrimaryKeyRepresentations(params: {
4
4
  report: MigrationStateReport;
5
5
  }): MigrationStateReport;
@@ -1 +1 @@
1
- {"version":3,"file":"compare-sqlite-primary-key.d.ts","sourceRoot":"","sources":["../src/compare-sqlite-primary-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAmDvF,oGAAoG;AACpG,wBAAgB,sCAAsC,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAAG,oBAAoB,CAoBrH"}
1
+ {"version":3,"file":"compare-sqlite-primary-key.d.ts","sourceRoot":"","sources":["../src/compare-sqlite-primary-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAwDvF,qHAAqH;AACrH,wBAAgB,sCAAsC,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAAG,oBAAoB,CAqBrH"}
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/ddl/mysql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAMjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf,GAAG,MAAM,EAAE,CA2DX"}
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/ddl/mysql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAMjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf,GAAG,MAAM,EAAE,CA6DX"}
@@ -9,7 +9,7 @@
9
9
  * no sequence-name coupling; postgres ≥10 and pglite both support it) — not
10
10
  * SERIAL. The introspector maps identity columns back to autoincrement.
11
11
  * - DROP TABLE is restricted; the differ drops dependent foreign keys first.
12
- * - Core table, enum and index identities always target the public namespace.
12
+ * - Explicit namespaces qualify identifiers; omitted steps retain public DDL.
13
13
  * - scalar→array type changes carry the LEARNINGS `USING CASE WHEN col IS NULL
14
14
  * THEN NULL ELSE ARRAY[col] END` repair clause (postgres cannot implicit-cast).
15
15
  * - `ALTER TYPE ... ADD VALUE IF NOT EXISTS` appends at the end of the enum
@@ -1 +1 @@
1
- {"version":3,"file":"rls.d.ts","sourceRoot":"","sources":["../../src/ddl/rls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAElE;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,EAAE,CAgBxE;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAMrF;AAED,0GAA0G;AAC1G,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CACjC,GAAG,aAAa,EAAE,CAuDlB;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG,OAAO,CAElE;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAmBzF;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAEvF;AAED,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IAAE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAOnI"}
1
+ {"version":3,"file":"rls.d.ts","sourceRoot":"","sources":["../../src/ddl/rls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAElE;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,EAAE,CAgBxE;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAerF;AAED,0GAA0G;AAC1G,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CACjC,GAAG,aAAa,EAAE,CA0DlB;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG,OAAO,CAElE;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAmBzF;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAEvF;AAED,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IAAE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAOnI"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/ddl/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAajE,OAAO,KAAK,EAAe,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACjD,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;CACpH,GAAG,MAAM,EAAE,CA8NX;AAiED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,GAAG;IAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAUjD;AAED,iFAAiF;AACjF,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAShB"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/ddl/sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAajE,OAAO,KAAK,EAAe,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACjD,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;CACpH,GAAG,MAAM,EAAE,CAkOX;AAiED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,GAAG;IAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAUjD;AAED,iFAAiF;AACjF,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAShB"}
@@ -1 +1 @@
1
- {"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../src/differ.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAU,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAOjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,YAAY,CAAC;AAsCnE;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACnC,GAAG,aAAa,EAAE,CAoFlB"}
1
+ {"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../src/differ.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAU,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAOjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,YAAY,CAAC;AAuCnE;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACnC,GAAG,aAAa,EAAE,CA8FlB"}
package/dist/down.d.ts CHANGED
@@ -17,11 +17,17 @@
17
17
  *
18
18
  * Extension artifacts: object artifacts the up migration created (columns,
19
19
  * indexes, shadow tables, triggers) are dropped by the down migration via
20
- * their own `drop` SQL. `CREATE EXTENSION`-class artifacts are never dropped
21
- * — other database objects may depend on the extension — and are reported in
22
- * `skipped` instead.
20
+ * their own `drop` SQL; artifacts the up migration REBUILT (a changed
21
+ * definition) are dropped and created again from the previous declarations.
22
+ * `CREATE EXTENSION`-class artifacts are never dropped — other database
23
+ * objects may depend on the extension — and are reported in `skipped`
24
+ * instead. "Created by the up migration" is decided against the unstripped
25
+ * physical state when the caller has one, otherwise against the previous
26
+ * authored declarations: an artifact both schemas declare existed before.
23
27
  */
24
28
  import type { Dialect, SchemaIR, VibeExtension } from "@vibeorm/schema";
29
+ import type { InstalledExtensionState } from "./extensions.ts";
30
+ import type { RebuiltArtifact } from "./artifact-probe.ts";
25
31
  /** A generated down migration: reverse SQL plus what could NOT be reversed. */
26
32
  export type DownMigrationFile = {
27
33
  /** Actual rollback declaration, including retained enum values and nullable re-added columns. */
@@ -55,5 +61,17 @@ export declare function generateDownMigration(params: {
55
61
  dialect?: Dialect;
56
62
  /** Configured extension instances — their up-created artifacts are dropped. */
57
63
  extensions?: readonly VibeExtension[];
64
+ /**
65
+ * Unstripped physical state before the up migration (live generation). It
66
+ * decides which artifacts the up migration created; a stripped `from` would
67
+ * claim every one of them. Defaults to the previous declarations' artifacts.
68
+ */
69
+ physical?: SchemaIR;
70
+ /** Owners `physical` cannot show (installed postgres extensions, triggers), probed live beside it. */
71
+ installed?: InstalledExtensionState;
72
+ /** The last authored schema the artifacts were generated from; defaults to `from`. */
73
+ previousDeclarations?: SchemaIR;
74
+ /** The up plan's own rebuild list (live generation, `SchemaMigrationPlan.rebuiltArtifacts`); computed from the declarations when absent. */
75
+ rebuilt?: readonly RebuiltArtifact[];
58
76
  }): DownMigrationFile;
59
77
  //# sourceMappingURL=down.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../src/down.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAU,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAahF,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,mFAAmF;IACnF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAqEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACvC,GAAG,iBAAiB,CAyEpB"}
1
+ {"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../src/down.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAU,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,mFAAmF;IACnF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAwEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sGAAsG;IACtG,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,QAAQ,CAAC;IAChC,4IAA4I;IAC5I,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACtC,GAAG,iBAAiB,CA+FpB"}
@@ -14,6 +14,7 @@ import type { Dialect, EnumIR, FieldIR } from "@vibeorm/schema";
14
14
  */
15
15
  export declare function resolveEnumValues(params: {
16
16
  name: string;
17
+ namespace?: string;
17
18
  enums: ReadonlyMap<string, EnumIR>;
18
19
  }): readonly string[] | undefined;
19
20
  /** Storage transitions are detected on physical fields, after normalization. */
@@ -1 +1 @@
1
- {"version":3,"file":"enum-values.d.ts","sourceRoot":"","sources":["../src/enum-values.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAQhC;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAGtF;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAaxI"}
1
+ {"version":3,"file":"enum-values.d.ts","sourceRoot":"","sources":["../src/enum-values.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAQhC;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAGtF;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAaxI"}
@@ -6,6 +6,7 @@ import type { MigrationObjectState } from "./inspect-objects.ts";
6
6
  export declare function deparseExclusion(params: {
7
7
  executor: SqlExecutor;
8
8
  table: string;
9
+ namespace?: string;
9
10
  definition: string;
10
11
  }): Promise<string>;
11
12
  /** Establish definition equivalence before the pure differ sees catalog SQL. */
@@ -1 +1 @@
1
- {"version":3,"file":"exclusions.d.ts","sourceRoot":"","sources":["../src/exclusions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAA4B,MAAM,sBAAsB,CAAC;AAE3F,6GAA6G;AAC7G,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5H;AAED,gFAAgF;AAChF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuBpN;AAED,+FAA+F;AAC/F,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAgBjJ"}
1
+ {"version":3,"file":"exclusions.d.ts","sourceRoot":"","sources":["../src/exclusions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAA4B,MAAM,sBAAsB,CAAC;AAE3F,6GAA6G;AAC7G,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAYhJ;AAED,gFAAgF;AAChF,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuBpN;AAED,+FAA+F;AAC/F,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAgBjJ"}
@@ -14,24 +14,46 @@
14
14
  * checking the introspected IR for their owners (columns, indexes,
15
15
  * tables by name); non-introspectable owners (postgres extensions,
16
16
  * triggers) rely on their idempotent IF NOT EXISTS forms and always run.
17
+ * 4. `planChangedArtifacts` decides which PRESENT artifacts must be dropped
18
+ * and created again because their definition changed since the last
19
+ * authored schema — `IF NOT EXISTS` would keep the old object silently.
17
20
  *
18
21
  * Removing a declaration does NOT auto-drop its artifacts (mirrors the v1
19
22
  * phantom-join-table precedent) — `drop` SQL is carried for tooling, not
20
23
  * scheduled by push.
21
24
  */
22
25
  import type { Dialect, ExtensionArtifact, SchemaIR, VibeExtension } from "@vibeorm/schema";
26
+ import type { MigrationFile } from "./types.ts";
27
+ /** The object artifacts one extension contributed, in its own order. */
28
+ export type ArtifactGroup = {
29
+ readonly extension: string;
30
+ readonly objects: readonly ExtensionArtifact[];
31
+ };
23
32
  /** Artifacts of every configured extension for this schema, in order. */
24
33
  export type CollectedArtifacts = {
25
34
  /** CREATE EXTENSION-class artifacts — run BEFORE the core diff SQL. */
26
35
  readonly setup: readonly ExtensionArtifact[];
27
36
  /** Object artifacts (columns, indexes, shadow tables, triggers) — run AFTER. */
28
37
  readonly objects: readonly ExtensionArtifact[];
38
+ /** `objects`, grouped by the extension that contributed them (rebuild scope). */
39
+ readonly groups: readonly ArtifactGroup[];
29
40
  };
30
41
  export declare function collectExtensionArtifacts(params: {
31
42
  schema: SchemaIR;
32
43
  dialect: Dialect;
33
44
  extensions: readonly VibeExtension[];
34
45
  }): CollectedArtifacts;
46
+ /**
47
+ * The last authored schema in a migration chain — the declarations its newest
48
+ * snapshot-bearing migration was generated from. Only extension declarations
49
+ * are read from it (`planChangedArtifacts`), never physical expectations, so
50
+ * an ordinary SQL successor does not disqualify it the way it disqualifies a
51
+ * deployed desired state: a hand-written index change after the snapshot is
52
+ * at worst rebuilt once more, visibly, in reviewed SQL.
53
+ */
54
+ export declare function lastDeclaredSchema(params: {
55
+ migrations: readonly MigrationFile[];
56
+ }): SchemaIR | undefined;
35
57
  /**
36
58
  * Remove extension-owned objects from an INTROSPECTED SchemaIR so the core
37
59
  * differ never sees them (they are neither dropped nor re-created by it).
@@ -71,4 +93,34 @@ export declare function probeInstalledExtensionState(params: {
71
93
  export declare function artifactCreateSql(params: {
72
94
  artifacts: readonly ExtensionArtifact[];
73
95
  }): string[];
96
+ /**
97
+ * Present object artifacts whose definition changed since the previously
98
+ * authored schema. The same extension code renders both sides, so only a real
99
+ * declaration, column or option change differs — and for such a change an
100
+ * idempotent `CREATE … IF NOT EXISTS` keeps the OLD object silently (a bm25
101
+ * index its old tokenizer, a tsvector column its old weights, an hnsw index
102
+ * its old `m`). Those artifacts are dropped and created again.
103
+ *
104
+ * Two sources say "changed": the previous authored declarations, when the
105
+ * caller has them, and `probed` — artifacts a server-side probe found to
106
+ * differ from their own create statements (`probeChangedArtifacts`).
107
+ *
108
+ * A rebuilt COLUMN takes the same extension's indexes and triggers on that
109
+ * table with it: dropping a generated column drops the index on it, whose own
110
+ * text is unchanged. The rebuild never touches CREATE EXTENSION-class
111
+ * artifacts (dropping an extension drops everything depending on it),
112
+ * artifacts in `missing` (their create runs anyway and their drop may not be
113
+ * idempotent) or artifacts whose owner moved (a renamed index is left to
114
+ * presence planning and the core differ's unmanaged-removal review).
115
+ */
116
+ export declare function planChangedArtifacts(params: {
117
+ previous?: CollectedArtifacts;
118
+ current: CollectedArtifacts;
119
+ missing: readonly ExtensionArtifact[];
120
+ probed?: readonly ExtensionArtifact[];
121
+ }): ExtensionArtifact[];
122
+ /** Drops of a rebuild, newest artifact first, so a dependent index goes before its column. */
123
+ export declare function artifactDropSql(params: {
124
+ artifacts: readonly ExtensionArtifact[];
125
+ }): string[];
74
126
  //# sourceMappingURL=extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EAEjB,QAAQ,EACR,aAAa,EACd,MAAM,iBAAiB,CAAC;AAIzB,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CACtC,GAAG,kBAAkB,CAwBrB;AAkBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,QAAQ,CAyCX;AAID,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,GAAG;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC,GAAG,iBAAiB,EAAE,CA8BtB;AAED,iFAAiF;AACjF,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,QAAQ,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACnG,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAiBnC;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,MAAM,EAAE,CAEX"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EAEjB,QAAQ,EACR,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAC3C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CACtC,GAAG,kBAAkB,CA+BrB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAAG,QAAQ,GAAG,SAAS,CAEzG;AAkBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,QAAQ,CAyCX;AAID,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,GAAG;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC,GAAG,iBAAiB,EAAE,CA8BtB;AAED,iFAAiF;AACjF,wBAAsB,4BAA4B,CAAC,MAAM,EAAE;IACzD,QAAQ,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACnG,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAiBnC;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACzC,GAAG,MAAM,EAAE,CAEX;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACvC,GAAG,iBAAiB,EAAE,CAuBtB;AAED,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GAAG,MAAM,EAAE,CAE7F"}
@@ -0,0 +1,37 @@
1
+ import type { Dialect, SqlObjectIdentity } from "@vibeorm/schema";
2
+ import type { ExternalDependentTarget } from "@vibeorm/sql";
3
+ import type { ExternalObjectResolution } from "./external-objects.ts";
4
+ import type { MigrationStep, SqlExecutor } from "./types.ts";
5
+ /** An application object a planned step drops or retypes, with the identity reported on refusal. */
6
+ export type ExternalDependencyTarget = ExternalDependentTarget & {
7
+ readonly dependency: SqlObjectIdentity;
8
+ };
9
+ /**
10
+ * Application objects whose planned change can break another owner's objects:
11
+ * dropped enums, tables, join tables, views and columns, and retyped columns.
12
+ * Additive steps, enum value additions and nullability/default changes keep
13
+ * every existing dependent valid; enum value removal is refused by the differ.
14
+ */
15
+ export declare function externalDependencyTargets(params: {
16
+ steps: readonly MigrationStep[];
17
+ namespace: string;
18
+ }): readonly ExternalDependencyTarget[];
19
+ /**
20
+ * Refuse when any catalog dependent of a target belongs to an external owner.
21
+ * Application, unmanaged and unattributable dependents (casts) are left to the
22
+ * existing unmanaged-removal checks and to PostgreSQL's RESTRICT drops.
23
+ */
24
+ export declare function assertNoExternalDependents(params: {
25
+ external: ExternalObjectResolution;
26
+ targets: readonly ExternalDependencyTarget[];
27
+ rows: readonly Record<string, unknown>[];
28
+ }): void;
29
+ /** Read catalog dependents of the planned drops/retypes and refuse external ones before any DDL. */
30
+ export declare function refuseExternalDependents(params: {
31
+ executor: SqlExecutor;
32
+ dialect: Dialect;
33
+ external: ExternalObjectResolution;
34
+ steps: readonly MigrationStep[];
35
+ namespace: string;
36
+ }): Promise<void>;
37
+ //# sourceMappingURL=external-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-dependencies.d.ts","sourceRoot":"","sources":["../src/external-dependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,oGAAoG;AACpG,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAI5G;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,wBAAwB,EAAE,CAY7I;AA4CD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,GAAG,IAAI,CAevL;AAED,oGAAoG;AACpG,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzM"}
@@ -0,0 +1,122 @@
1
+ import type { Dialect, QualifiedSqlName, SchemaIR, SqlObjectIdentity } from "@vibeorm/schema";
2
+ import type { CatalogObject } from "./inventory.ts";
3
+ import type { DesiredState } from "./desired-state.ts";
4
+ import type { SqlExecutor } from "./types.ts";
5
+ /** Plain-data ownership of a namespace or named public relations/routines. */
6
+ export type ExternalObjectOwner = {
7
+ readonly owner: string;
8
+ readonly schema: string;
9
+ readonly tables?: never;
10
+ readonly partitions?: never;
11
+ readonly functions?: never;
12
+ } | {
13
+ readonly owner: string;
14
+ readonly schema?: never;
15
+ readonly tables?: readonly string[];
16
+ readonly partitions?: readonly {
17
+ readonly parent: string;
18
+ readonly pattern: string;
19
+ }[];
20
+ readonly functions?: readonly string[];
21
+ };
22
+ /** Validate config and regular-expression syntax without opening a database. */
23
+ export declare function parseExternalObjects(params: {
24
+ value: unknown;
25
+ dialect?: Dialect;
26
+ }): Promise<readonly ExternalObjectOwner[]>;
27
+ /** Catalog edges retain their exact endpoints, including other namespaces. */
28
+ export type ExternalOwnershipCatalog = {
29
+ readonly namespaces: readonly string[];
30
+ readonly inventory: readonly CatalogObject[];
31
+ readonly inheritance: readonly {
32
+ readonly parent: QualifiedSqlName;
33
+ readonly child: QualifiedSqlName;
34
+ }[];
35
+ readonly ownedSequences: readonly {
36
+ readonly table: QualifiedSqlName;
37
+ readonly sequence: QualifiedSqlName;
38
+ }[];
39
+ readonly foreignKeys: readonly {
40
+ readonly table: QualifiedSqlName;
41
+ readonly target: QualifiedSqlName;
42
+ readonly name: string;
43
+ }[];
44
+ readonly coverageGaps?: readonly Record<string, unknown>[];
45
+ };
46
+ /** Ordinary routine declarations report missing names without inventing a signature. */
47
+ export type MissingExternalObject = {
48
+ readonly kind: "namespace";
49
+ readonly name: string;
50
+ } | {
51
+ readonly kind: "table" | "function";
52
+ readonly name: QualifiedSqlName;
53
+ };
54
+ /** Exclusion is an ownership report, never structural verification of another tool's objects. */
55
+ export type ExternalOwnerReport = {
56
+ readonly owner: string;
57
+ readonly state: "excluded";
58
+ readonly count: number;
59
+ readonly identities: readonly SqlObjectIdentity[];
60
+ readonly missing: readonly MissingExternalObject[];
61
+ };
62
+ type OwnedName = {
63
+ readonly owner: string;
64
+ readonly name: QualifiedSqlName;
65
+ };
66
+ /** Keep full observations beside comparison-only ownership closure. */
67
+ export type ExternalObjectResolution = {
68
+ readonly declarations: readonly ExternalObjectOwner[];
69
+ readonly catalog: ExternalOwnershipCatalog;
70
+ readonly inventory: readonly CatalogObject[];
71
+ readonly owners: readonly ExternalOwnerReport[];
72
+ readonly identities: readonly SqlObjectIdentity[];
73
+ readonly tables: readonly OwnedName[];
74
+ readonly sequences: readonly OwnedName[];
75
+ };
76
+ /** Match exact qualified ownership, including missing declarations and full-name patterns. */
77
+ export declare function externalObjectOwner(params: {
78
+ identity: SqlObjectIdentity;
79
+ external: ExternalObjectResolution;
80
+ }): string | undefined;
81
+ /** Resolve validated plain declarations from complete catalog observations, without DDL. */
82
+ export declare function resolveExternalObjectOwnership(params: {
83
+ external: readonly ExternalObjectOwner[];
84
+ catalog: ExternalOwnershipCatalog;
85
+ dialect: Dialect;
86
+ }): ExternalObjectResolution;
87
+ /** Read all ownership edges and retain unfiltered inventory for dependency safety. */
88
+ export declare function inspectExternalObjects(params: {
89
+ executor: SqlExecutor;
90
+ dialect: Dialect;
91
+ external: readonly ExternalObjectOwner[];
92
+ inventory?: readonly CatalogObject[];
93
+ }): Promise<ExternalObjectResolution>;
94
+ /** Refuse app/module/external collisions even when the target object does not yet exist. */
95
+ export declare function assertExternalOwnershipClaims(params: {
96
+ external: ExternalObjectResolution;
97
+ identities: readonly SqlObjectIdentity[];
98
+ }): void;
99
+ /** Comparison-only projection; shared enum types do not follow a named table. */
100
+ export declare function projectExternalSchema(params: {
101
+ schema: SchemaIR;
102
+ external: ExternalObjectResolution;
103
+ }): SchemaIR;
104
+ /** Do not mutate checksum-bound state while surrendering comparison ownership. */
105
+ export declare function projectExternalState(params: {
106
+ state: DesiredState;
107
+ external: ExternalObjectResolution;
108
+ }): DesiredState;
109
+ /** Drop external identities from comparisons only; resolution keeps the original inventory. */
110
+ export declare function projectExternalInventory(params: {
111
+ inventory: readonly CatalogObject[];
112
+ external: ExternalObjectResolution;
113
+ }): readonly CatalogObject[];
114
+ /** Exempt namespace placement only; every non-external layout/definition gap remains visible. */
115
+ export declare function migrationCoverageGaps(params: {
116
+ gaps: readonly Record<string, unknown>[];
117
+ namespace: string;
118
+ namespaces: readonly string[];
119
+ external?: ExternalObjectResolution;
120
+ }): readonly Record<string, unknown>[];
121
+ export {};
122
+ //# sourceMappingURL=external-objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-objects.d.ts","sourceRoot":"","sources":["../src/external-objects.ts"],"names":[],"mappings":"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"}
package/dist/fs.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAoC5E,iFAAiF;AACjF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA6B7G"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAoC5E,iFAAiF;AACjF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAgC7G"}