hikoutei 0.2.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 (535) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja.md +135 -0
  3. package/README.ko.md +138 -0
  4. package/README.md +143 -0
  5. package/apps-script/gateway/Code.gs +412 -0
  6. package/dist/adapter/persistence/contracts/index.d.ts +3 -0
  7. package/dist/adapter/persistence/contracts/index.d.ts.map +1 -0
  8. package/dist/adapter/persistence/contracts/index.js +3 -0
  9. package/dist/adapter/persistence/contracts/index.js.map +1 -0
  10. package/dist/adapter/persistence/contracts/sql.d.ts +50 -0
  11. package/dist/adapter/persistence/contracts/sql.d.ts.map +1 -0
  12. package/dist/adapter/persistence/contracts/sql.js +9 -0
  13. package/dist/adapter/persistence/contracts/sql.js.map +1 -0
  14. package/dist/adapter/persistence/index.d.ts +2 -0
  15. package/dist/adapter/persistence/index.d.ts.map +1 -0
  16. package/dist/adapter/persistence/index.js +2 -0
  17. package/dist/adapter/persistence/index.js.map +1 -0
  18. package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.d.ts +53 -0
  19. package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.d.ts.map +1 -0
  20. package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.js +105 -0
  21. package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.js.map +1 -0
  22. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts +39 -0
  23. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts.map +1 -0
  24. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js +54 -0
  25. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js.map +1 -0
  26. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.d.ts +38 -0
  27. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.d.ts.map +1 -0
  28. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.js +55 -0
  29. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.js.map +1 -0
  30. package/dist/adapter/persistence/providers/mikro-orm/index.d.ts +16 -0
  31. package/dist/adapter/persistence/providers/mikro-orm/index.d.ts.map +1 -0
  32. package/dist/adapter/persistence/providers/mikro-orm/index.js +9 -0
  33. package/dist/adapter/persistence/providers/mikro-orm/index.js.map +1 -0
  34. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts +27 -0
  35. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts.map +1 -0
  36. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js +67 -0
  37. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js.map +1 -0
  38. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.d.ts +19 -0
  39. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.d.ts.map +1 -0
  40. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.js +67 -0
  41. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.js.map +1 -0
  42. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.d.ts +78 -0
  43. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.d.ts.map +1 -0
  44. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.js +121 -0
  45. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.js.map +1 -0
  46. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.d.ts +20 -0
  47. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.d.ts.map +1 -0
  48. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.js +125 -0
  49. package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.js.map +1 -0
  50. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +42 -0
  51. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +1 -0
  52. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +51 -0
  53. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +1 -0
  54. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +22 -0
  55. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +1 -0
  56. package/dist/adapter/sheets/providers/apps-script-gateway/index.js +12 -0
  57. package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +1 -0
  58. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +42 -0
  59. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +1 -0
  60. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +161 -0
  61. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +1 -0
  62. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts +3 -0
  63. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +1 -0
  64. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +692 -0
  65. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +1 -0
  66. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts +29 -0
  67. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts.map +1 -0
  68. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +538 -0
  69. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +1 -0
  70. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts +12 -0
  71. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts.map +1 -0
  72. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js +190 -0
  73. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js.map +1 -0
  74. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +23 -0
  75. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +1 -0
  76. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +166 -0
  77. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +1 -0
  78. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts +50 -0
  79. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts.map +1 -0
  80. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js +60 -0
  81. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js.map +1 -0
  82. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts +44 -0
  83. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts.map +1 -0
  84. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js +40 -0
  85. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js.map +1 -0
  86. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts +7 -0
  87. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts.map +1 -0
  88. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js +47 -0
  89. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js.map +1 -0
  90. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts +5 -0
  91. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts.map +1 -0
  92. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js +54 -0
  93. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js.map +1 -0
  94. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts +5 -0
  95. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts.map +1 -0
  96. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js +2 -0
  97. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js.map +1 -0
  98. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts +10 -0
  99. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts.map +1 -0
  100. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js +35 -0
  101. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js.map +1 -0
  102. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts +67 -0
  103. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +1 -0
  104. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +204 -0
  105. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +1 -0
  106. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +78 -0
  107. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +1 -0
  108. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +343 -0
  109. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +1 -0
  110. package/dist/application/index.d.ts +4 -0
  111. package/dist/application/index.d.ts.map +1 -0
  112. package/dist/application/index.js +4 -0
  113. package/dist/application/index.js.map +1 -0
  114. package/dist/application/orm/api/TypedSheetsOrm.d.ts +71 -0
  115. package/dist/application/orm/api/TypedSheetsOrm.d.ts.map +1 -0
  116. package/dist/application/orm/api/TypedSheetsOrm.js +116 -0
  117. package/dist/application/orm/api/TypedSheetsOrm.js.map +1 -0
  118. package/dist/application/orm/api/contracts.d.ts +118 -0
  119. package/dist/application/orm/api/contracts.d.ts.map +1 -0
  120. package/dist/application/orm/api/contracts.js +21 -0
  121. package/dist/application/orm/api/contracts.js.map +1 -0
  122. package/dist/application/orm/errors.d.ts +35 -0
  123. package/dist/application/orm/errors.d.ts.map +1 -0
  124. package/dist/application/orm/errors.js +35 -0
  125. package/dist/application/orm/errors.js.map +1 -0
  126. package/dist/application/orm/index.d.ts +13 -0
  127. package/dist/application/orm/index.d.ts.map +1 -0
  128. package/dist/application/orm/index.js +7 -0
  129. package/dist/application/orm/index.js.map +1 -0
  130. package/dist/application/orm/mapping/contracts.d.ts +113 -0
  131. package/dist/application/orm/mapping/contracts.d.ts.map +1 -0
  132. package/dist/application/orm/mapping/contracts.js +8 -0
  133. package/dist/application/orm/mapping/contracts.js.map +1 -0
  134. package/dist/application/orm/mapping/definition.d.ts +16 -0
  135. package/dist/application/orm/mapping/definition.d.ts.map +1 -0
  136. package/dist/application/orm/mapping/definition.js +145 -0
  137. package/dist/application/orm/mapping/definition.js.map +1 -0
  138. package/dist/application/orm/mapping/entityMapping.d.ts +13 -0
  139. package/dist/application/orm/mapping/entityMapping.d.ts.map +1 -0
  140. package/dist/application/orm/mapping/entityMapping.js +13 -0
  141. package/dist/application/orm/mapping/entityMapping.js.map +1 -0
  142. package/dist/application/orm/mapping/identity.d.ts +14 -0
  143. package/dist/application/orm/mapping/identity.d.ts.map +1 -0
  144. package/dist/application/orm/mapping/identity.js +37 -0
  145. package/dist/application/orm/mapping/identity.js.map +1 -0
  146. package/dist/application/orm/mapping/observationMapping.d.ts +42 -0
  147. package/dist/application/orm/mapping/observationMapping.d.ts.map +1 -0
  148. package/dist/application/orm/mapping/observationMapping.js +65 -0
  149. package/dist/application/orm/mapping/observationMapping.js.map +1 -0
  150. package/dist/application/orm/mapping/projection.d.ts +22 -0
  151. package/dist/application/orm/mapping/projection.d.ts.map +1 -0
  152. package/dist/application/orm/mapping/projection.js +74 -0
  153. package/dist/application/orm/mapping/projection.js.map +1 -0
  154. package/dist/application/orm/mapping/registry.d.ts +15 -0
  155. package/dist/application/orm/mapping/registry.d.ts.map +1 -0
  156. package/dist/application/orm/mapping/registry.js +38 -0
  157. package/dist/application/orm/mapping/registry.js.map +1 -0
  158. package/dist/application/orm/mapping/values.d.ts +17 -0
  159. package/dist/application/orm/mapping/values.d.ts.map +1 -0
  160. package/dist/application/orm/mapping/values.js +141 -0
  161. package/dist/application/orm/mapping/values.js.map +1 -0
  162. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts +28 -0
  163. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -0
  164. package/dist/application/orm/persistence/flush/flushCoordinator.js +170 -0
  165. package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -0
  166. package/dist/application/orm/persistence/flush/mappedFlushCoordinator.d.ts +9 -0
  167. package/dist/application/orm/persistence/flush/mappedFlushCoordinator.d.ts.map +1 -0
  168. package/dist/application/orm/persistence/flush/mappedFlushCoordinator.js +8 -0
  169. package/dist/application/orm/persistence/flush/mappedFlushCoordinator.js.map +1 -0
  170. package/dist/application/orm/persistence/lifecycle/entityLifecycle.d.ts +12 -0
  171. package/dist/application/orm/persistence/lifecycle/entityLifecycle.d.ts.map +1 -0
  172. package/dist/application/orm/persistence/lifecycle/entityLifecycle.js +134 -0
  173. package/dist/application/orm/persistence/lifecycle/entityLifecycle.js.map +1 -0
  174. package/dist/application/orm/persistence/projection/projectionEffects.d.ts +21 -0
  175. package/dist/application/orm/persistence/projection/projectionEffects.d.ts.map +1 -0
  176. package/dist/application/orm/persistence/projection/projectionEffects.js +203 -0
  177. package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -0
  178. package/dist/application/orm/persistence/support/businessKeys.d.ts +17 -0
  179. package/dist/application/orm/persistence/support/businessKeys.d.ts.map +1 -0
  180. package/dist/application/orm/persistence/support/businessKeys.js +72 -0
  181. package/dist/application/orm/persistence/support/businessKeys.js.map +1 -0
  182. package/dist/application/orm/persistence/support/canonicalState.d.ts +22 -0
  183. package/dist/application/orm/persistence/support/canonicalState.d.ts.map +1 -0
  184. package/dist/application/orm/persistence/support/canonicalState.js +88 -0
  185. package/dist/application/orm/persistence/support/canonicalState.js.map +1 -0
  186. package/dist/application/orm/persistence/support/contracts.d.ts +139 -0
  187. package/dist/application/orm/persistence/support/contracts.d.ts.map +1 -0
  188. package/dist/application/orm/persistence/support/contracts.js +93 -0
  189. package/dist/application/orm/persistence/support/contracts.js.map +1 -0
  190. package/dist/application/orm/persistence/support/helpers.d.ts +32 -0
  191. package/dist/application/orm/persistence/support/helpers.d.ts.map +1 -0
  192. package/dist/application/orm/persistence/support/helpers.js +66 -0
  193. package/dist/application/orm/persistence/support/helpers.js.map +1 -0
  194. package/dist/application/orm/persistence/support/timing.d.ts +20 -0
  195. package/dist/application/orm/persistence/support/timing.d.ts.map +1 -0
  196. package/dist/application/orm/persistence/support/timing.js +55 -0
  197. package/dist/application/orm/persistence/support/timing.js.map +1 -0
  198. package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts +46 -0
  199. package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +1 -0
  200. package/dist/application/sync/gateway/SyncGatewayBootstrap.js +93 -0
  201. package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +1 -0
  202. package/dist/application/sync/gateway/constants.d.ts +65 -0
  203. package/dist/application/sync/gateway/constants.d.ts.map +1 -0
  204. package/dist/application/sync/gateway/constants.js +57 -0
  205. package/dist/application/sync/gateway/constants.js.map +1 -0
  206. package/dist/application/sync/gateway/errors.d.ts +15 -0
  207. package/dist/application/sync/gateway/errors.d.ts.map +1 -0
  208. package/dist/application/sync/gateway/errors.js +16 -0
  209. package/dist/application/sync/gateway/errors.js.map +1 -0
  210. package/dist/application/sync/gateway/syncGateway.d.ts +313 -0
  211. package/dist/application/sync/gateway/syncGateway.d.ts.map +1 -0
  212. package/dist/application/sync/gateway/syncGateway.js +202 -0
  213. package/dist/application/sync/gateway/syncGateway.js.map +1 -0
  214. package/dist/application/sync/gateway/validation.d.ts +17 -0
  215. package/dist/application/sync/gateway/validation.d.ts.map +1 -0
  216. package/dist/application/sync/gateway/validation.js +60 -0
  217. package/dist/application/sync/gateway/validation.js.map +1 -0
  218. package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts +72 -0
  219. package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts.map +1 -0
  220. package/dist/application/sync/inbound/polling/SimpleSheetPolling.js +272 -0
  221. package/dist/application/sync/inbound/polling/SimpleSheetPolling.js.map +1 -0
  222. package/dist/application/sync/index.d.ts +16 -0
  223. package/dist/application/sync/index.d.ts.map +1 -0
  224. package/dist/application/sync/index.js +9 -0
  225. package/dist/application/sync/index.js.map +1 -0
  226. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +106 -0
  227. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -0
  228. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +297 -0
  229. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -0
  230. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +100 -0
  231. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -0
  232. package/dist/application/sync/outbound/effects/SyncEffectWorker.js +345 -0
  233. package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -0
  234. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +46 -0
  235. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -0
  236. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +63 -0
  237. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -0
  238. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +20 -0
  239. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -0
  240. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +102 -0
  241. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -0
  242. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts +19 -0
  243. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts.map +1 -0
  244. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +32 -0
  245. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +1 -0
  246. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +30 -0
  247. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -0
  248. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +202 -0
  249. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -0
  250. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts +17 -0
  251. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts.map +1 -0
  252. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js +80 -0
  253. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js.map +1 -0
  254. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +13 -0
  255. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -0
  256. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +205 -0
  257. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -0
  258. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts +81 -0
  259. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts.map +1 -0
  260. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +245 -0
  261. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -0
  262. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts +77 -0
  263. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -0
  264. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +518 -0
  265. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -0
  266. package/dist/application/sync/telemetry/syncTiming.d.ts +50 -0
  267. package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -0
  268. package/dist/application/sync/telemetry/syncTiming.js +22 -0
  269. package/dist/application/sync/telemetry/syncTiming.js.map +1 -0
  270. package/dist/domain/conflict/errors.d.ts +42 -0
  271. package/dist/domain/conflict/errors.d.ts.map +1 -0
  272. package/dist/domain/conflict/errors.js +36 -0
  273. package/dist/domain/conflict/errors.js.map +1 -0
  274. package/dist/domain/conflict/index.d.ts +5 -0
  275. package/dist/domain/conflict/index.d.ts.map +1 -0
  276. package/dist/domain/conflict/index.js +3 -0
  277. package/dist/domain/conflict/index.js.map +1 -0
  278. package/dist/domain/conflict/transitions.d.ts +52 -0
  279. package/dist/domain/conflict/transitions.d.ts.map +1 -0
  280. package/dist/domain/conflict/transitions.js +115 -0
  281. package/dist/domain/conflict/transitions.js.map +1 -0
  282. package/dist/domain/errors/evaluation.d.ts +13 -0
  283. package/dist/domain/errors/evaluation.d.ts.map +1 -0
  284. package/dist/domain/errors/evaluation.js +14 -0
  285. package/dist/domain/errors/evaluation.js.map +1 -0
  286. package/dist/domain/errors/identity.d.ts +12 -0
  287. package/dist/domain/errors/identity.d.ts.map +1 -0
  288. package/dist/domain/errors/identity.js +15 -0
  289. package/dist/domain/errors/identity.js.map +1 -0
  290. package/dist/domain/errors/index.d.ts +7 -0
  291. package/dist/domain/errors/index.d.ts.map +1 -0
  292. package/dist/domain/errors/index.js +5 -0
  293. package/dist/domain/errors/index.js.map +1 -0
  294. package/dist/domain/errors/stableEncoding.d.ts +7 -0
  295. package/dist/domain/errors/stableEncoding.d.ts.map +1 -0
  296. package/dist/domain/errors/stableEncoding.js +8 -0
  297. package/dist/domain/errors/stableEncoding.js.map +1 -0
  298. package/dist/domain/errors/types.d.ts +20 -0
  299. package/dist/domain/errors/types.d.ts.map +1 -0
  300. package/dist/domain/errors/types.js +18 -0
  301. package/dist/domain/errors/types.js.map +1 -0
  302. package/dist/domain/evaluate/constants.d.ts +55 -0
  303. package/dist/domain/evaluate/constants.d.ts.map +1 -0
  304. package/dist/domain/evaluate/constants.js +41 -0
  305. package/dist/domain/evaluate/constants.js.map +1 -0
  306. package/dist/domain/evaluate/contracts.d.ts +125 -0
  307. package/dist/domain/evaluate/contracts.d.ts.map +1 -0
  308. package/dist/domain/evaluate/contracts.js +8 -0
  309. package/dist/domain/evaluate/contracts.js.map +1 -0
  310. package/dist/domain/evaluate/evaluateBatch.d.ts +11 -0
  311. package/dist/domain/evaluate/evaluateBatch.d.ts.map +1 -0
  312. package/dist/domain/evaluate/evaluateBatch.js +91 -0
  313. package/dist/domain/evaluate/evaluateBatch.js.map +1 -0
  314. package/dist/domain/evaluate/fieldEvaluation.d.ts +14 -0
  315. package/dist/domain/evaluate/fieldEvaluation.d.ts.map +1 -0
  316. package/dist/domain/evaluate/fieldEvaluation.js +133 -0
  317. package/dist/domain/evaluate/fieldEvaluation.js.map +1 -0
  318. package/dist/domain/evaluate/identity.d.ts +21 -0
  319. package/dist/domain/evaluate/identity.d.ts.map +1 -0
  320. package/dist/domain/evaluate/identity.js +72 -0
  321. package/dist/domain/evaluate/identity.js.map +1 -0
  322. package/dist/domain/evaluate/index.d.ts +4 -0
  323. package/dist/domain/evaluate/index.d.ts.map +1 -0
  324. package/dist/domain/evaluate/index.js +3 -0
  325. package/dist/domain/evaluate/index.js.map +1 -0
  326. package/dist/domain/evaluate/preconditions.d.ts +30 -0
  327. package/dist/domain/evaluate/preconditions.d.ts.map +1 -0
  328. package/dist/domain/evaluate/preconditions.js +389 -0
  329. package/dist/domain/evaluate/preconditions.js.map +1 -0
  330. package/dist/domain/evaluate/quarantine.d.ts +15 -0
  331. package/dist/domain/evaluate/quarantine.d.ts.map +1 -0
  332. package/dist/domain/evaluate/quarantine.js +185 -0
  333. package/dist/domain/evaluate/quarantine.js.map +1 -0
  334. package/dist/domain/index.d.ts +7 -0
  335. package/dist/domain/index.d.ts.map +1 -0
  336. package/dist/domain/index.js +7 -0
  337. package/dist/domain/index.js.map +1 -0
  338. package/dist/domain/model/constants.d.ts +73 -0
  339. package/dist/domain/model/constants.d.ts.map +1 -0
  340. package/dist/domain/model/constants.js +59 -0
  341. package/dist/domain/model/constants.js.map +1 -0
  342. package/dist/domain/model/index.d.ts +3 -0
  343. package/dist/domain/model/index.d.ts.map +1 -0
  344. package/dist/domain/model/index.js +2 -0
  345. package/dist/domain/model/index.js.map +1 -0
  346. package/dist/domain/model/types.d.ts +330 -0
  347. package/dist/domain/model/types.d.ts.map +1 -0
  348. package/dist/domain/model/types.js +8 -0
  349. package/dist/domain/model/types.js.map +1 -0
  350. package/dist/index.d.ts +17 -0
  351. package/dist/index.d.ts.map +1 -0
  352. package/dist/index.js +11 -0
  353. package/dist/index.js.map +1 -0
  354. package/dist/infrastructure/index.d.ts +3 -0
  355. package/dist/infrastructure/index.d.ts.map +1 -0
  356. package/dist/infrastructure/index.js +3 -0
  357. package/dist/infrastructure/index.js.map +1 -0
  358. package/dist/infrastructure/storage/constants.d.ts +4 -0
  359. package/dist/infrastructure/storage/constants.d.ts.map +1 -0
  360. package/dist/infrastructure/storage/constants.js +4 -0
  361. package/dist/infrastructure/storage/constants.js.map +1 -0
  362. package/dist/infrastructure/storage/errors.d.ts +55 -0
  363. package/dist/infrastructure/storage/errors.d.ts.map +1 -0
  364. package/dist/infrastructure/storage/errors.js +58 -0
  365. package/dist/infrastructure/storage/errors.js.map +1 -0
  366. package/dist/infrastructure/storage/index.d.ts +23 -0
  367. package/dist/infrastructure/storage/index.d.ts.map +1 -0
  368. package/dist/infrastructure/storage/index.js +13 -0
  369. package/dist/infrastructure/storage/index.js.map +1 -0
  370. package/dist/infrastructure/storage/recovery/restoreRecovery.d.ts +64 -0
  371. package/dist/infrastructure/storage/recovery/restoreRecovery.d.ts.map +1 -0
  372. package/dist/infrastructure/storage/recovery/restoreRecovery.js +148 -0
  373. package/dist/infrastructure/storage/recovery/restoreRecovery.js.map +1 -0
  374. package/dist/infrastructure/storage/sqlite/schema.d.ts +49 -0
  375. package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -0
  376. package/dist/infrastructure/storage/sqlite/schema.js +529 -0
  377. package/dist/infrastructure/storage/sqlite/schema.js.map +1 -0
  378. package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts +5 -0
  379. package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts.map +1 -0
  380. package/dist/infrastructure/storage/sqlite/schemaTypes.js +2 -0
  381. package/dist/infrastructure/storage/sqlite/schemaTypes.js.map +1 -0
  382. package/dist/infrastructure/storage/sqlite/sqlScript.d.ts +9 -0
  383. package/dist/infrastructure/storage/sqlite/sqlScript.d.ts.map +1 -0
  384. package/dist/infrastructure/storage/sqlite/sqlScript.js +122 -0
  385. package/dist/infrastructure/storage/sqlite/sqlScript.js.map +1 -0
  386. package/dist/infrastructure/storage/sqlite/sqlState.d.ts +6 -0
  387. package/dist/infrastructure/storage/sqlite/sqlState.d.ts.map +1 -0
  388. package/dist/infrastructure/storage/sqlite/sqlState.js +14 -0
  389. package/dist/infrastructure/storage/sqlite/sqlState.js.map +1 -0
  390. package/dist/infrastructure/storage/sqlite/sqlTransaction.d.ts +6 -0
  391. package/dist/infrastructure/storage/sqlite/sqlTransaction.d.ts.map +1 -0
  392. package/dist/infrastructure/storage/sqlite/sqlTransaction.js +24 -0
  393. package/dist/infrastructure/storage/sqlite/sqlTransaction.js.map +1 -0
  394. package/dist/infrastructure/storage/sqlite/sqliteBridge.d.ts +44 -0
  395. package/dist/infrastructure/storage/sqlite/sqliteBridge.d.ts.map +1 -0
  396. package/dist/infrastructure/storage/sqlite/sqliteBridge.js +66 -0
  397. package/dist/infrastructure/storage/sqlite/sqliteBridge.js.map +1 -0
  398. package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts +101 -0
  399. package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts.map +1 -0
  400. package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +417 -0
  401. package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -0
  402. package/dist/infrastructure/storage/state/observation/observationAudit.d.ts +16 -0
  403. package/dist/infrastructure/storage/state/observation/observationAudit.d.ts.map +1 -0
  404. package/dist/infrastructure/storage/state/observation/observationAudit.js +85 -0
  405. package/dist/infrastructure/storage/state/observation/observationAudit.js.map +1 -0
  406. package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts +31 -0
  407. package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts.map +1 -0
  408. package/dist/infrastructure/storage/state/observation/observationCanonical.js +439 -0
  409. package/dist/infrastructure/storage/state/observation/observationCanonical.js.map +1 -0
  410. package/dist/infrastructure/storage/state/observation/observationConstants.d.ts +53 -0
  411. package/dist/infrastructure/storage/state/observation/observationConstants.d.ts.map +1 -0
  412. package/dist/infrastructure/storage/state/observation/observationConstants.js +41 -0
  413. package/dist/infrastructure/storage/state/observation/observationConstants.js.map +1 -0
  414. package/dist/infrastructure/storage/state/observation/observationLedger.d.ts +49 -0
  415. package/dist/infrastructure/storage/state/observation/observationLedger.d.ts.map +1 -0
  416. package/dist/infrastructure/storage/state/observation/observationLedger.js +537 -0
  417. package/dist/infrastructure/storage/state/observation/observationLedger.js.map +1 -0
  418. package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts +15 -0
  419. package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts.map +1 -0
  420. package/dist/infrastructure/storage/state/observation/observationQuarantine.js +100 -0
  421. package/dist/infrastructure/storage/state/observation/observationQuarantine.js.map +1 -0
  422. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +124 -0
  423. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -0
  424. package/dist/infrastructure/storage/state/observation/observationTypes.js +13 -0
  425. package/dist/infrastructure/storage/state/observation/observationTypes.js.map +1 -0
  426. package/dist/infrastructure/storage/state/observation/observationValidation.d.ts +28 -0
  427. package/dist/infrastructure/storage/state/observation/observationValidation.d.ts.map +1 -0
  428. package/dist/infrastructure/storage/state/observation/observationValidation.js +223 -0
  429. package/dist/infrastructure/storage/state/observation/observationValidation.js.map +1 -0
  430. package/dist/infrastructure/storage/state/observation/observationWriter.d.ts +28 -0
  431. package/dist/infrastructure/storage/state/observation/observationWriter.d.ts.map +1 -0
  432. package/dist/infrastructure/storage/state/observation/observationWriter.js +293 -0
  433. package/dist/infrastructure/storage/state/observation/observationWriter.js.map +1 -0
  434. package/dist/infrastructure/storage/state/readonly/readOnlyObservation.d.ts +58 -0
  435. package/dist/infrastructure/storage/state/readonly/readOnlyObservation.d.ts.map +1 -0
  436. package/dist/infrastructure/storage/state/readonly/readOnlyObservation.js +195 -0
  437. package/dist/infrastructure/storage/state/readonly/readOnlyObservation.js.map +1 -0
  438. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts +31 -0
  439. package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -0
  440. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +563 -0
  441. package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -0
  442. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts +118 -0
  443. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts.map +1 -0
  444. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js +18 -0
  445. package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js.map +1 -0
  446. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts +23 -0
  447. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts.map +1 -0
  448. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js +84 -0
  449. package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js.map +1 -0
  450. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +16 -0
  451. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -0
  452. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +97 -0
  453. package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -0
  454. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +137 -0
  455. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -0
  456. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +396 -0
  457. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -0
  458. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +101 -0
  459. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -0
  460. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +9 -0
  461. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -0
  462. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +21 -0
  463. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -0
  464. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +184 -0
  465. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -0
  466. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts +25 -0
  467. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts.map +1 -0
  468. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js +158 -0
  469. package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js.map +1 -0
  470. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +69 -0
  471. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts.map +1 -0
  472. package/dist/infrastructure/storage/sync/shared/syncRegistry.js +272 -0
  473. package/dist/infrastructure/storage/sync/shared/syncRegistry.js.map +1 -0
  474. package/dist/infrastructure/storage/sync/shared/writerLease.d.ts +90 -0
  475. package/dist/infrastructure/storage/sync/shared/writerLease.d.ts.map +1 -0
  476. package/dist/infrastructure/storage/sync/shared/writerLease.js +282 -0
  477. package/dist/infrastructure/storage/sync/shared/writerLease.js.map +1 -0
  478. package/dist/shared/constants.d.ts +8 -0
  479. package/dist/shared/constants.d.ts.map +1 -0
  480. package/dist/shared/constants.js +8 -0
  481. package/dist/shared/constants.js.map +1 -0
  482. package/dist/shared/encoding/constants.d.ts +45 -0
  483. package/dist/shared/encoding/constants.d.ts.map +1 -0
  484. package/dist/shared/encoding/constants.js +37 -0
  485. package/dist/shared/encoding/constants.js.map +1 -0
  486. package/dist/shared/encoding/index.d.ts +6 -0
  487. package/dist/shared/encoding/index.d.ts.map +1 -0
  488. package/dist/shared/encoding/index.js +4 -0
  489. package/dist/shared/encoding/index.js.map +1 -0
  490. package/dist/shared/encoding/stableEncode.d.ts +34 -0
  491. package/dist/shared/encoding/stableEncode.d.ts.map +1 -0
  492. package/dist/shared/encoding/stableEncode.js +210 -0
  493. package/dist/shared/encoding/stableEncode.js.map +1 -0
  494. package/dist/shared/encoding/typeGuards.d.ts +15 -0
  495. package/dist/shared/encoding/typeGuards.d.ts.map +1 -0
  496. package/dist/shared/encoding/typeGuards.js +11 -0
  497. package/dist/shared/encoding/typeGuards.js.map +1 -0
  498. package/dist/shared/encoding/types.d.ts +52 -0
  499. package/dist/shared/encoding/types.d.ts.map +1 -0
  500. package/dist/shared/encoding/types.js +8 -0
  501. package/dist/shared/encoding/types.js.map +1 -0
  502. package/dist/shared/index.d.ts +6 -0
  503. package/dist/shared/index.d.ts.map +1 -0
  504. package/dist/shared/index.js +6 -0
  505. package/dist/shared/index.js.map +1 -0
  506. package/dist/shared/state/constants.d.ts +16 -0
  507. package/dist/shared/state/constants.d.ts.map +1 -0
  508. package/dist/shared/state/constants.js +16 -0
  509. package/dist/shared/state/constants.js.map +1 -0
  510. package/dist/shared/state/index.d.ts +3 -0
  511. package/dist/shared/state/index.d.ts.map +1 -0
  512. package/dist/shared/state/index.js +2 -0
  513. package/dist/shared/state/index.js.map +1 -0
  514. package/dist/shared/state/types.d.ts +23 -0
  515. package/dist/shared/state/types.d.ts.map +1 -0
  516. package/dist/shared/state/types.js +2 -0
  517. package/dist/shared/state/types.js.map +1 -0
  518. package/dist/shared/validation.d.ts +9 -0
  519. package/dist/shared/validation.d.ts.map +1 -0
  520. package/dist/shared/validation.js +25 -0
  521. package/dist/shared/validation.js.map +1 -0
  522. package/docs/architecture.md +72 -0
  523. package/docs/code-guidelines.md +256 -0
  524. package/docs/development.md +48 -0
  525. package/docs/git-workflow.md +224 -0
  526. package/docs/mikro-orm-adapter-spike.md +248 -0
  527. package/docs/quick-start.md +102 -0
  528. package/docs/sql-layer-plan.md +59 -0
  529. package/docs/sync-bulk-write-benchmark.md +1036 -0
  530. package/docs/sync-observability.md +71 -0
  531. package/docs/task-queue-write-model.md +640 -0
  532. package/docs/typed-sheets-mvp-scope-2026-06-29.md +490 -0
  533. package/docs/typed-sheets-plan.md +417 -0
  534. package/docs/write-and-synchronization-flow.md +71 -0
  535. package/package.json +68 -0
