@memberjunction/cli 5.37.0 → 5.39.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 (177) hide show
  1. package/README.md +74 -0
  2. package/dist/baseline/cli-helpers.d.ts +12 -0
  3. package/dist/baseline/cli-helpers.d.ts.map +1 -0
  4. package/dist/baseline/cli-helpers.js +40 -0
  5. package/dist/baseline/cli-helpers.js.map +1 -0
  6. package/dist/baseline/comparator.d.ts +26 -0
  7. package/dist/baseline/comparator.d.ts.map +1 -0
  8. package/dist/baseline/comparator.js +527 -0
  9. package/dist/baseline/comparator.js.map +1 -0
  10. package/dist/baseline/connection.d.ts +39 -0
  11. package/dist/baseline/connection.d.ts.map +1 -0
  12. package/dist/baseline/connection.js +104 -0
  13. package/dist/baseline/connection.js.map +1 -0
  14. package/dist/baseline/data-dumper.d.ts +23 -0
  15. package/dist/baseline/data-dumper.d.ts.map +1 -0
  16. package/dist/baseline/data-dumper.js +94 -0
  17. package/dist/baseline/data-dumper.js.map +1 -0
  18. package/dist/baseline/emitter.d.ts +36 -0
  19. package/dist/baseline/emitter.d.ts.map +1 -0
  20. package/dist/baseline/emitter.js +519 -0
  21. package/dist/baseline/emitter.js.map +1 -0
  22. package/dist/baseline/index.d.ts +18 -0
  23. package/dist/baseline/index.d.ts.map +1 -0
  24. package/dist/baseline/index.js +14 -0
  25. package/dist/baseline/index.js.map +1 -0
  26. package/dist/baseline/introspector-mssql.d.ts +15 -0
  27. package/dist/baseline/introspector-mssql.d.ts.map +1 -0
  28. package/dist/baseline/introspector-mssql.js +673 -0
  29. package/dist/baseline/introspector-mssql.js.map +1 -0
  30. package/dist/baseline/introspector-postgres.d.ts +14 -0
  31. package/dist/baseline/introspector-postgres.d.ts.map +1 -0
  32. package/dist/baseline/introspector-postgres.js +277 -0
  33. package/dist/baseline/introspector-postgres.js.map +1 -0
  34. package/dist/baseline/report.d.ts +7 -0
  35. package/dist/baseline/report.d.ts.map +1 -0
  36. package/dist/baseline/report.js +105 -0
  37. package/dist/baseline/report.js.map +1 -0
  38. package/dist/baseline/types.d.ts +286 -0
  39. package/dist/baseline/types.d.ts.map +1 -0
  40. package/dist/baseline/types.js +10 -0
  41. package/dist/baseline/types.js.map +1 -0
  42. package/dist/baseline/util.d.ts +112 -0
  43. package/dist/baseline/util.d.ts.map +1 -0
  44. package/dist/baseline/util.js +325 -0
  45. package/dist/baseline/util.js.map +1 -0
  46. package/dist/commands/baseline/build.d.ts +29 -0
  47. package/dist/commands/baseline/build.d.ts.map +1 -0
  48. package/dist/commands/baseline/build.js +188 -0
  49. package/dist/commands/baseline/build.js.map +1 -0
  50. package/dist/commands/baseline/compare.d.ts +19 -0
  51. package/dist/commands/baseline/compare.d.ts.map +1 -0
  52. package/dist/commands/baseline/compare.js +133 -0
  53. package/dist/commands/baseline/compare.js.map +1 -0
  54. package/dist/commands/baseline/roundtrip.d.ts +23 -0
  55. package/dist/commands/baseline/roundtrip.d.ts.map +1 -0
  56. package/dist/commands/baseline/roundtrip.js +245 -0
  57. package/dist/commands/baseline/roundtrip.js.map +1 -0
  58. package/dist/commands/bundle/index.d.ts +21 -0
  59. package/dist/commands/bundle/index.d.ts.map +1 -0
  60. package/dist/commands/bundle/index.js +62 -0
  61. package/dist/commands/bundle/index.js.map +1 -0
  62. package/dist/commands/migrate/index.d.ts +29 -0
  63. package/dist/commands/migrate/index.d.ts.map +1 -1
  64. package/dist/commands/migrate/index.js +111 -5
  65. package/dist/commands/migrate/index.js.map +1 -1
  66. package/dist/commands/test/compare.d.ts +3 -0
  67. package/dist/commands/test/compare.d.ts.map +1 -1
  68. package/dist/commands/test/compare.js +23 -3
  69. package/dist/commands/test/compare.js.map +1 -1
  70. package/dist/commands/test/regression/build.d.ts +14 -0
  71. package/dist/commands/test/regression/build.d.ts.map +1 -0
  72. package/dist/commands/test/regression/build.js +48 -0
  73. package/dist/commands/test/regression/build.js.map +1 -0
  74. package/dist/commands/test/regression/compare.d.ts +15 -0
  75. package/dist/commands/test/regression/compare.d.ts.map +1 -0
  76. package/dist/commands/test/regression/compare.js +66 -0
  77. package/dist/commands/test/regression/compare.js.map +1 -0
  78. package/dist/commands/test/regression/down.d.ts +10 -0
  79. package/dist/commands/test/regression/down.d.ts.map +1 -0
  80. package/dist/commands/test/regression/down.js +29 -0
  81. package/dist/commands/test/regression/down.js.map +1 -0
  82. package/dist/commands/test/regression/export.d.ts +11 -0
  83. package/dist/commands/test/regression/export.d.ts.map +1 -0
  84. package/dist/commands/test/regression/export.js +56 -0
  85. package/dist/commands/test/regression/export.js.map +1 -0
  86. package/dist/commands/test/regression/gen-forms.d.ts +7 -0
  87. package/dist/commands/test/regression/gen-forms.d.ts.map +1 -0
  88. package/dist/commands/test/regression/gen-forms.js +18 -0
  89. package/dist/commands/test/regression/gen-forms.js.map +1 -0
  90. package/dist/commands/test/regression/index.d.ts +7 -0
  91. package/dist/commands/test/regression/index.d.ts.map +1 -0
  92. package/dist/commands/test/regression/index.js +33 -0
  93. package/dist/commands/test/regression/index.js.map +1 -0
  94. package/dist/commands/test/regression/init.d.ts +21 -0
  95. package/dist/commands/test/regression/init.d.ts.map +1 -0
  96. package/dist/commands/test/regression/init.js +111 -0
  97. package/dist/commands/test/regression/init.js.map +1 -0
  98. package/dist/commands/test/regression/remote.d.ts +23 -0
  99. package/dist/commands/test/regression/remote.d.ts.map +1 -0
  100. package/dist/commands/test/regression/remote.js +140 -0
  101. package/dist/commands/test/regression/remote.js.map +1 -0
  102. package/dist/commands/test/regression/up.d.ts +21 -0
  103. package/dist/commands/test/regression/up.d.ts.map +1 -0
  104. package/dist/commands/test/regression/up.js +111 -0
  105. package/dist/commands/test/regression/up.js.map +1 -0
  106. package/dist/commands/test/run.d.ts +1 -0
  107. package/dist/commands/test/run.d.ts.map +1 -1
  108. package/dist/commands/test/run.js +6 -0
  109. package/dist/commands/test/run.js.map +1 -1
  110. package/dist/commands/test/suite.d.ts +5 -0
  111. package/dist/commands/test/suite.d.ts.map +1 -1
  112. package/dist/commands/test/suite.js +27 -0
  113. package/dist/commands/test/suite.js.map +1 -1
  114. package/dist/commands/translate-sql/index.d.ts.map +1 -1
  115. package/dist/commands/translate-sql/index.js +3 -2
  116. package/dist/commands/translate-sql/index.js.map +1 -1
  117. package/dist/config.d.ts +6 -0
  118. package/dist/config.d.ts.map +1 -1
  119. package/dist/config.js +13 -0
  120. package/dist/config.js.map +1 -1
  121. package/dist/init-templates/bring-your-own-app/README.md +74 -0
  122. package/dist/init-templates/bring-your-own-app/byo-metadata/.mj-sync.json +10 -0
  123. package/dist/init-templates/bring-your-own-app/byo-metadata/test-suites/.byo-suite.json +51 -0
  124. package/dist/init-templates/bring-your-own-app/byo-metadata/test-suites/.mj-sync.json +12 -0
  125. package/dist/init-templates/bring-your-own-app/byo-metadata/tests/.T01-counter-increment.json +63 -0
  126. package/dist/init-templates/bring-your-own-app/byo-metadata/tests/.T02-contact-form-submit.json +63 -0
  127. package/dist/init-templates/bring-your-own-app/byo-metadata/tests/.mj-sync.json +12 -0
  128. package/dist/init-templates/bring-your-own-app/docker-compose.app.yml +76 -0
  129. package/dist/init-templates/bring-your-own-app/target.json +23 -0
  130. package/dist/init-templates/generic-web/README.md +115 -0
  131. package/dist/init-templates/generic-web/metadata/.mj-sync.json +10 -0
  132. package/dist/init-templates/generic-web/metadata/test-suites/.generic-web-suite.json +48 -0
  133. package/dist/init-templates/generic-web/metadata/test-suites/.mj-sync.json +12 -0
  134. package/dist/init-templates/generic-web/metadata/tests/.GW01-home-loads.json +74 -0
  135. package/dist/init-templates/generic-web/metadata/tests/.GW02-search-array-map.json +82 -0
  136. package/dist/init-templates/generic-web/metadata/tests/.mj-sync.json +12 -0
  137. package/dist/init-templates/generic-web/oracles/mdn-oracles.cjs +121 -0
  138. package/dist/init-templates/generic-web/target.json +25 -0
  139. package/dist/init-templates/github-actions/README.md +26 -0
  140. package/dist/init-templates/github-actions/regression.yml +52 -0
  141. package/dist/init-templates/remote-mj/README.md +95 -0
  142. package/dist/init-templates/remote-mj/target.json +22 -0
  143. package/dist/init-templates/static-file-server/Dockerfile +23 -0
  144. package/dist/init-templates/static-file-server/README.md +88 -0
  145. package/dist/init-templates/static-file-server/docker-compose.app.yml +44 -0
  146. package/dist/init-templates/static-file-server/metadata/.mj-sync.json +10 -0
  147. package/dist/init-templates/static-file-server/metadata/test-suites/.mj-sync.json +12 -0
  148. package/dist/init-templates/static-file-server/metadata/test-suites/.static-server-suite.json +27 -0
  149. package/dist/init-templates/static-file-server/metadata/tests/.SS01-home-loads.json +45 -0
  150. package/dist/init-templates/static-file-server/metadata/tests/.SS02-navigate-about.json +45 -0
  151. package/dist/init-templates/static-file-server/metadata/tests/.mj-sync.json +12 -0
  152. package/dist/init-templates/static-file-server/public/about.html +12 -0
  153. package/dist/init-templates/static-file-server/public/index.html +27 -0
  154. package/dist/init-templates/static-file-server/target.json +16 -0
  155. package/dist/lib/db-preflight.d.ts +42 -0
  156. package/dist/lib/db-preflight.d.ts.map +1 -0
  157. package/dist/lib/db-preflight.js +113 -0
  158. package/dist/lib/db-preflight.js.map +1 -0
  159. package/dist/lib/db-version.d.ts +36 -0
  160. package/dist/lib/db-version.d.ts.map +1 -0
  161. package/dist/lib/db-version.js +45 -0
  162. package/dist/lib/db-version.js.map +1 -0
  163. package/dist/lib/migration-fetch.d.ts +49 -0
  164. package/dist/lib/migration-fetch.d.ts.map +1 -0
  165. package/dist/lib/migration-fetch.js +152 -0
  166. package/dist/lib/migration-fetch.js.map +1 -0
  167. package/dist/lib/regression/docker-helpers.d.ts +98 -0
  168. package/dist/lib/regression/docker-helpers.d.ts.map +1 -0
  169. package/dist/lib/regression/docker-helpers.js +184 -0
  170. package/dist/lib/regression/docker-helpers.js.map +1 -0
  171. package/dist/light-commands.d.ts.map +1 -1
  172. package/dist/light-commands.js +2 -0
  173. package/dist/light-commands.js.map +1 -1
  174. package/oclif.manifest.json +1635 -702
  175. package/package.json +22 -17
  176. package/regression-compose/docker-compose.bacpac-standalone.yml +109 -0
  177. package/regression-compose/docker-compose.standalone.yml +50 -0
