@fougere/adapter-sql 0.9.3-alpha.0 → 0.11.0-alpha.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 (202) hide show
  1. package/dist/check.d.ts +1 -1
  2. package/dist/check.d.ts.map +1 -1
  3. package/dist/{crud.d.ts → crud/SqlStorage.d.ts} +3 -7
  4. package/dist/crud/SqlStorage.d.ts.map +1 -0
  5. package/dist/{crud.js → crud/SqlStorage.js} +5 -8
  6. package/dist/crud/SqlStorage.js.map +1 -0
  7. package/dist/crud/StorageFactoryOptions.d.ts +5 -0
  8. package/dist/crud/StorageFactoryOptions.d.ts.map +1 -0
  9. package/dist/crud/StorageFactoryOptions.js +2 -0
  10. package/dist/crud/StorageFactoryOptions.js.map +1 -0
  11. package/dist/ddl/GenerateOptions.d.ts +8 -0
  12. package/dist/ddl/GenerateOptions.d.ts.map +1 -0
  13. package/dist/ddl/GenerateOptions.js +2 -0
  14. package/dist/ddl/GenerateOptions.js.map +1 -0
  15. package/dist/{ddl.d.ts → ddl/SqlSink.d.ts} +6 -10
  16. package/dist/ddl/SqlSink.d.ts.map +1 -0
  17. package/dist/{ddl.js → ddl/SqlSink.js} +6 -7
  18. package/dist/ddl/SqlSink.js.map +1 -0
  19. package/dist/{dialect.d.ts → dialect/Dialect.d.ts} +3 -4
  20. package/dist/dialect/Dialect.d.ts.map +1 -0
  21. package/dist/{dialect.js → dialect/Dialect.js} +1 -1
  22. package/dist/dialect/Dialect.js.map +1 -0
  23. package/dist/dialect/DialectName.d.ts +2 -0
  24. package/dist/dialect/DialectName.d.ts.map +1 -0
  25. package/dist/dialect/DialectName.js +2 -0
  26. package/dist/dialect/DialectName.js.map +1 -0
  27. package/dist/{diff.d.ts → diff/Change.d.ts} +7 -7
  28. package/dist/diff/Change.d.ts.map +1 -0
  29. package/dist/{diff.js → diff/Change.js} +6 -7
  30. package/dist/diff/Change.js.map +1 -0
  31. package/dist/diff/SchemaState.d.ts +6 -0
  32. package/dist/diff/SchemaState.d.ts.map +1 -0
  33. package/dist/diff/SchemaState.js +11 -0
  34. package/dist/diff/SchemaState.js.map +1 -0
  35. package/dist/drift.d.ts +1 -1
  36. package/dist/drift.d.ts.map +1 -1
  37. package/dist/drift.js +1 -1
  38. package/dist/drift.js.map +1 -1
  39. package/dist/fields/Engine.d.ts +4 -0
  40. package/dist/fields/Engine.d.ts.map +1 -0
  41. package/dist/fields/Engine.js +2 -0
  42. package/dist/fields/Engine.js.map +1 -0
  43. package/dist/fields/SqlField.d.ts +6 -0
  44. package/dist/fields/SqlField.d.ts.map +1 -0
  45. package/dist/fields/SqlField.js +2 -0
  46. package/dist/fields/SqlField.js.map +1 -0
  47. package/dist/{fields.d.ts → fields/SqlFields.d.ts} +2 -9
  48. package/dist/fields/SqlFields.d.ts.map +1 -0
  49. package/dist/{fields.js → fields/SqlFields.js} +2 -2
  50. package/dist/fields/SqlFields.js.map +1 -0
  51. package/dist/index.d.ts +23 -16
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +10 -9
  54. package/dist/index.js.map +1 -1
  55. package/dist/order/FkEdge.d.ts +7 -0
  56. package/dist/order/FkEdge.d.ts.map +1 -0
  57. package/dist/order/FkEdge.js +2 -0
  58. package/dist/order/FkEdge.js.map +1 -0
  59. package/dist/{order.d.ts → order/TableOrder.d.ts} +3 -10
  60. package/dist/order/TableOrder.d.ts.map +1 -0
  61. package/dist/{order.js → order/TableOrder.js} +1 -1
  62. package/dist/order/TableOrder.js.map +1 -0
  63. package/dist/{query.d.ts → query/QueryEvent.d.ts} +1 -7
  64. package/dist/query/QueryEvent.d.ts.map +1 -0
  65. package/dist/query/QueryEvent.js +2 -0
  66. package/dist/query/QueryEvent.js.map +1 -0
  67. package/dist/query/QuerySink.d.ts +8 -0
  68. package/dist/query/QuerySink.d.ts.map +1 -0
  69. package/dist/{query.js → query/QuerySink.js} +1 -1
  70. package/dist/query/QuerySink.js.map +1 -0
  71. package/dist/source/Setup.d.ts +4 -0
  72. package/dist/source/Setup.d.ts.map +1 -0
  73. package/dist/source/Setup.js +2 -0
  74. package/dist/source/Setup.js.map +1 -0
  75. package/dist/{source.d.ts → source/SqlSource.d.ts} +11 -15
  76. package/dist/source/SqlSource.d.ts.map +1 -0
  77. package/dist/{source.js → source/SqlSource.js} +12 -9
  78. package/dist/source/SqlSource.js.map +1 -0
  79. package/dist/source/SqlSourceOptions.d.ts +8 -0
  80. package/dist/source/SqlSourceOptions.d.ts.map +1 -0
  81. package/dist/source/SqlSourceOptions.js +2 -0
  82. package/dist/source/SqlSourceOptions.js.map +1 -0
  83. package/dist/{sqlite.d.ts → sqlite/SqliteSource.d.ts} +3 -6
  84. package/dist/sqlite/SqliteSource.d.ts.map +1 -0
  85. package/dist/{sqlite.js → sqlite/SqliteSource.js} +7 -8
  86. package/dist/sqlite/SqliteSource.js.map +1 -0
  87. package/dist/sqlite/SqliteSourceOptions.d.ts +6 -0
  88. package/dist/sqlite/SqliteSourceOptions.d.ts.map +1 -0
  89. package/dist/sqlite/SqliteSourceOptions.js +2 -0
  90. package/dist/sqlite/SqliteSourceOptions.js.map +1 -0
  91. package/dist/sqlite/index.d.ts +3 -0
  92. package/dist/sqlite/index.d.ts.map +1 -0
  93. package/dist/sqlite/index.js +2 -0
  94. package/dist/sqlite/index.js.map +1 -0
  95. package/dist/{step.d.ts → step/Plan.d.ts} +6 -28
  96. package/dist/step/Plan.d.ts.map +1 -0
  97. package/dist/{step.js → step/Plan.js} +5 -6
  98. package/dist/step/Plan.js.map +1 -0
  99. package/dist/step/PlanOptions.d.ts +8 -0
  100. package/dist/step/PlanOptions.d.ts.map +1 -0
  101. package/dist/step/PlanOptions.js +2 -0
  102. package/dist/step/PlanOptions.js.map +1 -0
  103. package/dist/step/Refusal.d.ts +7 -0
  104. package/dist/step/Refusal.d.ts.map +1 -0
  105. package/dist/step/Refusal.js +2 -0
  106. package/dist/step/Refusal.js.map +1 -0
  107. package/dist/step/StepChange.d.ts +12 -0
  108. package/dist/step/StepChange.d.ts.map +1 -0
  109. package/dist/step/StepChange.js +2 -0
  110. package/dist/step/StepChange.js.map +1 -0
  111. package/dist/table/AppLike.d.ts +12 -0
  112. package/dist/table/AppLike.d.ts.map +1 -0
  113. package/dist/table/AppLike.js +2 -0
  114. package/dist/table/AppLike.js.map +1 -0
  115. package/dist/table/ColumnDef.d.ts +34 -0
  116. package/dist/table/ColumnDef.d.ts.map +1 -0
  117. package/dist/table/ColumnDef.js +2 -0
  118. package/dist/table/ColumnDef.js.map +1 -0
  119. package/dist/table/ColumnReference.d.ts +6 -0
  120. package/dist/table/ColumnReference.d.ts.map +1 -0
  121. package/dist/table/ColumnReference.js +2 -0
  122. package/dist/table/ColumnReference.js.map +1 -0
  123. package/dist/table/EntityEntry.d.ts +7 -0
  124. package/dist/table/EntityEntry.d.ts.map +1 -0
  125. package/dist/table/EntityEntry.js +2 -0
  126. package/dist/table/EntityEntry.js.map +1 -0
  127. package/dist/table/FrondLike.d.ts +6 -0
  128. package/dist/table/FrondLike.d.ts.map +1 -0
  129. package/dist/table/FrondLike.js +2 -0
  130. package/dist/table/FrondLike.js.map +1 -0
  131. package/dist/table/HostedNames.d.ts +8 -0
  132. package/dist/table/HostedNames.d.ts.map +1 -0
  133. package/dist/table/HostedNames.js +2 -0
  134. package/dist/table/HostedNames.js.map +1 -0
  135. package/dist/table/RelationResolve.d.ts +12 -0
  136. package/dist/table/RelationResolve.d.ts.map +1 -0
  137. package/dist/table/RelationResolve.js +2 -0
  138. package/dist/table/RelationResolve.js.map +1 -0
  139. package/dist/table/TableDef.d.ts +29 -0
  140. package/dist/table/TableDef.d.ts.map +1 -0
  141. package/dist/{table.js → table/TableDef.js} +3 -4
  142. package/dist/table/TableDef.js.map +1 -0
  143. package/package.json +6 -6
  144. package/src/check.ts +1 -1
  145. package/src/{crud.ts → crud/SqlStorage.ts} +6 -13
  146. package/src/crud/StorageFactoryOptions.ts +4 -0
  147. package/src/ddl/GenerateOptions.ts +8 -0
  148. package/src/{ddl.ts → ddl/SqlSink.ts} +8 -21
  149. package/src/{dialect.ts → dialect/Dialect.ts} +2 -4
  150. package/src/dialect/DialectName.ts +1 -0
  151. package/src/{diff.ts → diff/Change.ts} +10 -16
  152. package/src/diff/SchemaState.ts +13 -0
  153. package/src/drift.ts +2 -2
  154. package/src/fields/Engine.ts +4 -0
  155. package/src/fields/SqlField.ts +6 -0
  156. package/src/{fields.ts → fields/SqlFields.ts} +5 -10
  157. package/src/index.ts +23 -23
  158. package/src/order/FkEdge.ts +7 -0
  159. package/src/{order.ts → order/TableOrder.ts} +2 -10
  160. package/src/query/QueryEvent.ts +16 -0
  161. package/src/{query.ts → query/QuerySink.ts} +2 -17
  162. package/src/source/Setup.ts +4 -0
  163. package/src/{source.ts → source/SqlSource.ts} +14 -20
  164. package/src/source/SqlSourceOptions.ts +8 -0
  165. package/src/{sqlite.ts → sqlite/SqliteSource.ts} +7 -12
  166. package/src/sqlite/SqliteSourceOptions.ts +6 -0
  167. package/src/sqlite/index.ts +2 -0
  168. package/src/{step.ts → step/Plan.ts} +8 -27
  169. package/src/step/PlanOptions.ts +8 -0
  170. package/src/step/Refusal.ts +6 -0
  171. package/src/step/StepChange.ts +4 -0
  172. package/src/table/AppLike.ts +10 -0
  173. package/src/table/ColumnDef.ts +34 -0
  174. package/src/table/ColumnReference.ts +5 -0
  175. package/src/table/EntityEntry.ts +7 -0
  176. package/src/table/FrondLike.ts +6 -0
  177. package/src/table/HostedNames.ts +7 -0
  178. package/src/table/RelationResolve.ts +12 -0
  179. package/src/{table.ts → table/TableDef.ts} +10 -77
  180. package/dist/crud.d.ts.map +0 -1
  181. package/dist/crud.js.map +0 -1
  182. package/dist/ddl.d.ts.map +0 -1
  183. package/dist/ddl.js.map +0 -1
  184. package/dist/dialect.d.ts.map +0 -1
  185. package/dist/dialect.js.map +0 -1
  186. package/dist/diff.d.ts.map +0 -1
  187. package/dist/diff.js.map +0 -1
  188. package/dist/fields.d.ts.map +0 -1
  189. package/dist/fields.js.map +0 -1
  190. package/dist/order.d.ts.map +0 -1
  191. package/dist/order.js.map +0 -1
  192. package/dist/query.d.ts.map +0 -1
  193. package/dist/query.js.map +0 -1
  194. package/dist/source.d.ts.map +0 -1
  195. package/dist/source.js.map +0 -1
  196. package/dist/sqlite.d.ts.map +0 -1
  197. package/dist/sqlite.js.map +0 -1
  198. package/dist/step.d.ts.map +0 -1
  199. package/dist/step.js.map +0 -1
  200. package/dist/table.d.ts +0 -97
  201. package/dist/table.d.ts.map +0 -1
  202. package/dist/table.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,16 +1,17 @@
