qubu 0.3.5 → 0.4.1

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 (104) hide show
  1. package/dist/{canonical-BbnqavJm.mjs → canonical-BXUguqfo.mjs} +23 -23
  2. package/dist/codegen.d.mts +25 -33
  3. package/dist/codegen.mjs +38 -45
  4. package/dist/column-hqKr7-1I.mjs +620 -0
  5. package/dist/{complete-D5Djh-zo.mjs → complete-WYyVozgK.mjs} +50 -50
  6. package/dist/{complete-types-B2PO6wQD.d.mts → complete-types-IjEn5VPN.d.mts} +56 -56
  7. package/dist/core.d.mts +2 -2
  8. package/dist/core.mjs +4 -4
  9. package/dist/ddl.d.mts +12 -12
  10. package/dist/ddl.mjs +13 -14
  11. package/dist/{dialect-b2-Z6uBF.mjs → dialect-wUKrnPMB.mjs} +2 -2
  12. package/dist/diff.d.mts +1 -1
  13. package/dist/diff.mjs +6 -7
  14. package/dist/{index-7qc6OcIC.d.mts → index-1DpA3mUh.d.mts} +20 -20
  15. package/dist/{index-CqWnouTK.d.mts → index-CPvfEheG.d.mts} +13 -15
  16. package/dist/index.d.mts +2 -2
  17. package/dist/index.mjs +148 -120
  18. package/dist/introspection.d.mts +8 -8
  19. package/dist/introspection.mjs +29 -30
  20. package/dist/{json-CUZlv4HT.mjs → json-Db7XRD91.mjs} +2 -2
  21. package/dist/migration.d.mts +20 -21
  22. package/dist/migration.mjs +5 -6
  23. package/dist/{mysql-DqkqXB6A.mjs → mysql-B_cYzzX2.mjs} +237 -7
  24. package/dist/mysql.d.mts +1 -1
  25. package/dist/mysql.mjs +3 -3
  26. package/dist/{on-conflict-BxnxubMb.mjs → on-conflict-hfPW0KmQ.mjs} +4 -4
  27. package/dist/postgres.d.mts +5 -5
  28. package/dist/postgres.mjs +6 -6
  29. package/dist/{registry-BufIskVN.mjs → registry-BRMLYwDp.mjs} +27 -135
  30. package/dist/{relational-DCZrrNia.mjs → relational-BZ3WDPzC.mjs} +4 -4
  31. package/dist/schema.d.mts +2 -2
  32. package/dist/schema.mjs +6 -6
  33. package/dist/{snapshot-CWPgzxNx.mjs → snapshot-C-W65HEd.mjs} +5 -5
  34. package/dist/snapshot.d.mts +3 -3
  35. package/dist/snapshot.mjs +5 -7
  36. package/dist/{source-DUoJVXmL.mjs → source-BcS2AsIg.mjs} +7 -9
  37. package/dist/{serialize-PF1cfH2P.mjs → sqlite-Cg0nwYEH.mjs} +326 -12
  38. package/dist/sqlite.d.mts +2 -2
  39. package/dist/sqlite.mjs +2 -2
  40. package/dist/{standard-BTVYKh_F.mjs → standard-DfcZEVOj.mjs} +1 -1
  41. package/dist/{table-CCUJ60rB.mjs → table-Bp5irMSj.mjs} +5 -7
  42. package/dist/{types-D8M1yZF4.d.mts → types-BK1COGZe.d.mts} +2661 -2150
  43. package/dist/{types-Cec0xzo4.mjs → types-JM3FcAnX.mjs} +8 -8
  44. package/dist/{types-LBt5rclR.d.mts → types-JSZHpUEj.d.mts} +83 -84
  45. package/dist/{value-BvilP0oz.mjs → value-Bi71Agyf.mjs} +1 -1
  46. package/dist/vite/ambient.d.ts +311 -390
  47. package/dist/vite.d.mts +5 -6
  48. package/dist/vite.mjs +3 -4
  49. package/docs/dialects-and-execution.md +121 -81
  50. package/docs/getting-started.md +4 -4
  51. package/docs/guides/better-auth.md +57 -0
  52. package/docs/guides/compose-queries.md +24 -67
  53. package/docs/guides/drizzle.md +23 -23
  54. package/docs/guides/extensions/dialects.md +4 -4
  55. package/docs/guides/extensions/sources-and-clauses.md +15 -15
  56. package/docs/guides/extensions/typed-expressions.md +13 -17
  57. package/docs/guides/extensions/unsafe-syntax.md +3 -3
  58. package/docs/guides/json.md +7 -7
  59. package/docs/guides/mutations.md +14 -21
  60. package/docs/guides/select/conditions.md +6 -8
  61. package/docs/guides/select/grouping-and-windows.md +4 -15
  62. package/docs/guides/select/ordering-and-pagination.md +6 -19
  63. package/docs/guides/select/overview.md +12 -26
  64. package/docs/guides/sql-templates.md +20 -24
  65. package/docs/guides/vite-plugin.md +9 -13
  66. package/docs/index.md +5 -7
  67. package/docs/query-model/fragments.md +4 -15
  68. package/docs/query-model/result-shapes.md +11 -14
  69. package/docs/query-model/source-scope.md +31 -49
  70. package/docs/reference/mysql-snapshot.md +2 -5
  71. package/docs/reference/postgres-snapshot.md +3 -3
  72. package/docs/reference/sqlite-snapshot.md +2 -5
  73. package/docs/reference/supported-surface.md +33 -33
  74. package/docs/schema/catalog-model.md +2 -5
  75. package/docs/schema/code-generation.md +18 -18
  76. package/docs/schema/columns-and-writes.md +17 -25
  77. package/docs/schema/constraints-and-indexes.md +36 -52
  78. package/docs/schema/ddl-emission.md +6 -6
  79. package/docs/schema/diff.md +5 -5
  80. package/docs/schema/introspection.md +7 -7
  81. package/docs/schema/migration-plans.md +9 -9
  82. package/docs/schema/snapshots.md +3 -3
  83. package/docs/schema/storage-and-schema-sql.md +11 -11
  84. package/docs/schema/tables-and-names.md +11 -14
  85. package/docs/sql-semantic-types.md +10 -10
  86. package/docs/troubleshooting.md +10 -10
  87. package/package.json +21 -33
  88. package/skills/qubu/agents/openai.yaml +3 -3
  89. package/dist/column-CXMxx8Hq.mjs +0 -118
  90. package/dist/column-CYMbKbOy.mjs +0 -290
  91. package/dist/drizzle-mysql.d.mts +0 -24
  92. package/dist/drizzle-mysql.mjs +0 -72
  93. package/dist/drizzle-postgres.d.mts +0 -24
  94. package/dist/drizzle-postgres.mjs +0 -73
  95. package/dist/drizzle-sqlite.d.mts +0 -50
  96. package/dist/drizzle-sqlite.mjs +0 -108
  97. package/dist/drizzle.d.mts +0 -13
  98. package/dist/drizzle.mjs +0 -2
  99. package/dist/errors-BGCoLe_r.mjs +0 -14
  100. package/dist/naming-QVCOnSj2.mjs +0 -20
  101. package/dist/postgres-DEBBeh52.mjs +0 -235
  102. package/dist/runtime-Cn_Xgzta.mjs +0 -193
  103. package/dist/sqlite-BU6DBxef.mjs +0 -320
  104. package/dist/types-Ctlxz1ip.d.mts +0 -45