@@ -0,0 +1,529 @@
1
+ import { withImmediateTransaction } from "./sqliteBridge.js";
2
+ import { STORAGE_ERROR_CODES, StorageError } from "../errors.js";
3
+ /**
4
+ * SQLite schema and migration DDL for the SQLite-authoritative sync storage layer.
5
+ *
6
+ * Implements the logical schema from design/packages/core/contracts/storage-schema.md.
7
+ * All identity constraints, unique indexes, and foreign keys are fixed here.
8
+ *
9
+ * Table creation order is parent-first. Deletion order is child-first.
10
+ */
11
+ /** Current durable schema version managed by migrateSchema(). */
12
+ export const CURRENT_SCHEMA_VERSION = 3;
13
+ /** Connection settings required by every typed-sheets SQLite store. */
14
+ export const SQLITE_CONNECTION_PRAGMAS = `
15
+ PRAGMA foreign_keys = ON;
16
+ PRAGMA journal_mode = WAL;
17
+ PRAGMA busy_timeout = 5000;
18
+ `;
19
+ /** Columns that must exist before a version-two-or-later marker is trusted. */
20
+ export const REQUIRED_V2_COLUMNS = {
21
+ sync_conflict: [
22
+ "conflict_id",
23
+ "conflict_group_id",
24
+ "event_id",
25
+ "logical_sheet_id",
26
+ "entity_id",
27
+ "row_binding_id",
28
+ "field_name",
29
+ "user_value",
30
+ "user_base_revision",
31
+ "canonical_value_at_detection",
32
+ "canonical_revision_at_detection",
33
+ "current_canonical_value",
34
+ "current_canonical_revision",
35
+ "candidate_epoch",
36
+ "status",
37
+ "last_rebased_commit_id",
38
+ "resolution_command_id",
39
+ "created_at",
40
+ "updated_at",
41
+ ],
42
+ resolution_command: [
43
+ "command_id",
44
+ "request_key",
45
+ "action",
46
+ "actor_id",
47
+ "role",
48
+ "target_conflict_id",
49
+ "expected_revision",
50
+ "active_candidate_hash",
51
+ "expected_candidate_epoch",
52
+ "payload_hash",
53
+ "status",
54
+ "issued_at",
55
+ "applied_commit_id",
56
+ ],
57
+ };
58
+ /** Columns that must exist before a version-three marker is trusted. */
59
+ export const REQUIRED_V3_COLUMNS = {
60
+ sheet_effect_outbox: ["effect_id", "created_at"],
61
+ };
62
+ /**
63
+ * Returns full DDL for an empty database or isolated test fixture.
64
+ *
65
+ * Durable runtime startup must call migrateSchema() instead: executing this
66
+ * directly cannot safely evolve an already-populated database.
67
+ */
68
+ export function schemaDdl() {
69
+ return `${SQLITE_CONNECTION_PRAGMAS}\n${syncSchemaTablesDdl()}\n${syncSchemaIndexesDdl()}`;
70
+ }
71
+ /**
72
+ * Upgrades a durable database under an immediate writer transaction.
73
+ *
74
+ * Version 1 represents the original one-shot schema. Version 2 persists the
75
+ * candidate epoch needed to prevent a stale resolution request from resolving
76
+ * an ABA candidate retry. Version 3 adds durable effect creation time so
77
+ * operations can measure pending-age backpressure. Unversioned legacy
78
+ * databases created by schemaDdl() are adopted only after verification.
79
+ */
80
+ export function migrateSchema(db) {
81
+ db.exec(SQLITE_CONNECTION_PRAGMAS);
82
+ return withImmediateTransaction(db, () => {
83
+ const fromVersion = readSchemaVersion(db);
84
+ if (fromVersion > CURRENT_SCHEMA_VERSION) {
85
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_VERSION_TOO_NEW, `SQLite schema version ${fromVersion} is newer than supported version ${CURRENT_SCHEMA_VERSION}.`);
86
+ }
87
+ const hasSchema = tableExists(db, "sheet_registry");
88
+ if (fromVersion === 0 && !hasSchema) {
89
+ db.exec(syncSchemaTablesDdl());
90
+ verifyRequiredColumns(db);
91
+ db.exec(syncSchemaIndexesDdl());
92
+ writeSchemaVersion(db, CURRENT_SCHEMA_VERSION);
93
+ verifyCurrentSchema(db);
94
+ return {
95
+ fromVersion,
96
+ toVersion: CURRENT_SCHEMA_VERSION,
97
+ appliedVersions: [CURRENT_SCHEMA_VERSION],
98
+ };
99
+ }
100
+ if (!hasSchema) {
101
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_TABLE_MISSING, "SQLite schema is missing sheet_registry and cannot be migrated safely.");
102
+ }
103
+ // Create tables that were added after the original one-shot bootstrap,
104
+ // without changing existing table definitions implicitly.
105
+ db.exec(syncSchemaTablesDdl());
106
+ const appliedVersions = [];
107
+ if (fromVersion < 2) {
108
+ applyVersion2CandidateEpochMigration(db);
109
+ writeSchemaVersion(db, 2);
110
+ appliedVersions.push(2);
111
+ }
112
+ if (fromVersion < 3) {
113
+ applyVersion3EffectTimestampMigration(db);
114
+ writeSchemaVersion(db, 3);
115
+ appliedVersions.push(3);
116
+ }
117
+ verifyRequiredColumns(db);
118
+ db.exec(syncSchemaIndexesDdl());
119
+ verifyCurrentSchema(db);
120
+ return {
121
+ fromVersion,
122
+ toVersion: CURRENT_SCHEMA_VERSION,
123
+ appliedVersions,
124
+ };
125
+ });
126
+ }
127
+ /** Returns table DDL only, so migration transactions never change connection pragmas. */
128
+ export function syncSchemaTablesDdl() {
129
+ return [
130
+ REGISTRY_TABLES_DDL,
131
+ IDENTITY_TABLES_DDL,
132
+ CANONICAL_STATE_TABLES_DDL,
133
+ VISIBLE_STATE_TABLES_DDL,
134
+ EVENT_LEDGER_TABLES_DDL,
135
+ CONFLICT_AND_QUARANTINE_TABLES_DDL,
136
+ BUSINESS_KEY_INDEX_DDL,
137
+ EFFECT_OUTBOX_DDL,
138
+ WRITER_LEASE_DDL,
139
+ CUTOVER_STATE_DDL,
140
+ ].join("\n");
141
+ }
142
+ /**
143
+ * Creates indexes that depend on additive migration columns only after those
144
+ * columns have been confirmed. This keeps a version-one upgrade ordered.
145
+ */
146
+ export function syncSchemaIndexesDdl() {
147
+ return `
148
+ CREATE UNIQUE INDEX IF NOT EXISTS sync_conflict_candidate_attempt_uq
149
+ ON sync_conflict(row_binding_id, field_name, candidate_epoch);
150
+ `;
151
+ }
152
+ /** Applies the first additive migration after the historical one-shot DDL. */
153
+ function applyVersion2CandidateEpochMigration(db) {
154
+ addColumnIfMissing(db, "sync_conflict", "candidate_epoch", "INTEGER NOT NULL DEFAULT 0");
155
+ addColumnIfMissing(db, "resolution_command", "expected_candidate_epoch", "INTEGER NOT NULL DEFAULT 0");
156
+ }
157
+ /** Adds durable effect creation time without rewriting existing outbox evidence. */
158
+ function applyVersion3EffectTimestampMigration(db) {
159
+ addColumnIfMissing(db, "sheet_effect_outbox", "created_at", "INTEGER NOT NULL DEFAULT 0");
160
+ }
161
+ /** Refuses to treat a user_version marker as authoritative when required columns are absent. */
162
+ function verifyCurrentSchema(db) {
163
+ verifyRequiredColumns(db);
164
+ if (!indexExists(db, "sync_conflict_candidate_attempt_uq")) {
165
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_INDEX_MISSING, "SQLite schema is missing sync_conflict_candidate_attempt_uq.");
166
+ }
167
+ }
168
+ /** Verifies columns before a dependent unique index is created. */
169
+ function verifyRequiredColumns(db) {
170
+ for (const [tableName, requiredColumns] of Object.entries(REQUIRED_V2_COLUMNS)) {
171
+ if (!tableExists(db, tableName)) {
172
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_TABLE_MISSING, `SQLite schema is missing ${tableName}; refusing an unsafe migration marker.`);
173
+ }
174
+ for (const columnName of requiredColumns) {
175
+ if (!columnExists(db, tableName, columnName)) {
176
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_COLUMN_MISSING, `SQLite schema is missing ${tableName}.${columnName}; refusing an unsafe migration marker.`);
177
+ }
178
+ }
179
+ }
180
+ for (const [tableName, requiredColumns] of Object.entries(REQUIRED_V3_COLUMNS)) {
181
+ if (!tableExists(db, tableName)) {
182
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_TABLE_MISSING, `SQLite schema is missing ${tableName}; refusing an unsafe migration marker.`);
183
+ }
184
+ for (const columnName of requiredColumns) {
185
+ if (!columnExists(db, tableName, columnName)) {
186
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_COLUMN_MISSING, `SQLite schema is missing ${tableName}.${columnName}; refusing an unsafe migration marker.`);
187
+ }
188
+ }
189
+ }
190
+ }
191
+ /** Adds one known additive column exactly once. Table and column names are internal constants. */
192
+ function addColumnIfMissing(db, tableName, columnName, definition) {
193
+ if (columnExists(db, tableName, columnName))
194
+ return;
195
+ db.exec(`ALTER TABLE ${tableName} ADD COLUMN ${columnName} ${definition}`);
196
+ }
197
+ /** Reads SQLite's built-in durable schema marker. */
198
+ function readSchemaVersion(db) {
199
+ const row = db.prepare("PRAGMA user_version").get();
200
+ const version = row?.user_version;
201
+ if (typeof version !== "number" || !Number.isSafeInteger(version) || version < 0) {
202
+ throw new StorageError(STORAGE_ERROR_CODES.SCHEMA_VERSION_INVALID, "SQLite user_version must be a non-negative safe integer.");
203
+ }
204
+ return version;
205
+ }
206
+ /** Writes the schema marker only in the same transaction as its DDL changes. */
207
+ function writeSchemaVersion(db, version) {
208
+ db.exec(`PRAGMA user_version = ${version}`);
209
+ }
210
+ /** Checks for one schema-owned table without interpolating external input. */
211
+ function tableExists(db, tableName) {
212
+ return db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?").get(tableName) !== undefined;
213
+ }
214
+ /** Reads the schema-owned table definition to make an ALTER migration idempotent. */
215
+ function columnExists(db, tableName, columnName) {
216
+ const rows = db.prepare(`PRAGMA table_info(${tableName})`).all();
217
+ return rows.some((row) => row.name === columnName);
218
+ }
219
+ /** Checks the immutable candidate-attempt index created by the current schema. */
220
+ function indexExists(db, indexName) {
221
+ return db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'index' AND name = ?").get(indexName) !== undefined;
222
+ }
223
+ const REGISTRY_TABLES_DDL = `
224
+ CREATE TABLE IF NOT EXISTS sheet_registry (
225
+ sheet_id TEXT PRIMARY KEY,
226
+ schema_version INTEGER NOT NULL,
227
+ ownership_manifest_json TEXT NOT NULL,
228
+ business_key_field TEXT NOT NULL,
229
+ locale TEXT,
230
+ timezone TEXT,
231
+ anchor_mode TEXT NOT NULL DEFAULT 'developer_metadata',
232
+ stable_encode_version TEXT NOT NULL DEFAULT 'stable_encode_v1',
233
+ enabled INTEGER NOT NULL DEFAULT 1
234
+ );
235
+
236
+ CREATE TABLE IF NOT EXISTS physical_sheet_registry (
237
+ physical_sheet_id TEXT PRIMARY KEY,
238
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
239
+ spreadsheet_id TEXT NOT NULL,
240
+ tab_name TEXT NOT NULL,
241
+ registered_range TEXT NOT NULL,
242
+ projection TEXT NOT NULL,
243
+ schema_version INTEGER NOT NULL,
244
+ anchor_mode TEXT NOT NULL DEFAULT 'developer_metadata',
245
+ enabled INTEGER NOT NULL DEFAULT 1,
246
+ UNIQUE(spreadsheet_id, tab_name, registered_range, projection)
247
+ );
248
+ `;
249
+ const IDENTITY_TABLES_DDL = `
250
+ CREATE TABLE IF NOT EXISTS row_binding (
251
+ row_binding_id TEXT PRIMARY KEY,
252
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
253
+ anchor_reference TEXT NOT NULL,
254
+ entity_id TEXT,
255
+ last_business_id TEXT,
256
+ state TEXT NOT NULL CHECK (state IN ('candidate', 'active', 'tombstoned', 'ambiguous')),
257
+ candidate_epoch INTEGER NOT NULL DEFAULT 0,
258
+ UNIQUE(logical_sheet_id, anchor_reference)
259
+ );
260
+
261
+ CREATE TABLE IF NOT EXISTS projection_row_binding (
262
+ projection_row_id TEXT PRIMARY KEY,
263
+ physical_sheet_id TEXT NOT NULL REFERENCES physical_sheet_registry(physical_sheet_id),
264
+ row_binding_id TEXT REFERENCES row_binding(row_binding_id),
265
+ conflict_id TEXT,
266
+ anchor_reference TEXT NOT NULL,
267
+ physical_row_locator INTEGER NOT NULL,
268
+ state TEXT NOT NULL DEFAULT 'active',
269
+ CHECK ((row_binding_id IS NOT NULL) != (conflict_id IS NOT NULL)),
270
+ UNIQUE(physical_sheet_id, anchor_reference)
271
+ );
272
+
273
+ CREATE UNIQUE INDEX IF NOT EXISTS projection_row_binding_entity_uq
274
+ ON projection_row_binding(physical_sheet_id, row_binding_id)
275
+ WHERE row_binding_id IS NOT NULL;
276
+
277
+ CREATE UNIQUE INDEX IF NOT EXISTS projection_row_binding_conflict_uq
278
+ ON projection_row_binding(physical_sheet_id, conflict_id)
279
+ WHERE conflict_id IS NOT NULL;
280
+ `;
281
+ const CANONICAL_STATE_TABLES_DDL = `
282
+ CREATE TABLE IF NOT EXISTS entity_state (
283
+ entity_id TEXT PRIMARY KEY,
284
+ entity_revision INTEGER NOT NULL,
285
+ accepted_snapshot_hash TEXT,
286
+ status TEXT NOT NULL DEFAULT 'active'
287
+ );
288
+
289
+ CREATE TABLE IF NOT EXISTS entity_field_state (
290
+ entity_id TEXT NOT NULL REFERENCES entity_state(entity_id),
291
+ field_name TEXT NOT NULL,
292
+ normalized_value TEXT NOT NULL,
293
+ field_revision INTEGER NOT NULL,
294
+ ownership TEXT NOT NULL CHECK (ownership IN ('user', 'system')),
295
+ PRIMARY KEY(entity_id, field_name)
296
+ );
297
+ `;
298
+ const VISIBLE_STATE_TABLES_DDL = `
299
+ CREATE TABLE IF NOT EXISTS sheet_visible_state (
300
+ physical_sheet_id TEXT NOT NULL,
301
+ projection TEXT NOT NULL,
302
+ row_binding_id TEXT NOT NULL,
303
+ confirmed_snapshot_hash TEXT NOT NULL,
304
+ confirmed_visible_revision INTEGER NOT NULL,
305
+ confirmed_entity_revision INTEGER,
306
+ last_observed_hash TEXT,
307
+ PRIMARY KEY(physical_sheet_id, projection, row_binding_id),
308
+ FOREIGN KEY(physical_sheet_id) REFERENCES physical_sheet_registry(physical_sheet_id)
309
+ );
310
+
311
+ CREATE TABLE IF NOT EXISTS sheet_visible_field_state (
312
+ physical_sheet_id TEXT NOT NULL,
313
+ projection TEXT NOT NULL,
314
+ row_binding_id TEXT NOT NULL,
315
+ field_name TEXT NOT NULL,
316
+ confirmed_field_hash TEXT NOT NULL,
317
+ confirmed_visible_revision INTEGER NOT NULL,
318
+ active_candidate_conflict_id TEXT,
319
+ active_candidate_hash TEXT,
320
+ candidate_epoch INTEGER NOT NULL DEFAULT 0,
321
+ last_observed_field_hash TEXT,
322
+ PRIMARY KEY(physical_sheet_id, projection, row_binding_id, field_name),
323
+ FOREIGN KEY(physical_sheet_id) REFERENCES physical_sheet_registry(physical_sheet_id)
324
+ );
325
+ `;
326
+ const EVENT_LEDGER_TABLES_DDL = `
327
+ CREATE TABLE IF NOT EXISTS event_batch (
328
+ batch_id TEXT PRIMARY KEY,
329
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
330
+ physical_sheet_id TEXT NOT NULL REFERENCES physical_sheet_registry(physical_sheet_id),
331
+ source TEXT NOT NULL,
332
+ projection TEXT NOT NULL,
333
+ atomicity TEXT NOT NULL DEFAULT 'row_independent',
334
+ base_snapshot_hash TEXT NOT NULL
335
+ );
336
+
337
+ CREATE TABLE IF NOT EXISTS event_log (
338
+ event_id TEXT PRIMARY KEY,
339
+ logical_sheet_id TEXT NOT NULL,
340
+ physical_sheet_id TEXT NOT NULL,
341
+ event_key TEXT NOT NULL,
342
+ payload_hash TEXT NOT NULL,
343
+ event_sequence INTEGER NOT NULL,
344
+ batch_id TEXT NOT NULL REFERENCES event_batch(batch_id),
345
+ row_binding_id TEXT NOT NULL,
346
+ operation TEXT NOT NULL,
347
+ status TEXT NOT NULL CHECK (status IN ('accepted', 'conflict', 'quarantined')),
348
+ received_at INTEGER NOT NULL,
349
+ UNIQUE(logical_sheet_id, event_key)
350
+ );
351
+
352
+ CREATE TABLE IF NOT EXISTS event_observation (
353
+ observation_id TEXT PRIMARY KEY,
354
+ logical_sheet_id TEXT NOT NULL,
355
+ physical_sheet_id TEXT NOT NULL,
356
+ observation_key TEXT NOT NULL,
357
+ event_id TEXT,
358
+ source TEXT NOT NULL,
359
+ payload_json TEXT NOT NULL,
360
+ payload_hash TEXT NOT NULL,
361
+ detected_at INTEGER NOT NULL,
362
+ received_at INTEGER NOT NULL,
363
+ redacted_at INTEGER,
364
+ ingress_actor_id TEXT NOT NULL,
365
+ editor_actor_id TEXT,
366
+ editor_actor_source TEXT NOT NULL DEFAULT 'unavailable'
367
+ );
368
+
369
+ CREATE TABLE IF NOT EXISTS observation_receipt (
370
+ logical_sheet_id TEXT NOT NULL,
371
+ observation_key TEXT NOT NULL,
372
+ representative_payload_hash TEXT NOT NULL,
373
+ first_observation_id TEXT NOT NULL,
374
+ last_observation_id TEXT NOT NULL,
375
+ event_id TEXT,
376
+ state TEXT NOT NULL DEFAULT 'pending' CHECK (state IN ('pending', 'evaluated', 'duplicate', 'quarantined')),
377
+ first_seen_at INTEGER NOT NULL,
378
+ last_seen_at INTEGER NOT NULL,
379
+ redacted_at INTEGER,
380
+ PRIMARY KEY(logical_sheet_id, observation_key)
381
+ );
382
+
383
+ CREATE TABLE IF NOT EXISTS event_row (
384
+ event_id TEXT PRIMARY KEY REFERENCES event_log(event_id),
385
+ before_row_json TEXT,
386
+ after_row_json TEXT,
387
+ before_hash TEXT,
388
+ after_hash TEXT
389
+ );
390
+
391
+ CREATE TABLE IF NOT EXISTS event_field (
392
+ event_id TEXT NOT NULL REFERENCES event_log(event_id),
393
+ field_name TEXT NOT NULL,
394
+ previous_value TEXT,
395
+ next_value TEXT,
396
+ base_field_revision INTEGER,
397
+ PRIMARY KEY(event_id, field_name)
398
+ );
399
+ `;
400
+ const CONFLICT_AND_QUARANTINE_TABLES_DDL = `
401
+ CREATE TABLE IF NOT EXISTS sync_conflict (
402
+ conflict_id TEXT PRIMARY KEY,
403
+ conflict_group_id TEXT,
404
+ event_id TEXT NOT NULL REFERENCES event_log(event_id),
405
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
406
+ entity_id TEXT NOT NULL,
407
+ row_binding_id TEXT NOT NULL REFERENCES row_binding(row_binding_id),
408
+ field_name TEXT NOT NULL,
409
+ user_value TEXT NOT NULL,
410
+ user_base_revision INTEGER NOT NULL,
411
+ canonical_value_at_detection TEXT NOT NULL,
412
+ canonical_revision_at_detection INTEGER NOT NULL,
413
+ current_canonical_value TEXT NOT NULL,
414
+ current_canonical_revision INTEGER NOT NULL,
415
+ candidate_epoch INTEGER NOT NULL DEFAULT 0,
416
+ status TEXT NOT NULL DEFAULT 'OPEN' CHECK (status IN ('OPEN', 'NEEDS_REBASE', 'RESOLVED')),
417
+ last_rebased_commit_id TEXT,
418
+ resolution_command_id TEXT,
419
+ created_at INTEGER NOT NULL,
420
+ updated_at INTEGER NOT NULL
421
+ );
422
+
423
+ CREATE TABLE IF NOT EXISTS quarantine_record (
424
+ quarantine_id TEXT PRIMARY KEY,
425
+ event_id TEXT,
426
+ observation_id TEXT,
427
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
428
+ row_binding_id TEXT,
429
+ reason TEXT NOT NULL,
430
+ before_row_json TEXT,
431
+ after_row_json TEXT,
432
+ fields_json TEXT NOT NULL,
433
+ repair_fields_json TEXT NOT NULL DEFAULT '[]',
434
+ repair_state TEXT,
435
+ candidate_payload_json TEXT,
436
+ created_at INTEGER NOT NULL,
437
+ updated_at INTEGER NOT NULL
438
+ );
439
+
440
+ CREATE TABLE IF NOT EXISTS resolution_command (
441
+ command_id TEXT PRIMARY KEY,
442
+ request_key TEXT NOT NULL UNIQUE,
443
+ action TEXT NOT NULL,
444
+ actor_id TEXT NOT NULL,
445
+ role TEXT NOT NULL,
446
+ target_conflict_id TEXT NOT NULL REFERENCES sync_conflict(conflict_id),
447
+ expected_revision INTEGER NOT NULL,
448
+ active_candidate_hash TEXT NOT NULL,
449
+ expected_candidate_epoch INTEGER NOT NULL DEFAULT 0,
450
+ payload_hash TEXT NOT NULL,
451
+ status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'processing', 'applied', 'stale', 'rejected', 'failed')),
452
+ issued_at INTEGER NOT NULL,
453
+ applied_commit_id TEXT
454
+ );
455
+ `;
456
+ const BUSINESS_KEY_INDEX_DDL = `
457
+ CREATE TABLE IF NOT EXISTS business_key_index (
458
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
459
+ field_name TEXT NOT NULL,
460
+ normalized_key TEXT NOT NULL,
461
+ entity_id TEXT NOT NULL,
462
+ state TEXT NOT NULL DEFAULT 'active'
463
+ );
464
+
465
+ CREATE UNIQUE INDEX IF NOT EXISTS business_key_active_uq
466
+ ON business_key_index(logical_sheet_id, field_name, normalized_key)
467
+ WHERE state = 'active';
468
+ `;
469
+ const EFFECT_OUTBOX_DDL = `
470
+ CREATE TABLE IF NOT EXISTS sheet_effect_outbox (
471
+ effect_id TEXT PRIMARY KEY,
472
+ effect_kind TEXT NOT NULL,
473
+ commit_id TEXT NOT NULL,
474
+ logical_sheet_id TEXT NOT NULL REFERENCES sheet_registry(sheet_id),
475
+ physical_sheet_id TEXT NOT NULL REFERENCES physical_sheet_registry(physical_sheet_id),
476
+ projection TEXT NOT NULL,
477
+ row_binding_id TEXT,
478
+ conflict_id TEXT,
479
+ target_kind TEXT NOT NULL CHECK (target_kind IN ('entity', 'row_binding', 'projection_row', 'conflict')),
480
+ target_id TEXT NOT NULL,
481
+ target_entity_revision INTEGER,
482
+ target_field_revision_hash TEXT,
483
+ target_canonical_commit_id TEXT,
484
+ expected_visible_revision INTEGER NOT NULL,
485
+ expected_visible_hash TEXT NOT NULL,
486
+ repair_guard_hash TEXT,
487
+ source_quarantine_id TEXT,
488
+ payload_json TEXT NOT NULL,
489
+ payload_hash TEXT NOT NULL,
490
+ effect_dedupe_key TEXT NOT NULL UNIQUE,
491
+ stream_sequence INTEGER NOT NULL,
492
+ predecessor_effect_id TEXT,
493
+ status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'processing', 'applied', 'blocked_candidate', 'superseded', 'conflict', 'failed')),
494
+ attempts INTEGER NOT NULL DEFAULT 0,
495
+ lease_until INTEGER,
496
+ next_attempt_at INTEGER,
497
+ claim_token TEXT,
498
+ writer_epoch INTEGER,
499
+ supersedes_effect_id TEXT,
500
+ last_error_code TEXT,
501
+ last_error_message TEXT,
502
+ created_at INTEGER NOT NULL DEFAULT 0,
503
+ UNIQUE(logical_sheet_id, target_kind, target_id, stream_sequence)
504
+ );
505
+
506
+ CREATE INDEX IF NOT EXISTS effect_outbox_stream_idx
507
+ ON sheet_effect_outbox(logical_sheet_id, target_kind, target_id, stream_sequence)
508
+ WHERE status IN ('pending', 'processing');
509
+ `;
510
+ const WRITER_LEASE_DDL = `
511
+ CREATE TABLE IF NOT EXISTS writer_lease (
512
+ role TEXT PRIMARY KEY,
513
+ writer_id TEXT NOT NULL,
514
+ writer_epoch INTEGER NOT NULL,
515
+ fencing_token TEXT NOT NULL,
516
+ lease_until INTEGER NOT NULL
517
+ );
518
+ `;
519
+ const CUTOVER_STATE_DDL = `
520
+ CREATE TABLE IF NOT EXISTS cutover_state (
521
+ cutover_id TEXT PRIMARY KEY,
522
+ phase TEXT NOT NULL,
523
+ source_snapshot_hash TEXT,
524
+ marker TEXT,
525
+ status TEXT NOT NULL,
526
+ created_at INTEGER NOT NULL
527
+ );
528
+ `;
529
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Table names used by the additive SQLite schema migrations. */
2
+ export type SchemaMigrationTableName = "sync_conflict" | "resolution_command" | "sheet_effect_outbox";
3
+ /** Column names added by the additive SQLite schema migrations. */
4
+ export type SchemaMigrationColumnName = "candidate_epoch" | "expected_candidate_epoch" | "created_at";
5
+ //# sourceMappingURL=schemaTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaTypes.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/schemaTypes.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,MAAM,wBAAwB,GAChC,eAAe,GACf,oBAAoB,GACpB,qBAAqB,CAAC;AAE1B,mEAAmE;AACnE,MAAM,MAAM,yBAAyB,GACjC,iBAAiB,GACjB,0BAA0B,GAC1B,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemaTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaTypes.js","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/schemaTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { SqlExecutor } from "../../../adapter/persistence/contracts/sql.js";
2
+ /** Executes a SQLite SQL script statement-by-statement through the active executor. */
3
+ export declare function executeSqlScript(executor: SqlExecutor, script: string): Promise<void>;
4
+ /**
5
+ * Splits a SQLite script without treating semicolons inside quoted values or
6
+ * comments as statement boundaries.
7
+ */
8
+ export declare function splitSqlStatements(script: string): readonly string[];
9
+ //# sourceMappingURL=sqlScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlScript.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/storage/sqlite/sqlScript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAGjF,uFAAuF;AACvF,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAmGpE"}