1
- export { createTableSQL, generateSQL, autoMigrate, compiler } from './ddl.js';
2
- export { onQuery } from './query.js';
3
- export { toTable, toTables, toTableName, toSnakeCase } from './table.js';
4
- export { orderTables } from './order.js';
5
- export { columnTypeFor, dialects, } from './dialect.js';
6
- export { SqlStorage, createStorageFactory } from './crud.js';
1
+ export { autoMigrate, compiler, createTableSQL, generateSQL } from './ddl/SqlSink.js';
2
+ export { onQuery } from './query/QuerySink.js';
3
+ export { toSnakeCase, toTable, toTableName, toTables } from './table/TableDef.js';
4
+ export { orderTables } from './order/TableOrder.js';
5
+ export { columnTypeFor, dialects } from './dialect/Dialect.js';
6
+ export { SqlStorage, createStorageFactory } from './crud/SqlStorage.js';
7
7
  export { codecsOf } from './values.js';
8
8
  // The driver this package owns is NOT here: `better-sqlite3` is native and `node:fs` is a
9
9
  // builtin, and an index that re-exported them made the whole adapter unreachable from a
10
10
  // runtime that has neither. It lives at `@fougere/adapter-sql/sqlite`.
11
- export { createKyselySource } from './source.js';
11
+ export { createKyselySource } from './source/SqlSource.js';
12
12
  export { drift } from './drift.js';