@@ -1,4 +1,4 @@
1
- import { n as canonicalJson } from "./canonical-BbnqavJm.mjs";
1
+ import { n as canonicalJson } from "./canonical-BXUguqfo.mjs";
2
2
  //#region src/snapshot/complete-types.ts
3
3
  /** The stable envelope tag shared by Snapshot v1 and the complete model. */
4
4
  const completeSchemaSnapshotFormat = "qubu-schema";
@@ -139,7 +139,7 @@ function validateCompleteSnapshot(value, diagnostics) {
139
139
  const opaqueObjects = validateObjects(value.opaqueObjects, ["opaqueObjects"], diagnostics, validateOpaqueObject);
140
140
  const comments = validateObjects(value.comments, ["comments"], diagnostics, validateComment);
141
141
  const ownership = validateObjects(value.ownership, ["ownership"], diagnostics, validateOwnership);
142
- if (dialect === void 0 || namingPolicy === void 0 || namespace === void 0 || capabilities === void 0 || tables === void 0 || views === void 0 || sequences === void 0 || enums === void 0 || domains === void 0 || collations === void 0 || triggers === void 0 || routines === void 0 || partitions === void 0 || policies === void 0 || extensions === void 0 || deferredObjects === void 0 || opaqueObjects === void 0 || comments === void 0 || ownership === void 0) return void 0;
142
+ if (dialect === void 0 || namingPolicy === void 0 || namespace === void 0 || capabilities === void 0 || tables === void 0 || views === void 0 || sequences === void 0 || enums === void 0 || domains === void 0 || collations === void 0 || triggers === void 0 || routines === void 0 || partitions === void 0 || policies === void 0 || extensions === void 0 || deferredObjects === void 0 || opaqueObjects === void 0 || comments === void 0 || ownership === void 0) return;
143
143
  const snapshot = {
144
144
  format: completeSchemaSnapshotFormat,
145
145
  version: 2,
@@ -177,7 +177,7 @@ function validateDialect(value, path, diagnostics) {
177
177
  const version = integerValue(value.version, [...path, "version"], diagnostics);
178
178
  if (version !== void 0 && version < 1) diagnostics.push(issue("invalid-snapshot", "Dialect version must be positive", [...path, "version"]));
179
179
  if (version !== void 0 && version > 1) diagnostics.push(issue("future-version", `Unsupported dialect version: ${version}`, [...path, "version"]));
180
- if (name === void 0 || version === void 0) return void 0;
180
+ if (name === void 0 || version === void 0) return;
181
181
  return {
182
182
  name,
183
183
  version
@@ -252,7 +252,7 @@ function validateCapabilities(value, path, diagnostics) {
252
252
  const visibility = value.visibility;
253
253
  if (visibility !== "complete" && visibility !== "limited" && visibility !== "unknown") diagnostics.push(issue("invalid-snapshot", "Capability visibility is invalid", [...path, "visibility"]));
254
254
  for (const key of required) if (typeof value[key] !== "boolean" && key !== "checkConstraintEnforcement" && key !== "visibility") diagnostics.push(issue("invalid-snapshot", "Capability must be boolean", [...path, key]));
255
- if (diagnostics.some((diagnostic) => diagnostic.path.length === path.length + 1 && diagnostic.path.slice(0, path.length).every((part, i) => part === path[i]))) return void 0;
255
+ if (diagnostics.some((diagnostic) => diagnostic.path.length === path.length + 1 && diagnostic.path.slice(0, path.length).every((part, i) => part === path[i]))) return;
256
256
  return result;
257
257
  }
258
258
  function validateObjects(value, path, diagnostics, validate) {
@@ -313,11 +313,11 @@ function validateTable(value, path, diagnostics) {
313
313
  "constraints",
314
314
  "indexes"
315
315
  ]);
316
- if (!isRecord(value) || base === void 0) return void 0;
316
+ if (!isRecord(value) || base === void 0) return;
317
317
  const columns = validateObjects(value.columns, [...path, "columns"], diagnostics, validateColumn);
318
318
  const constraints = validateObjects(value.constraints, [...path, "constraints"], diagnostics, validateConstraint);
319
319
  const indexes = validateObjects(value.indexes, [...path, "indexes"], diagnostics, validateIndex);
320
- if (columns === void 0 || constraints === void 0 || indexes === void 0) return void 0;
320
+ if (columns === void 0 || constraints === void 0 || indexes === void 0) return;
321
321
  return {
322
322
  kind: "table",
323
323
  id: base.id,
@@ -340,7 +340,7 @@ function validateColumn(value, path, diagnostics) {
340
340
  "identity",
341
341
  "onUpdate"
342
342
  ]);
343
- if (!isRecord(value) || base === void 0) return void 0;
343
+ if (!isRecord(value) || base === void 0) return;
344
344
  const ordinalPosition = integerValue(value.ordinalPosition, [...path, "ordinalPosition"], diagnostics);
345
345
  const nullable = booleanValue(value.nullable, [...path, "nullable"], diagnostics);
346
346
  const hasDefault = booleanValue(value.hasDefault, [...path, "hasDefault"], diagnostics);
@@ -350,7 +350,7 @@ function validateColumn(value, path, diagnostics) {
350
350
  const generatedColumn = value.generatedColumn === void 0 ? void 0 : validateGenerated(value.generatedColumn, [...path, "generatedColumn"], diagnostics);
351
351
  const identity = value.identity === void 0 ? void 0 : validateIdentity(value.identity, [...path, "identity"], diagnostics);
352
352
  const onUpdate = value.onUpdate === void 0 ? void 0 : validateExpression(value.onUpdate, [...path, "onUpdate"], diagnostics);
353
- if (ordinalPosition === void 0 || nullable === void 0 || hasDefault === void 0 || generated === void 0) return void 0;
353
+ if (ordinalPosition === void 0 || nullable === void 0 || hasDefault === void 0 || generated === void 0) return;
354
354
  return {
355
355
  kind: "column",
356
356
  id: base.id,
@@ -395,12 +395,12 @@ function validateConstraint(value, path, diagnostics) {
395
395
  "initially",
396
396
  "validated"
397
397
  ]);
398
- if (base === void 0) return void 0;
398
+ if (base === void 0) return;
399
399
  if (kind === "check") {
400
400
  const expression = validateExpression(value.expression, [...path, "expression"], diagnostics);
401
401
  const timing = validateTiming(value, path, diagnostics);
402
402
  const validated = optionalBoolean(value.validated, [...path, "validated"], diagnostics);
403
- if (expression === void 0) return void 0;
403
+ if (expression === void 0) return;
404
404
  return {
405
405
  kind: "check",
406
406
  id: base.id,
@@ -419,7 +419,7 @@ function validateConstraint(value, path, diagnostics) {
419
419
  const match = validateMatch(value.match, [...path, "match"], diagnostics);
420
420
  const timing = validateTiming(value, path, diagnostics);
421
421
  const validated = optionalBoolean(value.validated, [...path, "validated"], diagnostics);
422
- if (columns === void 0 || target === void 0) return void 0;
422
+ if (columns === void 0 || target === void 0) return;
423
423
  return {
424
424
  kind: "foreign-key",
425
425
  id: base.id,
@@ -443,7 +443,7 @@ function validateConstraint(value, path, diagnostics) {
443
443
  const backingIndex = value.backingIndex === void 0 ? void 0 : validateObjectReference(value.backingIndex, [...path, "backingIndex"], diagnostics);
444
444
  const timing = validateTiming(value, path, diagnostics);
445
445
  const validated = optionalBoolean(value.validated, [...path, "validated"], diagnostics);
446
- if (columns === void 0) return void 0;
446
+ if (columns === void 0) return;
447
447
  if (kind === "unique-constraint" && nulls === void 0) {
448
448
  diagnostics.push(issue("invalid-snapshot", "Unique constraints require nulls semantics", [...path, "nulls"]));
449
449
  return;
@@ -470,7 +470,7 @@ function validateIndex(value, path, diagnostics) {
470
470
  "backingConstraint",
471
471
  "method"
472
472
  ]);
473
- if (!isRecord(value) || base === void 0) return void 0;
473
+ if (!isRecord(value) || base === void 0) return;
474
474
  const terms = validateArray(value.terms, [...path, "terms"], diagnostics, validateIndexTerm);
475
475
  if (terms !== void 0) validateSortedPositions(terms, [...path, "terms"], diagnostics);
476
476
  const unique = booleanValue(value.unique, [...path, "unique"], diagnostics);
@@ -479,7 +479,7 @@ function validateIndex(value, path, diagnostics) {
479
479
  const includedColumns = value.includedColumns === void 0 ? void 0 : validateIds(value.includedColumns, [...path, "includedColumns"], diagnostics, false);
480
480
  const backingConstraint = value.backingConstraint === void 0 ? void 0 : validateObjectReference(value.backingConstraint, [...path, "backingConstraint"], diagnostics);
481
481
  const method = value.method === void 0 ? void 0 : stringValue(value.method, [...path, "method"], diagnostics, true);
482
- if (terms === void 0 || unique === void 0 || candidateKey === void 0) return void 0;
482
+ if (terms === void 0 || unique === void 0 || candidateKey === void 0) return;
483
483
  return {
484
484
  kind: "index",
485
485
  id: base.id,
@@ -520,7 +520,7 @@ function validateIndexTerm(value, path, diagnostics) {
520
520
  if (kind === "column") {
521
521
  const column = stringValue(value.column, [...path, "column"], diagnostics, true);
522
522
  const prefixLength = value.prefixLength === void 0 ? void 0 : validateValueFact(value.prefixLength, [...path, "prefixLength"], diagnostics);
523
- if (column === void 0 || position === void 0) return void 0;
523
+ if (column === void 0 || position === void 0) return;
524
524
  return {
525
525
  kind: "column",
526
526
  column,
@@ -533,7 +533,7 @@ function validateIndexTerm(value, path, diagnostics) {
533
533
  }
534
534
  if (kind === "expression") {
535
535
  const expression = validateExpression(value.expression, [...path, "expression"], diagnostics);
536
- if (expression === void 0 || position === void 0) return void 0;
536
+ if (expression === void 0 || position === void 0) return;
537
537
  return {
538
538
  kind: "expression",
539
539
  expression,
@@ -554,14 +554,14 @@ function validateView(value, path, diagnostics) {
554
554
  "securityBarrier",
555
555
  "securityInvoker"
556
556
  ]);
557
- if (!isRecord(value) || base === void 0) return void 0;
557
+ if (!isRecord(value) || base === void 0) return;
558
558
  const columns = validateObjects(value.columns, [...path, "columns"], diagnostics, validateColumn);
559
559
  const definition = validateExpression(value.definition, [...path, "definition"], diagnostics);
560
560
  const dependencies = value.dependencies === void 0 ? void 0 : validateReferences(value.dependencies, [...path, "dependencies"], diagnostics);
561
561
  const checkOption = validateCheckOption(value.checkOption, [...path, "checkOption"], diagnostics);
562
562
  const securityBarrier = optionalBoolean(value.securityBarrier, [...path, "securityBarrier"], diagnostics);
563
563
  const securityInvoker = optionalBoolean(value.securityInvoker, [...path, "securityInvoker"], diagnostics);
564
- if (columns === void 0 || definition === void 0) return void 0;
564
+ if (columns === void 0 || definition === void 0) return;
565
565
  return {
566
566
  kind: value.kind,
567
567
  id: base.id,
@@ -587,7 +587,7 @@ function validateSequence(value, path, diagnostics) {
587
587
  "ownedBy",
588
588
  "identity"
589
589
  ]);
590
- if (!isRecord(value) || base === void 0) return void 0;
590
+ if (!isRecord(value) || base === void 0) return;
591
591
  const storage = value.storage === void 0 ? void 0 : validateStorage(value.storage, [...path, "storage"], diagnostics);
592
592
  const start = value.start === void 0 ? void 0 : validateValueFact(value.start, [...path, "start"], diagnostics);
593
593
  const increment = value.increment === void 0 ? void 0 : validateValueFact(value.increment, [...path, "increment"], diagnostics);
@@ -615,9 +615,9 @@ function validateSequence(value, path, diagnostics) {
615
615
  }
616
616
  function validateEnum(value, path, diagnostics) {
617
617
  const base = validateBase(value, path, "enum", void 0, diagnostics, ["values"]);
618
- if (!isRecord(value) || base === void 0) return void 0;
618
+ if (!isRecord(value) || base === void 0) return;
619
619
  const values = validateArray(value.values, [...path, "values"], diagnostics, validateEnumValue);
620
- if (values === void 0) return void 0;
620
+ if (values === void 0) return;
621
621
  let previous = -1;
622
622
  for (const [index, item] of values.entries()) {
623
623
  if (item.ordinalPosition <= previous) diagnostics.push(issue("non-canonical", "Enum labels must be sorted by ordinal position", [
@@ -662,12 +662,12 @@ function validateDomain(value, path, diagnostics) {
662
662
  "default",
663
663
  "constraints"
664
664
  ]);
665
- if (!isRecord(value) || base === void 0) return void 0;
665
+ if (!isRecord(value) || base === void 0) return;
666
666
  const storage = validateStorage(value.storage, [...path, "storage"], diagnostics);
667
667
  const nullable = optionalBoolean(value.nullable, [...path, "nullable"], diagnostics);
668
668
  const defaultValue = value.default === void 0 ? void 0 : validateValueFact(value.default, [...path, "default"], diagnostics);
669
669
  const constraints = value.constraints === void 0 ? void 0 : validateArray(value.constraints, [...path, "constraints"], diagnostics, validateCheckConstraint);
670
- if (storage === void 0) return void 0;
670
+ if (storage === void 0) return;
671
671
  return {
672
672
  kind: "domain",
673
673
  id: base.id,
@@ -694,7 +694,7 @@ function validateCollation(value, path, diagnostics) {
694
694
  "deterministic",
695
695
  "version"
696
696
  ]);
697
- if (!isRecord(value) || base === void 0) return void 0;
697
+ if (!isRecord(value) || base === void 0) return;
698
698
  const provider = value.provider === void 0 ? void 0 : stringValue(value.provider, [...path, "provider"], diagnostics, true);
699
699
  const locale = value.locale === void 0 ? void 0 : stringValue(value.locale, [...path, "locale"], diagnostics);
700
700
  const deterministic = optionalBoolean(value.deterministic, [...path, "deterministic"], diagnostics);
@@ -720,7 +720,7 @@ function validateTrigger(value, path, diagnostics) {
720
720
  "body",
721
721
  "enabled"
722
722
  ]);
723
- if (!isRecord(value) || base === void 0) return void 0;
723
+ if (!isRecord(value) || base === void 0) return;
724
724
  const table = validateObjectReference(value.table, [...path, "table"], diagnostics);
725
725
  const timing = validateTimingKind(value.timing, [...path, "timing"], diagnostics);
726
726
  const events = validateEvents(value.events, [...path, "events"], diagnostics);
@@ -728,7 +728,7 @@ function validateTrigger(value, path, diagnostics) {
728
728
  const condition = value.condition === void 0 ? void 0 : validateExpression(value.condition, [...path, "condition"], diagnostics);
729
729
  const body = validateExpression(value.body, [...path, "body"], diagnostics);
730
730
  const enabled = optionalBoolean(value.enabled, [...path, "enabled"], diagnostics);
731
- if (table === void 0 || timing === void 0 || events === void 0 || body === void 0) return void 0;
731
+ if (table === void 0 || timing === void 0 || events === void 0 || body === void 0) return;
732
732
  return {
733
733
  kind: "trigger",
734
734
  id: base.id,
@@ -755,7 +755,7 @@ function validateRoutine(value, path, diagnostics) {
755
755
  "security",
756
756
  "dependencies"
757
757
  ]);
758
- if (!isRecord(value) || base === void 0) return void 0;
758
+ if (!isRecord(value) || base === void 0) return;
759
759
  const routineKind = validateRoutineKind(value.routineKind, [...path, "routineKind"], diagnostics);
760
760
  const parameters = validateArray(value.parameters, [...path, "parameters"], diagnostics, validateRoutineParameter);
761
761
  if (parameters !== void 0) validateSortedPositions(parameters, [...path, "parameters"], diagnostics);
@@ -780,7 +780,7 @@ function validateRoutine(value, path, diagnostics) {
780
780
  "unknown"
781
781
  ], [...path, "security"], diagnostics);
782
782
  const dependencies = value.dependencies === void 0 ? void 0 : validateReferences(value.dependencies, [...path, "dependencies"], diagnostics);
783
- if (routineKind === void 0 || parameters === void 0) return void 0;
783
+ if (routineKind === void 0 || parameters === void 0) return;
784
784
  return {
785
785
  kind: "routine",
786
786
  id: base.id,
@@ -840,7 +840,7 @@ function validatePartition(value, path, diagnostics) {
840
840
  "bound",
841
841
  "default"
842
842
  ]);
843
- if (!isRecord(value) || base === void 0) return void 0;
843
+ if (!isRecord(value) || base === void 0) return;
844
844
  const parent = validateObjectReference(value.parent, [...path, "parent"], diagnostics);
845
845
  const strategy = validateChoice(value.strategy, [
846
846
  "range",
@@ -852,7 +852,7 @@ function validatePartition(value, path, diagnostics) {
852
852
  const keyColumns = value.keyColumns === void 0 ? void 0 : validateIds(value.keyColumns, [...path, "keyColumns"], diagnostics, false);
853
853
  const bound = value.bound === void 0 ? void 0 : validateExpression(value.bound, [...path, "bound"], diagnostics);
854
854
  const defaultValue = optionalBoolean(value.default, [...path, "default"], diagnostics);
855
- if (parent === void 0 || strategy === void 0) return void 0;
855
+ if (parent === void 0 || strategy === void 0) return;
856
856
  return {
857
857
  kind: "partition",
858
858
  id: base.id,
@@ -874,7 +874,7 @@ function validatePolicy(value, path, diagnostics) {
874
874
  "using",
875
875
  "check"
876
876
  ]);
877
- if (!isRecord(value) || base === void 0) return void 0;
877
+ if (!isRecord(value) || base === void 0) return;
878
878
  const table = validateObjectReference(value.table, [...path, "table"], diagnostics);
879
879
  const command = validateChoice(value.command, [
880
880
  "all",
@@ -888,7 +888,7 @@ function validatePolicy(value, path, diagnostics) {
888
888
  const permissive = optionalBoolean(value.permissive, [...path, "permissive"], diagnostics);
889
889
  const using = value.using === void 0 ? void 0 : validateExpression(value.using, [...path, "using"], diagnostics);
890
890
  const check = value.check === void 0 ? void 0 : validateExpression(value.check, [...path, "check"], diagnostics);
891
- if (table === void 0 || command === void 0) return void 0;
891
+ if (table === void 0 || command === void 0) return;
892
892
  return {
893
893
  kind: "policy",
894
894
  id: base.id,
@@ -910,13 +910,13 @@ function validateExtensionObject(value, path, diagnostics) {
910
910
  "data",
911
911
  "configuration"
912
912
  ]);
913
- if (!isRecord(value) || base === void 0) return void 0;
913
+ if (!isRecord(value) || base === void 0) return;
914
914
  const extensionName = stringValue(value.extensionName, [...path, "extensionName"], diagnostics, true);
915
915
  const extensionVersion = value.extensionVersion === void 0 ? void 0 : stringValue(value.extensionVersion, [...path, "extensionVersion"], diagnostics);
916
916
  const schema = value.schema === void 0 ? void 0 : stringValue(value.schema, [...path, "schema"], diagnostics, true);
917
917
  const data = validateJsonValue(value.data, [...path, "data"], diagnostics);
918
918
  const configuration = value.configuration === void 0 ? void 0 : validateJsonValue(value.configuration, [...path, "configuration"], diagnostics);
919
- if (extensionName === void 0 || data === void 0) return void 0;
919
+ if (extensionName === void 0 || data === void 0) return;
920
920
  return {
921
921
  kind: "extension",
922
922
  id: base.id,
@@ -935,11 +935,11 @@ function validateDeferredObject(value, path, diagnostics) {
935
935
  "reason",
936
936
  "data"
937
937
  ]);
938
- if (!isRecord(value) || base === void 0) return void 0;
938
+ if (!isRecord(value) || base === void 0) return;
939
939
  const objectKind = stringValue(value.objectKind, [...path, "objectKind"], diagnostics, true);
940
940
  const reason = value.reason === void 0 ? void 0 : stringValue(value.reason, [...path, "reason"], diagnostics);
941
941
  const data = value.data === void 0 ? void 0 : validateJsonValue(value.data, [...path, "data"], diagnostics);
942
- if (objectKind === void 0) return void 0;
942
+ if (objectKind === void 0) return;
943
943
  return {
944
944
  kind: "deferred-object",
945
945
  id: base.id,
@@ -956,11 +956,11 @@ function validateOpaqueObject(value, path, diagnostics) {
956
956
  "data",
957
957
  "sql"
958
958
  ]);
959
- if (!isRecord(value) || base === void 0) return void 0;
959
+ if (!isRecord(value) || base === void 0) return;
960
960
  const objectKind = stringValue(value.objectKind, [...path, "objectKind"], diagnostics, true);
961
961
  const data = validateJsonValue(value.data, [...path, "data"], diagnostics);
962
962
  const sql = value.sql === void 0 ? void 0 : validateExpression(value.sql, [...path, "sql"], diagnostics);
963
- if (objectKind === void 0 || data === void 0) return void 0;
963
+ if (objectKind === void 0 || data === void 0) return;
964
964
  return {
965
965
  kind: "opaque-object",
966
966
  id: base.id,
@@ -973,10 +973,10 @@ function validateOpaqueObject(value, path, diagnostics) {
973
973
  }
974
974
  function validateComment(value, path, diagnostics) {
975
975
  const base = validateBase(value, path, "comment", void 0, diagnostics, ["object", "text"]);
976
- if (!isRecord(value) || base === void 0) return void 0;
976
+ if (!isRecord(value) || base === void 0) return;
977
977
  const object = validateObjectReference(value.object, [...path, "object"], diagnostics);
978
978
  const text = stringValue(value.text, [...path, "text"], diagnostics);
979
- if (object === void 0 || text === void 0) return void 0;
979
+ if (object === void 0 || text === void 0) return;
980
980
  return {
981
981
  kind: "comment",
982
982
  id: base.id,
@@ -988,10 +988,10 @@ function validateComment(value, path, diagnostics) {
988
988
  }
989
989
  function validateOwnership(value, path, diagnostics) {
990
990
  const base = validateBase(value, path, "ownership", void 0, diagnostics, ["object", "owner"]);
991
- if (!isRecord(value) || base === void 0) return void 0;
991
+ if (!isRecord(value) || base === void 0) return;
992
992
  const object = validateObjectReference(value.object, [...path, "object"], diagnostics);
993
993
  const owner = stringValue(value.owner, [...path, "owner"], diagnostics, true);
994
- if (object === void 0 || owner === void 0) return void 0;
994
+ if (object === void 0 || owner === void 0) return;
995
995
  return {
996
996
  kind: "ownership",
997
997
  id: base.id,
@@ -1030,7 +1030,7 @@ function validateStorage(value, path, diagnostics) {
1030
1030
  "real",
1031
1031
  "text"
1032
1032
  ], [...path, "affinity"], diagnostics);
1033
- if (dialect === void 0 || type === void 0) return void 0;
1033
+ if (dialect === void 0 || type === void 0) return;
1034
1034
  return {
1035
1035
  kind: "native",
1036
1036
  dialect,
@@ -1113,7 +1113,7 @@ function validateIdentity(value, path, diagnostics) {
1113
1113
  const generation = validateChoice(value.generation, ["always", "by-default"], [...path, "generation"], diagnostics);
1114
1114
  const options = validateValueFactRecord(value.options, [...path, "options"], diagnostics);
1115
1115
  const metadata = validateObjectMetadata(value, path, void 0, diagnostics);
1116
- if (generation === void 0 || options === void 0 || value.kind !== "identity") return void 0;
1116
+ if (generation === void 0 || options === void 0 || value.kind !== "identity") return;
1117
1117
  return {
1118
1118
  kind: "identity",
1119
1119
  generation,
@@ -1139,7 +1139,7 @@ function validateExpression(value, path, diagnostics) {
1139
1139
  if (sql !== void 0 && sql !== sql.replace(/\r\n?/g, "\n")) diagnostics.push(issue("non-canonical", "Expression SQL must use LF line endings", [...path, "sql"]));
1140
1140
  if (expressionKind === "unsafe" && dialect === void 0) diagnostics.push(issue("invalid-snapshot", "Unsafe expressions must carry a dialect tag", [...path, "dialect"]));
1141
1141
  if (expressionKind !== void 0 && expressionKind !== "unsafe" && dialect !== void 0) diagnostics.push(issue("invalid-snapshot", "Only unsafe expressions may carry a dialect tag", [...path, "dialect"]));
1142
- if (expressionKind === void 0 || sql === void 0 || value.kind !== "expression") return void 0;
1142
+ if (expressionKind === void 0 || sql === void 0 || value.kind !== "expression") return;
1143
1143
  return {
1144
1144
  kind: "expression",
1145
1145
  expressionKind,
@@ -1230,7 +1230,7 @@ function validateProvenance(value, path, dialect, diagnostics) {
1230
1230
  const sourceDialect = stringValue(value.dialect, [...path, "dialect"], diagnostics, true);
1231
1231
  const sourcePath = value.path === void 0 ? void 0 : validatePath(value.path, [...path, "path"], diagnostics);
1232
1232
  if (dialect !== void 0 && sourceDialect !== void 0 && sourceDialect !== dialect) diagnostics.push(issue("dialect-mismatch", `Provenance belongs to "${sourceDialect}" but snapshot dialect is "${dialect}"`, [...path, "dialect"]));
1233
- if (kind === void 0 || sourceDialect === void 0) return void 0;
1233
+ if (kind === void 0 || sourceDialect === void 0) return;
1234
1234
  return {
1235
1235
  kind,
1236
1236
  dialect: sourceDialect,
@@ -1276,7 +1276,7 @@ function validateExtension(value, path, dialect, diagnostics) {
1276
1276
  if (version !== void 0 && version < 1) diagnostics.push(issue("invalid-snapshot", "Dialect extension version must be positive", [...path, "version"]));
1277
1277
  if (version !== void 0 && version > 1) diagnostics.push(issue("future-version", `Unsupported dialect extension version: ${version}`, [...path, "version"]));
1278
1278
  if (dialect !== void 0 && extensionDialect !== void 0 && extensionDialect !== dialect) diagnostics.push(issue("dialect-mismatch", `Dialect extension belongs to "${extensionDialect}" but snapshot dialect is "${dialect}"`, [...path, "dialect"]));
1279
- if (extensionDialect === void 0 || version === void 0 || data === void 0) return void 0;
1279
+ if (extensionDialect === void 0 || version === void 0 || data === void 0) return;
1280
1280
  return {
1281
1281
  dialect: extensionDialect,
1282
1282
  version,
@@ -1362,7 +1362,7 @@ function validateForeignKeyTarget(value, path, diagnostics) {
1362
1362
  }
1363
1363
  function validateIds(value, path, diagnostics, nonEmpty = true) {
1364
1364
  const result = validateStrings(value, path, diagnostics, nonEmpty);
1365
- if (result === void 0) return void 0;
1365
+ if (result === void 0) return;
1366
1366
  const seen = /* @__PURE__ */ new Set();
1367
1367
  for (const [index, id] of result.entries()) {
1368
1368
  if (seen.has(id)) diagnostics.push(issue("non-canonical", "References cannot contain duplicate IDs", [...path, index]));
@@ -1457,7 +1457,7 @@ function validateRoutineKind(value, path, diagnostics) {
1457
1457
  }
1458
1458
  function validateEvents(value, path, diagnostics) {
1459
1459
  const events = validateStrings(value, path, diagnostics, true);
1460
- if (events === void 0) return void 0;
1460
+ if (events === void 0) return;
1461
1461
  const allowed = /* @__PURE__ */ new Set([
1462
1462
  "insert",
1463
1463
  "update",
@@ -1481,7 +1481,7 @@ function validatePath(value, path, diagnostics) {
1481
1481
  return result;
1482
1482
  }
1483
1483
  function validateChoice(value, choices, path, diagnostics) {
1484
- if (value === void 0) return void 0;
1484
+ if (value === void 0) return;
1485
1485
  if (choices.includes(value)) return value;
1486
1486
  diagnostics.push(issue("invalid-snapshot", `Value must be one of ${choices.join(", ")}`, path));
1487
1487
  }