package/README.md CHANGED
@@ -435,6 +435,80 @@ mj app install https://github.com/BlueCypress/SaaS \
435
435
  --dangerously-ignore-dbl-underscore-schema-rule
436
436
  ```
437
437
 
438
+ ### mj baseline
439
+
440
+ Build, compare, and round-trip **baseline migrations** — a single SQL script that captures the end-state of an entire V-stack (schema + every row of every table) into one deterministic `B`-prefixed file that Flyway/Skyway can apply to a fresh database in place of the long migration chain.
441
+
442
+ > Niche command — only needed when **collapsing a V-stack into a new baseline** (within-major rebaseline) or **cutting a new major version** (e.g. v5 → v6). Day-to-day MJ development never touches this; use `mj migrate` for routine schema changes.
443
+
444
+ Three subcommands:
445
+
446
+ - `mj baseline build` — connect to a live MSSQL database, introspect everything, dump every row of every table, and emit a canonical T-SQL script.
447
+ - `mj baseline compare` — diff two live databases object-by-object **and** row-by-row.
448
+ - `mj baseline roundtrip` — `build` + apply to a fresh DB + `compare` in one shot. Proves the new baseline is byte-equivalent to the V-stack it replaces.
449
+
450
+ #### Two operating modes
451
+
452
+ | Mode | Trigger | Version source | Timestamp | Output folder |
453
+ | --- | --- | --- | --- | --- |
454
+ | **AUTO — within-major rebaseline** (default) | `--baseline-version` omitted | `Major.Minor` parsed from the latest V-file in `--source-dir` | latest V-file's timestamp **+ 1 minute** | the **same** `migrations/v{N}/` it scanned |
455
+ | **EXPLICIT — major-boundary baseline** | `--baseline-version M.N` provided | the flag value | `Date.now()` UTC | `migrations/v{N+1}/` (new) |
456
+
457
+ AUTO mode is the right choice 99% of the time. EXPLICIT is for starting a new major version (e.g. `v6.0`).
458
+
459
+ Filename format: `B{YYYYMMDDHHMM}__v{Major}.{Minor}.x__Baseline.sql` (literal lowercase `x` matches the V-file patch convention — patches don't carry migrations).
460
+
461
+ #### mj baseline build
462
+
463
+ ```bash
464
+ # AUTO — within-major rebaseline (writes back into ./migrations/v5/)
465
+ mj baseline build --out ./migrations/v5/
466
+
467
+ # EXPLICIT — start a new major version (writes into ./migrations/v6/)
468
+ mj baseline build --baseline-version 6.0 --out ./migrations/v6/
469
+
470
+ # Schema-only, no data inserts
471
+ mj baseline build --no-data --out ./baselines/
472
+ ```
473
+
474
+ Key flags: `--baseline-version`, `--source-dir`, `--database`, `--out`, `--exclude-data <csv>`, `--batch-size`, `--no-data`, `--dry-run`, `--verbose`. Run `mj baseline build --help` for the full list with defaults.
475
+
476
+ Database host/user/password come from the MJ config (`mj.config.cjs` / `.env`); `--database` overrides only the database name.
477
+
478
+ #### mj baseline compare
479
+
480
+ ```bash
481
+ # Full row-by-row diff (default)
482
+ mj baseline compare --left MJ_BL_Stack --right MJ_BL_New
483
+
484
+ # Counts-only (fastest)
485
+ mj baseline compare --left A --right B --row-compare counts
486
+
487
+ # CI use — fail the build on any diff, write reports
488
+ mj baseline compare --left A --right B --fail-on-diff --out ./diffs/
489
+ ```
490
+
491
+ Row-compare modes: `full` | `hash` | `counts` | `none`. Hash mode supports `--row-hash-algo sha256|md5|checksum_agg`. `--dialect mssql|postgres` (both sides must match).
492
+
493
+ #### mj baseline roundtrip
494
+
495
+ ```bash
496
+ # AUTO — verify the current v5.x V-stack collapses cleanly
497
+ mj baseline roundtrip --source MJ_BL_Stack --target MJ_BL_New
498
+
499
+ # EXPLICIT — verify a v6.0 baseline
500
+ mj baseline roundtrip --baseline-version 6.0 --source MJ_BL_Stack --target MJ_BL_New
501
+ ```
502
+
503
+ `--source` is the gold-standard DB with the V-stack already applied; `--target` is an empty DB the new baseline will be applied to and compared against. Add `--keep-target` to inspect the post-apply DB after a failed diff. `--apply-cmd` lets you override the default `sqlcmd` apply step (tokens: `{file}`, `{database}`).
504
+
505
+ #### Related tooling
506
+
507
+ - **Slash command** — [`/create-new-baseline-migration`](../../.claude/commands/create-new-baseline-migration.md) drives the workbench end-to-end from a local Claude Code session (spins up the workbench, runs the roundtrip, stages the file in `migrations/` only if byte-equivalent).
508
+ - **Workbench script** — [`docker/workbench/baseline-roundtrip.sh`](../../docker/workbench/baseline-roundtrip.sh) (aliases `mjbaseline`, `mjbaseline-mssql`, `mjbaseline-pg` inside the workbench container) is the 7-phase end-to-end runner the slash command invokes.
509
+ - **Design record** — [`packages/MJCLI/src/commands/baseline/PLAN.md`](src/commands/baseline/PLAN.md) documents the architecture, decisions, and component layout.
510
+ - **PostgreSQL** — the T-SQL baseline is converted via `mj migrate convert` (see `/pg-migrate` skill) before being applied to a PG target.
511
+
438
512
  ## Hooks
439
513
 
440
514
  | Hook | Timing | Purpose |
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared helpers for the `mj baseline ...` oclif commands.
3
+ *
4
+ * - Resolve a DbConnectionParams from the merged MJ config (env + mj.config.cjs)
5
+ * with optional flag overrides (db name, host, etc).
6
+ * - Detect TTY for spinner vs. plain log output.
7
+ */
8
+ import type { DbConnectionParams, DbConnectionOverrides } from './connection.js';
9
+ import type { Dialect } from './types.js';
10
+ export declare function resolveConnection(overrides?: DbConnectionOverrides, dialectFlag?: Dialect): DbConnectionParams;
11
+ export declare function isTty(): boolean;
12
+ //# sourceMappingURL=cli-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-helpers.d.ts","sourceRoot":"","sources":["../../src/baseline/cli-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,qBAA0B,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAwBlH;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Shared helpers for the `mj baseline ...` oclif commands.
3
+ *
4
+ * - Resolve a DbConnectionParams from the merged MJ config (env + mj.config.cjs)
5
+ * with optional flag overrides (db name, host, etc).
6
+ * - Detect TTY for spinner vs. plain log output.
7
+ */
8
+ import { getValidatedConfig } from '../config.js';
9
+ export function resolveConnection(overrides = {}, dialectFlag) {
10
+ const config = getValidatedConfig();
11
+ const dialect = dialectFlag
12
+ ?? (config.dbPlatform === 'postgresql' ? 'postgres' : 'mssql');
13
+ const host = overrides.host ?? config.dbHost;
14
+ const port = overrides.port ?? (config.dbPort ? Number(config.dbPort) : undefined);
15
+ const database = overrides.database ?? config.dbDatabase;
16
+ const user = overrides.user ?? config.codeGenLogin;
17
+ const password = overrides.password ?? config.codeGenPassword;
18
+ if (!host)
19
+ throw new Error('No DB host configured (set DB_HOST or dbHost in mj.config.cjs).');
20
+ if (!database)
21
+ throw new Error('No DB database configured (set DB_DATABASE or dbDatabase, or pass --database).');
22
+ if (!user)
23
+ throw new Error('No DB user configured (set CODEGEN_DB_USERNAME).');
24
+ if (!password)
25
+ throw new Error('No DB password configured (set CODEGEN_DB_PASSWORD).');
26
+ return {
27
+ dialect,
28
+ host,
29
+ port,
30
+ database,
31
+ user,
32
+ password,
33
+ encrypt: overrides.encrypt ?? Boolean(config.dbEncrypt),
34
+ trustServerCertificate: overrides.trustServerCertificate ?? Boolean(config.dbTrustServerCertificate),
35
+ };
36
+ }
37
+ export function isTty() {
38
+ return Boolean(process.stdout.isTTY) && process.env.CI !== 'true';
39
+ }
40
+ //# sourceMappingURL=cli-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-helpers.js","sourceRoot":"","sources":["../../src/baseline/cli-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,UAAU,iBAAiB,CAAC,YAAmC,EAAE,EAAE,WAAqB;IAC5F,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAY,WAAW;WAC/B,CAAC,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC;IACzD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAK,MAAoC,CAAC,YAAY,CAAC;IAClF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAK,MAAuC,CAAC,eAAe,CAAC;IAChG,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC9F,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACjH,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC/E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACvF,OAAO;QACL,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QACvD,sBAAsB,EAAE,SAAS,CAAC,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC;KACrG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;AACpE,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Schema and data comparator.
3
+ *
4
+ * Produces a DiffReport from two SchemaSnapshots. Operates dialect-agnostically
5
+ * because the snapshot shape is normalized; tagging is preserved on each side
6
+ * but equality is decided structurally.
7
+ *
8
+ * Row-by-row comparison (when row data is supplied) walks each table's rows
9
+ * in their canonical order and reports value-level diffs.
10
+ */
11
+ import type { BaselineCompareOptions, DiffReport, SchemaSnapshot, TableDataDump } from './types.js';
12
+ export interface CompareInput {
13
+ left: {
14
+ snapshot: SchemaSnapshot;
15
+ data: readonly TableDataDump[];
16
+ label: string;
17
+ };
18
+ right: {
19
+ snapshot: SchemaSnapshot;
20
+ data: readonly TableDataDump[];
21
+ label: string;
22
+ };
23
+ options: BaselineCompareOptions;
24
+ }
25
+ export declare function compareSnapshots(input: CompareInput): DiffReport;
26
+ //# sourceMappingURL=comparator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../src/baseline/comparator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,sBAAsB,EAGtB,UAAU,EAMV,cAAc,EACd,aAAa,EAKd,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,KAAK,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAoMhE"}