13
- export { actualState, desiredTables, delta, changeSQL, migrate } from './diff.js';
13
+ export { actualState } from './diff/SchemaState.js';
14
+ export { changeSQL, delta, desiredTables, migrate } from './diff/Change.js';
14
15
  // The non-additive half — realised only from a step a human wrote down.
15
- export { planStep, collapseChain, applyStep } from './step.js';
16
+ export { applyStep, collapseChain, planStep } from './step/Plan.js';
16
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,OAAO,EACL,aAAa,EACb,QAAQ,GACT,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,0FAA0F;AAC1F,wFAAwF;AACxF,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAElF,wEAAwE;AACxE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,0FAA0F;AAC1F,wFAAwF;AACxF,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG5E,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ColumnDef } from '../table/ColumnDef.js';
2
+ import type { TableDef } from '../table/TableDef.js';
3
+ export interface FkEdge {
4
+ table: TableDef;
5
+ column: ColumnDef;
6
+ }
7
+ //# sourceMappingURL=FkEdge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FkEdge.d.ts","sourceRoot":"","sources":["../../src/order/FkEdge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FkEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FkEdge.js","sourceRoot":"","sources":["../../src/order/FkEdge.ts"],"names":[],"mappings":""}
@@ -1,12 +1,5 @@
1
- /**
2
- * In what order a batch of tables is created — the one question that reads a `TableDef` and
3
- * knows nothing above it: no entity, no axis, no schema.
4
- */
5
- import type { ColumnDef, TableDef } from './table.js';
6
- export interface FkEdge {
7
- table: TableDef;
8
- column: ColumnDef;
9
- }
1
+ import type { TableDef } from '../table/TableDef.js';
2
+ import type { FkEdge } from './FkEdge.js';
10
3
  export interface TableOrder {
11
4
  /** Tables in dependency order — a `ref()` target always precedes its referrer. */
12
5
  ordered: TableDef[];
@@ -20,4 +13,4 @@ export interface TableOrder {
20
13
  * this function entirely).
21
14
  */
22
15
  export declare function orderTables(tables: TableDef[]): TableOrder;
23
- //# sourceMappingURL=order.d.ts.map
16
+ //# sourceMappingURL=TableOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableOrder.d.ts","sourceRoot":"","sources":["../../src/order/TableOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAsC1D"}
@@ -37,4 +37,4 @@ export function orderTables(tables) {
37
37
  }
38
38
  return { ordered, deferred };
39
39
  }
