@fougere/adapter-sql 0.9.3-alpha.0 → 0.10.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} +5 -13
  76. package/dist/source/SqlSource.d.ts.map +1 -0
  77. package/dist/{source.js → source/SqlSource.js} +6 -7
  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} +8 -18
  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,10 @@ 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
21
  /** What every SQL engine keeps at the rows, whatever the dialect: the index IS the constraint. */
30
22
  export declare const sqlEnforces: readonly ['unique'];
31
23
  /** A sink that runs statements through Kysely — works on every engine. */
32
24
  export declare function sqlSink(db: Kysely<any>): SqlSink;
33
25
  /** Wrap any Kysely dialect — Postgres, MySQL, SQL Server. */
34
26
  export declare function createKyselySource(kyselyDialect: KyselyDialect, dialect: DialectName, opts?: SqlSourceOptions): SqlSource;
35
- //# sourceMappingURL=source.d.ts.map
27
+ //# 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,kGAAkG;AAClG,eAAO,MAAM,WAAW,YAAI,QAAQ,CAAU,CAAC;AAa/C,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,10 +1,9 @@
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';
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';
8
7
  /** What every SQL engine keeps at the rows, whatever the dialect: the index IS the constraint. */
9
8
  export const sqlEnforces = ['unique'];
10
9
  /** The migration of what lives in ONE sql source, carrying its own dialect. */
@@ -35,4 +34,4 @@ export function createKyselySource(kyselyDialect, dialect, opts = {}) {
35
34
  transacted: (fn) => db.transaction().execute((trx) => fn(createStorageFactory(trx, opts.storageFactoryOptions, dialect))),
36
35
  };
37
36
  }
38
- //# sourceMappingURL=source.js.map
37
+ //# 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,kGAAkG;AAClG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAU,CAAC;AAE/C,+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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAmD,MAAM,eAAe,CAAC;AAQzF,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAAwB,EAAE;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACvC,iEAAiE;IACjE,IAAI,IAAI,KAAK,UAAU;QAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAM,EAAE,OAAO,EAAE,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACrH,OAAO;QACL,EAAE;QACF,MAAM;QACN,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC;QAC9E,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,QAAiB,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC;YAChH,MAAM,OAAO,CAAC,IAAa,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1C,gFAAgF;YAChF,2EAA2E;YAC3E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,IAAa,EAAE,OAAO,CAAC,CAAC,CAAC;YAErE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,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,QAAQ,CAAC,CAAC,CAAC;KAC3H,CAAC;AACJ,CAAC;AAED,eAAe;AACf,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAkB,EAAU,EAAE;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;IACnD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,0BAA0B,OAAO,sDAAsD;cACrF,wFAAwF;cACxF,qCAAqC,OAAO,kCAAkC,CACjF,CAAC;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAA0B,EAAE,IAAI,EAAE,IAAI,CAAC,IAA0B,EAAE,CAAC,CAAC;AAC9G,CAAC,CAAC,CAAC"}
@@ -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":""}
@@ -0,0 +1,34 @@
1
+ import { type ShapeType } from '@fougere/schema';
2
+ import { type ShapeBounds } from '../check.js';
3
+ import { type SqlField } from '../fields/SqlField.js';
4
+ import type { ColumnReference } from './ColumnReference.js';
5
+ /** One column, described by the axes — plus, at most, what the entity stated for sql. */
6
+ export interface ColumnDef {
7
+ /** Field key on the entity. */
8
+ field: string;
9
+ /** SQL column name (snake_case). */
10
+ name: string;
11
+ /** What every projection here dispatches on — a `date()` and a bounded set included. */
12
+ type?: ShapeType;
13
+ nullable: boolean;
14
+ primary: boolean;
15
+ /** A literal default (`lifecycle.create.value`), when the field declares one. */
16
+ default?: unknown;
17
+ /** A {@link Unique} of one — realized as a column constraint the database enforces. */
18
+ unique?: boolean;
19
+ /** `role.index` — realized as a separate `CREATE INDEX`, never a constraint. */
20
+ index?: boolean;
21
+ /**
22
+ * What the shape bounds beyond its type — `oneOf`, `min`, `max`. Realized as a
23
+ * `CHECK`, so the rule holds on every write and not only at the façade.
24
+ */
25
+ bounds?: ShapeBounds;
26
+ /** The FK target, from `role.relation` when it's a `ref()` (kind `'one'`). */
27
+ references?: ColumnReference;
28
+ /**
29
+ * What the entity stated for THIS adapter — never an axis. It says how the column is
30
+ * realized here; drop it and the column is still describable.
31
+ */
32
+ stated?: SqlField;
33
+ }
34
+ //# sourceMappingURL=ColumnDef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnDef.d.ts","sourceRoot":"","sources":["../../src/table/ColumnDef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,yFAAyF;AACzF,MAAM,WAAW,SAAS;IACxB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ColumnDef.js.map