40
- //# sourceMappingURL=order.js.map
40
+ //# sourceMappingURL=TableOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableOrder.js","sourceRoot":"","sources":["../../src/order/TableOrder.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI;QACV,IAAI,GAAG,CACL,KAAK,CAAC,OAAO;aACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAClG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAW,CAAC,KAAK,CAAC,CACnC;KACF,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,sEAAsE;QACtE,4EAA4E;QAC5E,iCAAiC;QACjC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,UAAU,EAAE,KAAK,KAAK,GAAG;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,4 +1,3 @@
1
- import type { LogEvent } from 'kysely';
2
1
  /** One statement this process ran, and what it cost. */
3
2
  export interface QueryEvent {
4
3
  /** Which storage ran it — a process may open several (`sources:`). */
@@ -15,9 +14,4 @@ export interface QueryEvent {
15
14
  failed: boolean;
16
15
  at: number;
17
16
  }
18
- export type QuerySink = (event: QueryEvent) => void;
19
- /** Be told about every statement this process runs, and get the unsubscription back. */
20
- export declare function onQuery(sink: QuerySink): () => void;
21
- /** The `log` every Kysely is built with. Named by storage, since a sink sees them all. */
22
- export declare function logQueries(storage: string): (event: LogEvent) => void;
23
- //# sourceMappingURL=query.d.ts.map
17
+ //# sourceMappingURL=QueryEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEvent.d.ts","sourceRoot":"","sources":["../../src/query/QueryEvent.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QueryEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEvent.js","sourceRoot":"","sources":["../../src/query/QueryEvent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { LogEvent } from 'kysely';
2
+ import type { QueryEvent } from './QueryEvent.js';
3
+ export type QuerySink = (event: QueryEvent) => void;
4
+ /** Be told about every statement this process runs, and get the unsubscription back. */
5
+ export declare function onQuery(sink: QuerySink): () => void;
6
+ /** The `log` every Kysely is built with. Named by storage, since a sink sees them all. */
7
+ export declare function logQueries(storage: string): (event: LogEvent) => void;
8
+ //# sourceMappingURL=QuerySink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuerySink.d.ts","sourceRoot":"","sources":["../../src/query/QuerySink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAIpD,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,IAAI,CAOnD;AAeD,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAoBrE"}
@@ -43,4 +43,4 @@ export function logQueries(storage) {
43
43
  }
44
44
  };
45
45
  }
46
- //# sourceMappingURL=query.js.map
46
+ //# sourceMappingURL=QuerySink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuerySink.js","sourceRoot":"","sources":["../../src/query/QuerySink.ts"],"names":[],"mappings":"AAKA,MAAM,KAAK,GAAgB,EAAE,CAAC;AAE9B,wFAAwF;AACxF,MAAM,UAAU,OAAO,CAAC,IAAe;IACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjB,OAAO,GAAG,EAAE;QACV,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,WAAW,CAAC;AAEzB,uFAAuF;AACvF,MAAM,OAAO,GAAG,2CAA2C,CAAC;AAE5D;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,MAAM,IAAI,GAAe;YACvB,OAAO;YACP,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;YACpB,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO;YAC9C,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,WAAW,EAAE;YACpE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;YACzC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,IAAI;YACvD,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,OAAO;YAC/B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC;QACF,qFAAqF;QACrF,gFAAgF;QAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SqlSource } from './SqlSource.js';
2
+ /** The name this shape answered to before it was one realization among several. */
3
+ export type Setup = SqlSource;
4
+ //# sourceMappingURL=Setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setup.d.ts","sourceRoot":"","sources":["../../src/source/Setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,mFAAmF;AACnF,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setup.js","sourceRoot":"","sources":["../../src/source/Setup.ts"],"names":[],"mappings":""}
@@ -1,15 +1,9 @@
1
- /** Storage setup — the shape every engine answers, and no driver at all. */
2
1
  import { Kysely, type Dialect as KyselyDialect } from 'kysely';
3
2
  import type { Source } from '@fougere/core';
4
- import { createStorageFactory, type StorageFactoryOptions } from './crud.js';
5
- import type { DialectName } from './dialect.js';
6
- import type { SqlSink } from './ddl.js';
7
- export interface SqlSourceOptions {
8
- /** Override naming for specific entities (e.g. better-auth wants singular table names). */
9
- storageFactoryOptions?: StorageFactoryOptions;
10
- /** What to call this storage when a query is reported. */
11
- name?: string;
12
- }
3
+ import { createStorageFactory } from '../crud/SqlStorage.js';
4
+ import type { DialectName } from '../dialect/DialectName.js';
5
+ import type { SqlSink } from '../ddl/SqlSink.js';
6
+ import type { SqlSourceOptions } from './SqlSourceOptions.js';
13
7
  /** A `Source` realized by SQL — and the three members that are SQL's, not the routing's. */
14
8
  export interface SqlSource extends Source {
15
9
  dialect: DialectName;
@@ -24,12 +18,14 @@ export interface SqlSource extends Source {
24
18
  /** Run `fn` inside one transaction of this engine, with a storage factory bound to it. */
25
19
  transacted<R>(fn: (storageFactory: ReturnType<typeof createStorageFactory>) => Promise<R>): Promise<R>;
26
20
  }
27
- /** The name this shape answered to before it was one realization among several. */
28
- export type Setup = SqlSource;
29
- /** What every SQL engine keeps at the rows, whatever the dialect: the index IS the constraint. */
30
- export declare const sqlEnforces: readonly ['unique'];
21
+ /**
22
+ * What every SQL engine keeps at the rows, whatever the dialect: the index IS the constraint,
23
+ * and so is the foreign key — but only over rows it can see, which is why the boot decides
24
+ * `relation` per PAIR and not per source: a target in another source gets a column and no key.
25
+ */
26
+ export declare const sqlEnforces: readonly ['unique', 'relation'];
31
27
  /** A sink that runs statements through Kysely — works on every engine. */
32
28
  export declare function sqlSink(db: Kysely<any>): SqlSink;
33
29
  /** Wrap any Kysely dialect — Postgres, MySQL, SQL Server. */
34
30
  export declare function createKyselySource(kyselyDialect: KyselyDialect, dialect: DialectName, opts?: SqlSourceOptions): SqlSource;
35
- //# sourceMappingURL=source.d.ts.map
31
+ //# sourceMappingURL=SqlSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlSource.d.ts","sourceRoot":"","sources":["../../src/source/SqlSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,KAAK,OAAO,IAAI,aAAa,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,4FAA4F;AAC5F,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,OAAO,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACxD,+DAA+D;IAC/D,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,0FAA0F;IAC1F,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACxG;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,YAAI,QAAQ,EAAE,UAAU,CAAU,CAAC;AAa3D,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAEhD;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,WAAW,EACpB,IAAI,GAAE,gBAAqB,GAC1B,SAAS,CAaX"}
@@ -1,12 +1,15 @@
1
- /** Storage setup — the shape every engine answers, and no driver at all. */
2
1
  import { Kysely, sql } from 'kysely';
3
- import { createStorageFactory } from './crud.js';
4
- import { logQueries } from './query.js';
5
- import { desiredTables, migrate } from './diff.js';
6
- import { drift, driftReport } from './drift.js';
7
- import { toTableName } from './table.js';
8
- /** What every SQL engine keeps at the rows, whatever the dialect: the index IS the constraint. */
9
- export const sqlEnforces = ['unique'];
2
+ import { createStorageFactory } from '../crud/SqlStorage.js';
3
+ import { logQueries } from '../query/QuerySink.js';
4
+ import { desiredTables, migrate } from '../diff/Change.js';
5
+ import { drift, driftReport } from '../drift.js';
6
+ import { toTableName } from '../table/TableDef.js';
7
+ /**
8
+ * What every SQL engine keeps at the rows, whatever the dialect: the index IS the constraint,
9
+ * and so is the foreign key — but only over rows it can see, which is why the boot decides
10
+ * `relation` per PAIR and not per source: a target in another source gets a column and no key.
11
+ */
12
+ export const sqlEnforces = ['unique', 'relation'];
10
13
  /** The migration of what lives in ONE sql source, carrying its own dialect. */
11
14
  function migrating(db, dialect, opts) {
12
15
  return async (view) => {
@@ -35,4 +38,4 @@ export function createKyselySource(kyselyDialect, dialect, opts = {}) {
35
38
  transacted: (fn) => db.transaction().execute((trx) => fn(createStorageFactory(trx, opts.storageFactoryOptions, dialect))),
36
39
  };
37
40
  }
38
- //# sourceMappingURL=source.js.map
41
+ //# sourceMappingURL=SqlSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlSource.js","sourceRoot":"","sources":["../../src/source/SqlSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAiC,MAAM,QAAQ,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAoBnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAE3D,+EAA+E;AAC/E,SAAS,SAAS,CAAC,EAAe,EAAE,OAAoB,EAAE,IAAsB;IAC9E,OAAO,KAAK,EAAE,IAAgB,EAA0B,EAAE;QACxD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7F,MAAM,OAAO,CAAC,IAAa,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,IAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QAErE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,EAAe;IACrC,OAAO,EAAE,OAAO,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,kBAAkB,CAChC,aAA4B,EAC5B,OAAoB,EACpB,IAAI,GAAqB,EAAE;IAE3B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO;QACL,EAAE;QACF,OAAO;QACP,cAAc,EAAE,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;QAC7E,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;QACrC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO;QAC1B,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;KAC1H,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type StorageFactoryOptions } from '../crud/StorageFactoryOptions.js';
2
+ export interface SqlSourceOptions {
3
+ /** Override naming for specific entities (e.g. better-auth wants singular table names). */
4
+ storageFactoryOptions?: StorageFactoryOptions;
5
+ /** What to call this storage when a query is reported. */
6
+ name?: string;
7
+ }
8
+ //# sourceMappingURL=SqlSourceOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlSourceOptions.d.ts","sourceRoot":"","sources":["../../src/source/SqlSourceOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SqlSourceOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlSourceOptions.js","sourceRoot":"","sources":["../../src/source/SqlSourceOptions.ts"],"names":[],"mappings":""}
@@ -1,12 +1,9 @@
1
1
  import Database from 'better-sqlite3';
2
- import { type SqlSourceOptions, type SqlSource } from './source.js';
3
- export interface SqliteSourceOptions extends SqlSourceOptions {
4
- /** Filesystem path to the database. Defaults to a project-local file. */
5
- path?: string;
6
- }
2
+ import { type SqlSource } from '../source/SqlSource.js';
3
+ import type { SqliteSourceOptions } from './SqliteSourceOptions.js';
7
4
  export interface SqliteSource extends SqlSource {
8
5
  /** The raw handle, for pragmas and synchronous exec. */
9
6
  sqlite: Database.Database;
10
7
  }
11
8
  export declare function createSqliteSource(opts?: SqliteSourceOptions): SqliteSource;
12
- //# sourceMappingURL=sqlite.d.ts.map
9
+ //# sourceMappingURL=SqliteSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteSource.d.ts","sourceRoot":"","sources":["../../src/sqlite/SqliteSource.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,wDAAwD;IACxD,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,mBAAwB,GAAG,YAAY,CA4B/E"}
@@ -1,14 +1,13 @@
1
- /** SQLite on a file — the convention a first run meets, and the only driver this package owns. */
2
1
  import { mkdirSync } from 'node:fs';
3
2
  import { dirname } from 'node:path';
4
3
  import { Kysely, SqliteDialect } from 'kysely';
5
4
  import Database from 'better-sqlite3';
6
- import { createStorageFactory } from './crud.js';
7
- import { logQueries } from './query.js';
8
- import { drift, driftReport } from './drift.js';
9
- import { sqlSink, sqlEnforces } from './source.js';
10
- import { desiredTables, migrate } from './diff.js';
11
- import { toTableName } from './table.js';
5
+ import { createStorageFactory } from '../crud/SqlStorage.js';
6
+ import { logQueries } from '../query/QuerySink.js';
7
+ import { drift, driftReport } from '../drift.js';
8
+ import { sqlEnforces, sqlSink } from '../source/SqlSource.js';
9
+ import { desiredTables, migrate } from '../diff/Change.js';
10
+ import { toTableName } from '../table/TableDef.js';
12
11
  import { Sources } from '@fougere/core';
13
12
  export function createSqliteSource(opts = {}) {
14
13
  const path = opts.path ?? 'fougere.db';
@@ -49,4 +48,4 @@ Sources.register('sql', (conf) => {
49
48
  }
50
49
  return createSqliteSource({ path: conf.path, name: conf.name });
51
50
  });
52
- //# sourceMappingURL=sqlite.js.map
51
+ //# sourceMappingURL=SqliteSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteSource.js","sourceRoot":"","sources":["../../src/sqlite/SqliteSource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type SqlSourceOptions } from '../source/SqlSourceOptions.js';
2
+ export interface SqliteSourceOptions extends SqlSourceOptions {
3
+ /** Filesystem path to the database. Defaults to a project-local file. */
4
+ path?: string;
5
+ }
6
+ //# sourceMappingURL=SqliteSourceOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteSourceOptions.d.ts","sourceRoot":"","sources":["../../src/sqlite/SqliteSourceOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SqliteSourceOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteSourceOptions.js","sourceRoot":"","sources":["../../src/sqlite/SqliteSourceOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { type SqliteSourceOptions } from './SqliteSourceOptions.js';
2
+ export { type SqliteSource, createSqliteSource } from './SqliteSource.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createSqliteSource } from './SqliteSource.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sqlite/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,26 +1,10 @@
1
- /** The half `delta()` refuses — realised from an intention that was written down. */
2
1
  import { type Kysely } from 'kysely';
3
2
  import type { SetDiff } from '@fougere/schema';
4
- import { type DialectName } from './dialect.js';
5
- import { type TableDef } from './table.js';
6
- import type { SchemaState } from './diff.js';
7
- /** What a step asks of the tables — beyond what an additive pass already covers. */
8
- export type StepChange = {
9
- kind: 'renameColumn';
10
- table: string;
11
- from: string;
12
- to: string;
13
- } | {
14
- kind: 'dropColumn';
15
- table: string;
16
- column: string;
17
- };
18
- /** Something the step asks and the DDL will not do, naming why and what fixes it. */
19
- export interface Refusal {
20
- entity: string;
21
- field: string;
22
- reason: string;
23
- }
3
+ import { type DialectName } from '../dialect/DialectName.js';
4
+ import { type TableDef } from '../table/TableDef.js';
5
+ import type { StepChange } from './StepChange.js';
6
+ import type { Refusal } from './Refusal.js';
7
+ import type { PlanOptions } from './PlanOptions.js';
24
8
  export interface Plan {
25
9
  changes: StepChange[];
26
10
  /**
@@ -29,12 +13,6 @@ export interface Plan {
29
13
  */
30
14
  refusals: Refusal[];
31
15
  }
32
- export interface PlanOptions {
33
- /** Entity key → table name. Same resolver `desiredTables` takes. */
34
- tableName?: (name: string) => string;
35
- /** What the database actually holds, from `actualState`. */
36
- actual?: SchemaState;
37
- }
38
16
  /** Collapse a chain of steps into one, following each field through its renames. */
39
17
  export declare function collapseChain(steps: readonly SetDiff[]): SetDiff;
40
18
  /** Turn a frozen step into what the tables must do, and what nobody may decide for you. */
@@ -46,4 +24,4 @@ export declare function stepSQL(change: StepChange, dialectName?: DialectName):
46
24
  * plan someone has to read, and half a rename is worse than none.
47
25
  */
48
26
  export declare function applyStep(plan: Plan, db: Kysely<any>, dialectName?: DialectName): Promise<string[]>;
49
- //# sourceMappingURL=step.d.ts.map
27
+ //# sourceMappingURL=Plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plan.d.ts","sourceRoot":"","sources":["../../src/step/Plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAyB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;OAGG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAgBhE;AAmCD,2FAA2F;AAC3F,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,GAAE,WAAgB,GAAG,IAAI,CAwB3F;AAyGD,0FAA0F;AAC1F,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,GAAE,WAAsB,GAAG,MAAM,CAKvF;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,GAAE,WAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYnH"}
@@ -1,8 +1,7 @@
1
- /** The half `delta()` refuses — realised from an intention that was written down. */
2
1
  import { sql } from 'kysely';
3
2
  import { dequal } from 'dequal';
4
- import { compiler } from './ddl.js';
5
- import { toSnakeCase, toTableName } from './table.js';
3
+ import { compiler } from '../ddl/SqlSink.js';
4
+ import { toSnakeCase, toTableName } from '../table/TableDef.js';
6
5
  /** Collapse a chain of steps into one, following each field through its renames. */
7
6
  export function collapseChain(steps) {
8
7
  const entities = {};
@@ -118,11 +117,11 @@ function realise(entity, table, change, target) {
118
117
  };
119
118
  case 'reshaped':
120
119
  // A tightened bound is a CHECK, and altering one on a live table is engine-specific
121
- // AND may be refused by rows already stored. The validator still enforces it at the door.
120
+ // AND may be refused by rows already stored. The validator still enforces it at the facade.
122
121
  return {
123
122
  entity,
124
123
  field: change.field,
125
- reason: `bounds moved — the door enforces them, the table keeps its old CHECK until you migrate it`,
124
+ reason: `bounds moved — the facade enforces them, the table keeps its old CHECK until you migrate it`,
126
125
  };
127
126
  case 'restated':
128
127
  return restated(entity, change);
@@ -195,4 +194,4 @@ export async function applyStep(plan, db, dialectName = 'sqlite') {
195
194
  }
196
195
  return run;
197
196
  }
198
- //# sourceMappingURL=step.js.map
197
+ //# sourceMappingURL=Plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plan.js","sourceRoot":"","sources":["../../src/step/Plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SchemaState } from '../diff/SchemaState.js';
2
+ export interface PlanOptions {
3
+ /** Entity key → table name. Same resolver `desiredTables` takes. */
4
+ tableName?: (name: string) => string;
5
+ /** What the database actually holds, from `actualState`. */
6
+ actual?: SchemaState;
7
+ }
8
+ //# sourceMappingURL=PlanOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanOptions.d.ts","sourceRoot":"","sources":["../../src/step/PlanOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PlanOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanOptions.js","sourceRoot":"","sources":["../../src/step/PlanOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /** Something the step asks and the DDL will not do, naming why and what fixes it. */
2
+ export interface Refusal {
3
+ entity: string;
4
+ field: string;
5
+ reason: string;
6
+ }
7
+ //# sourceMappingURL=Refusal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Refusal.d.ts","sourceRoot":"","sources":["../../src/step/Refusal.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Refusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Refusal.js","sourceRoot":"","sources":["../../src/step/Refusal.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /** What a step asks of the tables — beyond what an additive pass already covers. */
2
+ export type StepChange = {
3
+ kind: 'renameColumn';
4
+ table: string;
5
+ from: string;
6
+ to: string;
7
+ } | {
8
+ kind: 'dropColumn';
9
+ table: string;
10
+ column: string;
11
+ };
12
+ //# sourceMappingURL=StepChange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepChange.d.ts","sourceRoot":"","sources":["../../src/step/StepChange.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StepChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepChange.js","sourceRoot":"","sources":["../../src/step/StepChange.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { type SchemaView } from '@fougere/schema';
2
+ import type { FrondLike } from './FrondLike.js';
3
+ export interface AppLike {
4
+ fronds: FrondLike[];
5
+ /** Auth runtime entities are migrated alongside scanned fronds when present. */
6
+ auth?: {
7
+ entities: Record<string, SchemaView>;
8
+ };
9
+ /** Entities this app hosts in ANOTHER source — named so a miss can be read. */
10
+ elsewhere?: string[];
11
+ }
12
+ //# sourceMappingURL=AppLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLike.d.ts","sourceRoot":"","sources":["../../src/table/AppLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gFAAgF;IAChF,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE,CAAC;IAChD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AppLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLike.js","sourceRoot":"","sources":["../../src/table/AppLike.ts"],"names":[],"mappings":""}