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,17 @@
1
+ /**
2
+ * Business-key index maintenance for mapped entity persistence.
3
+ *
4
+ * The index is kept in the same SQLite transaction as the canonical entity
5
+ * write, so duplicate and rotated keys cannot become visible independently of
6
+ * the entity lifecycle change.
7
+ */
8
+ import { type NormalizedCell } from "../../../../domain/index.js";
9
+ import type { SqlExecutor } from "../../../../adapter/persistence/contracts/sql.js";
10
+ import type { TypedSheetsEntityMapping } from "../../mapping/entityMapping.js";
11
+ /** Claims the mapped entity's normalized business key during creation. */
12
+ export declare function claimBusinessKey(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, entityId: string, encodedEntity: Readonly<Record<string, NormalizedCell>>): Promise<void>;
13
+ /** Rotates the indexed business key after an accepted entity update. */
14
+ export declare function rotateBusinessKey(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, entityId: string, encodedEntity: Readonly<Record<string, NormalizedCell>>): Promise<void>;
15
+ /** Retires all business keys owned by a deleted mapped entity. */
16
+ export declare function retireEntityBusinessKeys(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, entityId: string): Promise<void>;
17
+ //# sourceMappingURL=businessKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"businessKeys.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/businessKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAgB/E,0EAA0E;AAC1E,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wEAAwE;AACxE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GACtD,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,kEAAkE;AAClE,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Business-key index maintenance for mapped entity persistence.
3
+ *
4
+ * The index is kept in the same SQLite transaction as the canonical entity
5
+ * write, so duplicate and rotated keys cannot become visible independently of
6
+ * the entity lifecycle change.
7
+ */
8
+ import { stableHash } from "../../../../domain/index.js";
9
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../../errors.js";
10
+ import { INSERT_ACTIVE_BUSINESS_KEY_SQL, READ_ACTIVE_BUSINESS_KEY_SQL, READ_BUSINESS_KEY_OWNER_SQL, RETIRE_ACTIVE_BUSINESS_KEY_SQL, RETIRE_ENTITY_BUSINESS_KEYS_SQL, } from "./contracts.js";
11
+ import { requireEncodedField } from "./helpers.js";
12
+ /** Claims the mapped entity's normalized business key during creation. */
13
+ export async function claimBusinessKey(sql, mapping, entityId, encodedEntity) {
14
+ const normalizedKey = businessKeyHash(mapping, encodedEntity);
15
+ await ensureBusinessKeyOwner(sql, mapping, entityId, normalizedKey);
16
+ }
17
+ /** Rotates the indexed business key after an accepted entity update. */
18
+ export async function rotateBusinessKey(sql, mapping, entityId, encodedEntity) {
19
+ const current = await sql.get(READ_ACTIVE_BUSINESS_KEY_SQL, [
20
+ mapping.logicalSheetId,
21
+ mapping.businessKey.fieldName,
22
+ entityId,
23
+ ]);
24
+ if (current === undefined) {
25
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `business-key index is unavailable for ${mapping.entityName}:${entityId}.`);
26
+ }
27
+ const nextNormalizedKey = businessKeyHash(mapping, encodedEntity);
28
+ if (current.normalized_key === nextNormalizedKey)
29
+ return;
30
+ const retired = await sql.run(RETIRE_ACTIVE_BUSINESS_KEY_SQL, [
31
+ mapping.logicalSheetId,
32
+ mapping.businessKey.fieldName,
33
+ current.normalized_key,
34
+ entityId,
35
+ ]);
36
+ if (retired.changes !== 1) {
37
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `could not retire the previous business key for ${mapping.entityName}:${entityId}.`);
38
+ }
39
+ await ensureBusinessKeyOwner(sql, mapping, entityId, nextNormalizedKey);
40
+ }
41
+ /** Retires all business keys owned by a deleted mapped entity. */
42
+ export async function retireEntityBusinessKeys(sql, mapping, entityId) {
43
+ const retired = await sql.run(RETIRE_ENTITY_BUSINESS_KEYS_SQL, [mapping.logicalSheetId, entityId]);
44
+ if (retired.changes !== 1) {
45
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `could not retire the business key for ${mapping.entityName}:${entityId}.`);
46
+ }
47
+ }
48
+ async function ensureBusinessKeyOwner(sql, mapping, entityId, normalizedKey) {
49
+ const owner = await sql.get(READ_BUSINESS_KEY_OWNER_SQL, [
50
+ mapping.logicalSheetId,
51
+ mapping.businessKey.fieldName,
52
+ normalizedKey,
53
+ ]);
54
+ if (owner !== undefined) {
55
+ if (owner.entity_id === entityId)
56
+ return;
57
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `business key for ${mapping.entityName} is already owned by ${owner.entity_id}.`);
58
+ }
59
+ const inserted = await sql.run(INSERT_ACTIVE_BUSINESS_KEY_SQL, [
60
+ mapping.logicalSheetId,
61
+ mapping.businessKey.fieldName,
62
+ normalizedKey,
63
+ entityId,
64
+ ]);
65
+ if (inserted.changes !== 1) {
66
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `could not claim the business key for ${mapping.entityName}:${entityId}.`);
67
+ }
68
+ }
69
+ function businessKeyHash(mapping, encodedEntity) {
70
+ return stableHash(requireEncodedField(encodedEntity, mapping.businessKey));
71
+ }
72
+ //# sourceMappingURL=businessKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"businessKeys.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/businessKeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Canonical SQLite helpers used by mapped entity lifecycle writes.
3
+ *
4
+ * These functions validate row bindings and revision contracts before the
5
+ * storage commit helper mutates canonical state and appends projection effects.
6
+ */
7
+ import { type CanonicalCommitInput, type FencingContext } from "../../../../infrastructure/storage/index.js";
8
+ import type { SqlExecutor } from "../../../../adapter/persistence/contracts/sql.js";
9
+ import type { TypedSheetsEntityMapping } from "../../mapping/entityMapping.js";
10
+ /** Creates the active row binding used by both physical projections. */
11
+ export declare function insertActiveRowBinding(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, rowBindingId: string, entityId: string, anchor: string): Promise<void>;
12
+ /** Requires the active binding to still match the mapped entity identity. */
13
+ export declare function requireActiveRowBinding(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, rowBindingId: string, entityId: string, anchor: string): Promise<void>;
14
+ /** Reads the current active canonical entity revision for an update or delete. */
15
+ export declare function requireActiveCanonicalEntityRevision(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, entityId: string): Promise<number>;
16
+ /** Returns canonical field revisions indexed by field name for update CAS. */
17
+ export declare function canonicalFieldRevisions(sql: SqlExecutor, entityId: string): Promise<ReadonlyMap<string, number>>;
18
+ /** Applies a canonical commit or translates its stable result into an ORM error. */
19
+ export declare function requireAppliedCanonicalCommit(sql: SqlExecutor, fence: FencingContext, commit: CanonicalCommitInput): Promise<void>;
20
+ /** Tombstones a mapped row binding after the canonical delete has committed. */
21
+ export declare function tombstoneActiveRowBinding(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, rowBindingId: string, entityId: string): Promise<void>;
22
+ //# sourceMappingURL=canonicalState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalState.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/canonicalState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAgB/E,wEAAwE;AACxE,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,kFAAkF;AAClF,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,8EAA8E;AAC9E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAStC;AAED,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,gFAAgF;AAChF,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAcf"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Canonical SQLite helpers used by mapped entity lifecycle writes.
3
+ *
4
+ * These functions validate row bindings and revision contracts before the
5
+ * storage commit helper mutates canonical state and appends projection effects.
6
+ */
7
+ import { POSITIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
8
+ import { ROW_BINDING_STATES } from "../../../../domain/model/constants.js";
9
+ import { CANONICAL_COMMIT_RESULT_KINDS, commitCanonicalChangesWithSql, } from "../../../../infrastructure/storage/index.js";
10
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../../errors.js";
11
+ import { READ_ACTIVE_CANONICAL_ENTITY_SQL, READ_CANONICAL_FIELD_REVISIONS_SQL, READ_ROW_BINDING_SQL, INSERT_ACTIVE_ROW_BINDING_SQL, TOMBSTONE_ACTIVE_ROW_BINDING_SQL, } from "./contracts.js";
12
+ /** Creates the active row binding used by both physical projections. */
13
+ export async function insertActiveRowBinding(sql, mapping, rowBindingId, entityId, anchor) {
14
+ const existing = await sql.get(READ_ROW_BINDING_SQL, [rowBindingId]);
15
+ if (existing !== undefined) {
16
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `row binding ${rowBindingId} already exists for ${mapping.entityName}:${entityId}.`);
17
+ }
18
+ const inserted = await sql.run(INSERT_ACTIVE_ROW_BINDING_SQL, [
19
+ rowBindingId,
20
+ mapping.logicalSheetId,
21
+ anchor,
22
+ entityId,
23
+ ROW_BINDING_STATES.ACTIVE,
24
+ ]);
25
+ if (inserted.changes !== 1) {
26
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `could not create the row binding for ${mapping.entityName}:${entityId}.`);
27
+ }
28
+ }
29
+ /** Requires the active binding to still match the mapped entity identity. */
30
+ export async function requireActiveRowBinding(sql, mapping, rowBindingId, entityId, anchor) {
31
+ const row = await sql.get(READ_ROW_BINDING_SQL, [rowBindingId]);
32
+ if (row === undefined ||
33
+ row.logical_sheet_id !== mapping.logicalSheetId ||
34
+ row.anchor_reference !== anchor ||
35
+ row.entity_id !== entityId ||
36
+ row.state !== ROW_BINDING_STATES.ACTIVE) {
37
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `active row binding is unavailable for ${mapping.entityName}:${entityId}.`);
38
+ }
39
+ }
40
+ /** Reads the current active canonical entity revision for an update or delete. */
41
+ export async function requireActiveCanonicalEntityRevision(sql, mapping, entityId) {
42
+ const entity = await sql.get(READ_ACTIVE_CANONICAL_ENTITY_SQL, [entityId]);
43
+ if (entity === undefined || !isPositiveSafeInteger(entity.entity_revision)) {
44
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `active canonical state is unavailable for ${mapping.entityName}:${entityId}.`);
45
+ }
46
+ return entity.entity_revision;
47
+ }
48
+ /** Returns canonical field revisions indexed by field name for update CAS. */
49
+ export async function canonicalFieldRevisions(sql, entityId) {
50
+ const rows = await sql.all(READ_CANONICAL_FIELD_REVISIONS_SQL, [entityId]);
51
+ const revisions = new Map();
52
+ for (const row of rows) {
53
+ if (isPositiveSafeInteger(row.field_revision)) {
54
+ revisions.set(row.field_name, row.field_revision);
55
+ }
56
+ }
57
+ return revisions;
58
+ }
59
+ /** Applies a canonical commit or translates its stable result into an ORM error. */
60
+ export async function requireAppliedCanonicalCommit(sql, fence, commit) {
61
+ const result = await commitCanonicalChangesWithSql(sql, fence, commit);
62
+ if (result.kind === CANONICAL_COMMIT_RESULT_KINDS.APPLIED)
63
+ return;
64
+ if (result.kind === CANONICAL_COMMIT_RESULT_KINDS.FENCED_OUT) {
65
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.WRITER_LEASE_UNAVAILABLE, "the mapped entity writer lease was lost before canonical state could commit.");
66
+ }
67
+ if (result.kind === CANONICAL_COMMIT_RESULT_KINDS.STALE) {
68
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `canonical ${result.target} state became stale while planning an entity flush.`);
69
+ }
70
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `mapped canonical commit is invalid: ${result.reason}.`);
71
+ }
72
+ /** Tombstones a mapped row binding after the canonical delete has committed. */
73
+ export async function tombstoneActiveRowBinding(sql, mapping, rowBindingId, entityId) {
74
+ const tombstoned = await sql.run(TOMBSTONE_ACTIVE_ROW_BINDING_SQL, [
75
+ ROW_BINDING_STATES.TOMBSTONED,
76
+ rowBindingId,
77
+ mapping.logicalSheetId,
78
+ entityId,
79
+ ROW_BINDING_STATES.ACTIVE,
80
+ ]);
81
+ if (tombstoned.changes !== 1) {
82
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `could not tombstone the row binding for ${mapping.entityName}:${entityId}.`);
83
+ }
84
+ }
85
+ function isPositiveSafeInteger(value) {
86
+ return Number.isSafeInteger(value) && value >= POSITIVE_SAFE_INTEGER_MINIMUM;
87
+ }
88
+ //# sourceMappingURL=canonicalState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalState.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/canonicalState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Internal contracts shared by the mapped persistence modules.
3
+ *
4
+ * Public flush options are kept here as well so the coordinator entrypoint can
5
+ * stay focused on orchestration while row, projection, and SQL helpers share a
6
+ * single set of contracts.
7
+ */
8
+ import { type EffectStatus } from "../../../../domain/index.js";
9
+ import type { RegisteredSyncProjectionDefinition } from "../../../sync/gateway/SyncGatewayBootstrap.js";
10
+ import type { SyncTimingSink } from "../../../sync/telemetry/syncTiming.js";
11
+ import type { CanonicalCommitInput, CanonicalFieldWrite, FencingContext, NewEffect, RegisteredSyncSheet } from "../../../../infrastructure/storage/index.js";
12
+ import type { SqlExecutor, SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
13
+ import { TYPED_SHEETS_ENTITY_CHANGE_KINDS, type TypedSheetsEntityChange, type TypedSheetsFlushContext, type TypedSheetsFlushCoordinator } from "../../api/contracts.js";
14
+ import type { TypedSheetsEntityFieldMapping, TypedSheetsEntityMapping, TypedSheetsEntityMappingRegistry } from "../../mapping/contracts.js";
15
+ /** Default lease role used by mapped entity writes. */
16
+ export declare const DEFAULT_MAPPED_WRITER_ROLE = "typed-sheets-entity-writer";
17
+ /** Default lease duration used by mapped entity writes. */
18
+ export declare const DEFAULT_MAPPED_WRITER_LEASE_DURATION_MS = 60000;
19
+ /** Effect target kinds emitted by mapped entity persistence. */
20
+ export declare const MAPPED_EFFECT_TARGET_KINDS: {
21
+ readonly ENTITY: "entity";
22
+ readonly PROJECTION_ROW: "projection_row";
23
+ };
24
+ /** Effect lifecycle states read while deriving the next projection baseline. */
25
+ export declare const MAPPED_EFFECT_STATUSES: {
26
+ readonly PENDING: "pending";
27
+ readonly PROCESSING: "processing";
28
+ readonly APPLIED: "applied";
29
+ };
30
+ /** SQL used by mapped persistence to read and create row bindings. */
31
+ export declare const READ_ROW_BINDING_SQL = "\n SELECT logical_sheet_id, anchor_reference, entity_id, state\n FROM row_binding\n WHERE row_binding_id = ?\n";
32
+ export declare const INSERT_ACTIVE_ROW_BINDING_SQL = "\n INSERT INTO row_binding (\n row_binding_id, logical_sheet_id, anchor_reference, entity_id, state\n ) VALUES (?, ?, ?, ?, ?)\n";
33
+ export declare const TOMBSTONE_ACTIVE_ROW_BINDING_SQL = "\n UPDATE row_binding\n SET state = ?\n WHERE row_binding_id = ? AND logical_sheet_id = ? AND entity_id = ? AND state = ?\n";
34
+ /** SQL used by mapped persistence to read canonical entity revisions. */
35
+ export declare const READ_ACTIVE_CANONICAL_ENTITY_SQL = "\n SELECT entity_revision\n FROM entity_state\n WHERE entity_id = ? AND status = 'active'\n";
36
+ export declare const READ_CANONICAL_FIELD_REVISIONS_SQL = "\n SELECT field_name, field_revision\n FROM entity_field_state\n WHERE entity_id = ?\n";
37
+ /** SQL used by mapped persistence to manage unique business-key ownership. */
38
+ export declare const READ_ACTIVE_BUSINESS_KEY_SQL = "\n SELECT entity_id, normalized_key\n FROM business_key_index\n WHERE logical_sheet_id = ? AND field_name = ? AND entity_id = ? AND state = 'active'\n";
39
+ export declare const READ_BUSINESS_KEY_OWNER_SQL = "\n SELECT entity_id\n FROM business_key_index\n WHERE logical_sheet_id = ? AND field_name = ? AND normalized_key = ? AND state = 'active'\n";
40
+ export declare const INSERT_ACTIVE_BUSINESS_KEY_SQL = "\n INSERT INTO business_key_index (\n logical_sheet_id, field_name, normalized_key, entity_id, state\n ) VALUES (?, ?, ?, ?, 'active')\n";
41
+ export declare const RETIRE_ACTIVE_BUSINESS_KEY_SQL = "\n UPDATE business_key_index\n SET state = 'inactive'\n WHERE logical_sheet_id = ? AND field_name = ? AND normalized_key = ?\n AND entity_id = ? AND state = 'active'\n";
42
+ export declare const RETIRE_ENTITY_BUSINESS_KEYS_SQL = "\n UPDATE business_key_index\n SET state = 'inactive'\n WHERE logical_sheet_id = ? AND entity_id = ? AND state = 'active'\n";
43
+ /** SQL used to derive the next visible projection baseline. */
44
+ export declare const READ_VISIBLE_PROJECTION_STATE_SQL = "\n SELECT confirmed_snapshot_hash, confirmed_visible_revision\n FROM sheet_visible_state\n WHERE physical_sheet_id = ? AND projection = ? AND row_binding_id = ?\n";
45
+ export declare const READ_LATEST_PROJECTION_EFFECT_SQL = "\n SELECT physical_sheet_id, projection, status, payload_json,\n expected_visible_revision, expected_visible_hash, stream_sequence\n FROM sheet_effect_outbox\n WHERE logical_sheet_id = ? AND target_kind = ? AND target_id = ?\n ORDER BY stream_sequence DESC\n LIMIT 1\n";
46
+ /** Writer identity used to fence mapped entity lifecycle commits. */
47
+ export interface TypedSheetsEntityWriterOptions {
48
+ /** Stable process or service identity that owns mapped entity writes. */
49
+ readonly writerId: string;
50
+ /** Lease role. It may differ from the effect worker's role. */
51
+ readonly role?: string;
52
+ /** Writer lease length in milliseconds. */
53
+ readonly leaseDurationMs?: number;
54
+ /** Injectable clock used for deterministic tests and fencing. */
55
+ readonly now?: () => number;
56
+ /** Injectable opaque-ID source used for commit and effect identities. */
57
+ readonly createId?: () => string;
58
+ /** Optional diagnostics sink for append/update/delete flush phases. */
59
+ readonly onTiming?: SyncTimingSink;
60
+ }
61
+ /** Options for deriving a built-in flush coordinator from mapping metadata. */
62
+ export interface CreateMappedTypedSheetsFlushCoordinatorOptions {
63
+ readonly mappings: TypedSheetsEntityMappingRegistry | readonly TypedSheetsEntityMapping[];
64
+ readonly writer: TypedSheetsEntityWriterOptions;
65
+ }
66
+ /** A registered route with headers ready for Apps Script control-plane provisioning. */
67
+ export interface RegisteredTypedSheetsMappedProjection {
68
+ readonly mapping: TypedSheetsEntityMapping;
69
+ readonly sheet: RegisteredSyncSheet;
70
+ readonly headers: readonly string[];
71
+ }
72
+ /** Normalized writer options used by all persistence helpers. */
73
+ export interface ResolvedWriterOptions {
74
+ readonly writerId: string;
75
+ readonly role: string;
76
+ readonly leaseDurationMs: number;
77
+ readonly now: () => number;
78
+ readonly createId: () => string;
79
+ readonly onTiming: SyncTimingSink | undefined;
80
+ }
81
+ /** Raw row-binding row returned by SQLite. */
82
+ export interface RowBindingSqlRow {
83
+ readonly logical_sheet_id: string;
84
+ readonly anchor_reference: string;
85
+ readonly entity_id: string | null;
86
+ readonly state: string;
87
+ }
88
+ /** Raw canonical entity revision row returned by SQLite. */
89
+ export interface CanonicalEntitySqlRow {
90
+ readonly entity_revision: number;
91
+ }
92
+ /** Raw canonical field revision row returned by SQLite. */
93
+ export interface CanonicalFieldRevisionSqlRow {
94
+ readonly field_name: string;
95
+ readonly field_revision: number;
96
+ }
97
+ /** Raw active business-key row returned by SQLite. */
98
+ export interface ActiveBusinessKeySqlRow {
99
+ readonly entity_id: string;
100
+ readonly normalized_key: string;
101
+ }
102
+ /** Raw business-key owner row returned by SQLite. */
103
+ export interface BusinessKeyOwnerSqlRow {
104
+ readonly entity_id: string;
105
+ }
106
+ /** Raw confirmed visible-state row returned by SQLite. */
107
+ export interface VisibleProjectionSqlRow {
108
+ readonly confirmed_snapshot_hash: string;
109
+ readonly confirmed_visible_revision: number;
110
+ }
111
+ /** Raw latest projection effect row returned by SQLite. */
112
+ export interface LatestProjectionEffectSqlRow {
113
+ readonly physical_sheet_id: string;
114
+ readonly projection: string;
115
+ readonly status: EffectStatus;
116
+ readonly payload_json: string;
117
+ readonly expected_visible_revision: number;
118
+ readonly expected_visible_hash: string;
119
+ readonly stream_sequence: number;
120
+ }
121
+ /** Confirmed or queued baseline used when creating the next projection effect. */
122
+ export interface ProjectionBaseline {
123
+ readonly expectedVisibleRevision: number;
124
+ readonly expectedVisibleHash: string;
125
+ readonly createIfMissing: boolean;
126
+ readonly streamSequence: number;
127
+ }
128
+ /** One validated mapped entity lifecycle change and its selected fields. */
129
+ export interface MappedChangePlan {
130
+ readonly mapping: TypedSheetsEntityMapping;
131
+ readonly change: TypedSheetsEntityChange;
132
+ readonly changedFields: readonly TypedSheetsEntityFieldMapping[];
133
+ }
134
+ /** Public coordinator shape re-exported by the persistence barrel. */
135
+ export type { TypedSheetsFlushCoordinator, TypedSheetsFlushContext };
136
+ /** Keeps the API imports used by persistence modules explicit in one contract file. */
137
+ export type { CanonicalCommitInput, CanonicalFieldWrite, FencingContext, NewEffect, RegisteredSyncProjectionDefinition, RegisteredSyncSheet, SqlExecutor, SqlStorageAdapter, };
138
+ export { TYPED_SHEETS_ENTITY_CHANGE_KINDS };
139
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Internal contracts shared by the mapped persistence modules.
3
+ *
4
+ * Public flush options are kept here as well so the coordinator entrypoint can
5
+ * stay focused on orchestration while row, projection, and SQL helpers share a
6
+ * single set of contracts.
7
+ */
8
+ import { TYPED_SHEETS_ENTITY_CHANGE_KINDS, } from "../../api/contracts.js";
9
+ /** Default lease role used by mapped entity writes. */
10
+ export const DEFAULT_MAPPED_WRITER_ROLE = "typed-sheets-entity-writer";
11
+ /** Default lease duration used by mapped entity writes. */
12
+ export const DEFAULT_MAPPED_WRITER_LEASE_DURATION_MS = 60_000;
13
+ /** Effect target kinds emitted by mapped entity persistence. */
14
+ export const MAPPED_EFFECT_TARGET_KINDS = {
15
+ ENTITY: "entity",
16
+ PROJECTION_ROW: "projection_row",
17
+ };
18
+ /** Effect lifecycle states read while deriving the next projection baseline. */
19
+ export const MAPPED_EFFECT_STATUSES = {
20
+ PENDING: "pending",
21
+ PROCESSING: "processing",
22
+ APPLIED: "applied",
23
+ };
24
+ /** SQL used by mapped persistence to read and create row bindings. */
25
+ export const READ_ROW_BINDING_SQL = `
26
+ SELECT logical_sheet_id, anchor_reference, entity_id, state
27
+ FROM row_binding
28
+ WHERE row_binding_id = ?
29
+ `;
30
+ export const INSERT_ACTIVE_ROW_BINDING_SQL = `
31
+ INSERT INTO row_binding (
32
+ row_binding_id, logical_sheet_id, anchor_reference, entity_id, state
33
+ ) VALUES (?, ?, ?, ?, ?)
34
+ `;
35
+ export const TOMBSTONE_ACTIVE_ROW_BINDING_SQL = `
36
+ UPDATE row_binding
37
+ SET state = ?
38
+ WHERE row_binding_id = ? AND logical_sheet_id = ? AND entity_id = ? AND state = ?
39
+ `;
40
+ /** SQL used by mapped persistence to read canonical entity revisions. */
41
+ export const READ_ACTIVE_CANONICAL_ENTITY_SQL = `
42
+ SELECT entity_revision
43
+ FROM entity_state
44
+ WHERE entity_id = ? AND status = 'active'
45
+ `;
46
+ export const READ_CANONICAL_FIELD_REVISIONS_SQL = `
47
+ SELECT field_name, field_revision
48
+ FROM entity_field_state
49
+ WHERE entity_id = ?
50
+ `;
51
+ /** SQL used by mapped persistence to manage unique business-key ownership. */
52
+ export const READ_ACTIVE_BUSINESS_KEY_SQL = `
53
+ SELECT entity_id, normalized_key
54
+ FROM business_key_index
55
+ WHERE logical_sheet_id = ? AND field_name = ? AND entity_id = ? AND state = 'active'
56
+ `;
57
+ export const READ_BUSINESS_KEY_OWNER_SQL = `
58
+ SELECT entity_id
59
+ FROM business_key_index
60
+ WHERE logical_sheet_id = ? AND field_name = ? AND normalized_key = ? AND state = 'active'
61
+ `;
62
+ export const INSERT_ACTIVE_BUSINESS_KEY_SQL = `
63
+ INSERT INTO business_key_index (
64
+ logical_sheet_id, field_name, normalized_key, entity_id, state
65
+ ) VALUES (?, ?, ?, ?, 'active')
66
+ `;
67
+ export const RETIRE_ACTIVE_BUSINESS_KEY_SQL = `
68
+ UPDATE business_key_index
69
+ SET state = 'inactive'
70
+ WHERE logical_sheet_id = ? AND field_name = ? AND normalized_key = ?
71
+ AND entity_id = ? AND state = 'active'
72
+ `;
73
+ export const RETIRE_ENTITY_BUSINESS_KEYS_SQL = `
74
+ UPDATE business_key_index
75
+ SET state = 'inactive'
76
+ WHERE logical_sheet_id = ? AND entity_id = ? AND state = 'active'
77
+ `;
78
+ /** SQL used to derive the next visible projection baseline. */
79
+ export const READ_VISIBLE_PROJECTION_STATE_SQL = `
80
+ SELECT confirmed_snapshot_hash, confirmed_visible_revision
81
+ FROM sheet_visible_state
82
+ WHERE physical_sheet_id = ? AND projection = ? AND row_binding_id = ?
83
+ `;
84
+ export const READ_LATEST_PROJECTION_EFFECT_SQL = `
85
+ SELECT physical_sheet_id, projection, status, payload_json,
86
+ expected_visible_revision, expected_visible_hash, stream_sequence
87
+ FROM sheet_effect_outbox
88
+ WHERE logical_sheet_id = ? AND target_kind = ? AND target_id = ?
89
+ ORDER BY stream_sequence DESC
90
+ LIMIT 1
91
+ `;
92
+ export { TYPED_SHEETS_ENTITY_CHANGE_KINDS };
93
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH,OAAO,EACL,gCAAgC,GAIjC,MAAM,wBAAwB,CAAC;AAOhC,uDAAuD;AACvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEvE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAC;AAE9D,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;CACmB,CAAC;AAEtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CAC6B,CAAC;AAElD,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;CAInC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;CAI5C,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;CAI/C,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;CAI/C,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG;;;;CAIjD,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;CAI3C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;CAI1C,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;CAI7C,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;CAK7C,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG;;;;CAI9C,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iCAAiC,GAAG;;;;CAIhD,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG;;;;;;;CAOhD,CAAC;AAsHF,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Small persistence helpers shared by the lifecycle and projection modules.
3
+ *
4
+ * Keeping these guards and presence constructors together makes the larger
5
+ * persistence flows read in terms of their domain operation instead of their
6
+ * repeated boundary checks.
7
+ */
8
+ import { type Applicability, type NormalizedCell, type Presence } from "../../../../domain/index.js";
9
+ import type { TypedSheetsEntityChange } from "../../api/contracts.js";
10
+ import { type TypedSheetsEntityFieldMapping, type TypedSheetsEntityMapping, requireTypedSheetsEntityProjection } from "../../mapping/entityMapping.js";
11
+ import type { ResolvedWriterOptions } from "./contracts.js";
12
+ /** Wraps a value in the validated presence contract used by storage writes. */
13
+ export declare function presentValue<T>(value: T): Presence<T>;
14
+ /** Represents a value that is intentionally not applicable to an operation. */
15
+ export declare function absentValue<T>(): Presence<T>;
16
+ /** Wraps a value in the validated applicability contract used by storage writes. */
17
+ export declare function applicableValue<T>(value: T): Applicability<T>;
18
+ /** Returns a namespaced ID and rejects an invalid injected ID source. */
19
+ export declare function identifiedValue(prefix: string, writer: ResolvedWriterOptions): string;
20
+ /** Reads one mapped field and fails before an incomplete canonical commit. */
21
+ export declare function requireEncodedField(encodedEntity: Readonly<Record<string, NormalizedCell>>, field: TypedSheetsEntityFieldMapping): NormalizedCell;
22
+ /** Validates the entity identity collected by the underlying flush engine. */
23
+ export declare function requireChangeEntityId(mapping: TypedSheetsEntityMapping, change: TypedSheetsEntityChange): string;
24
+ /** Builds the stable target ID used by a physical projection row effect. */
25
+ export declare function projectionRowTargetId(physicalSheetId: string, rowBindingId: string): string;
26
+ /** Checks a positive SQLite revision or stream sequence. */
27
+ export declare function isPositiveSafeInteger(value: number): boolean;
28
+ /** Checks a revision that may validly start at zero. */
29
+ export declare function isNonNegativeSafeInteger(value: number): boolean;
30
+ /** Throws the common error used when a projection cannot safely be planned. */
31
+ export declare function throwProjectionBlocked(mapping: TypedSheetsEntityMapping, projection: ReturnType<typeof requireTypedSheetsEntityProjection>, reason: string): never;
32
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,kCAAkC,EAEnC,MAAM,gCAAgC,CAAC;AAKxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAErD;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAE5C;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAE7D;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,MAAM,CASrF;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACvD,KAAK,EAAE,6BAA6B,GACnC,cAAc,CAShB;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAeR;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,UAAU,CAAC,OAAO,kCAAkC,CAAC,EACjE,MAAM,EAAE,MAAM,GACb,KAAK,CAKP"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Small persistence helpers shared by the lifecycle and projection modules.
3
+ *
4
+ * Keeping these guards and presence constructors together makes the larger
5
+ * persistence flows read in terms of their domain operation instead of their
6
+ * repeated boundary checks.
7
+ */
8
+ import { APPLICABILITY_KINDS, EMPTY_STRING_LENGTH_ZERO, POSITIVE_SAFE_INTEGER_MINIMUM, PRESENCE_KINDS, } from "../../../../domain/index.js";
9
+ import { typedSheetsEntityId, } from "../../mapping/entityMapping.js";
10
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../../errors.js";
11
+ /** Wraps a value in the validated presence contract used by storage writes. */
12
+ export function presentValue(value) {
13
+ return { kind: PRESENCE_KINDS.PRESENT, value };
14
+ }
15
+ /** Represents a value that is intentionally not applicable to an operation. */
16
+ export function absentValue() {
17
+ return { kind: PRESENCE_KINDS.ABSENT };
18
+ }
19
+ /** Wraps a value in the validated applicability contract used by storage writes. */
20
+ export function applicableValue(value) {
21
+ return { kind: APPLICABILITY_KINDS.APPLICABLE, value };
22
+ }
23
+ /** Returns a namespaced ID and rejects an invalid injected ID source. */
24
+ export function identifiedValue(prefix, writer) {
25
+ const value = writer.createId();
26
+ if (value.length === EMPTY_STRING_LENGTH_ZERO) {
27
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_ENTITY_MAPPING, "mapped writer createId must return a non-empty value.");
28
+ }
29
+ return `${prefix}:${value}`;
30
+ }
31
+ /** Reads one mapped field and fails before an incomplete canonical commit. */
32
+ export function requireEncodedField(encodedEntity, field) {
33
+ const value = encodedEntity[field.fieldName];
34
+ if (value === undefined) {
35
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_MAPPED_FIELD_VALUE, `encoded value is unavailable for ${field.fieldName}.`);
36
+ }
37
+ return value;
38
+ }
39
+ /** Validates the entity identity collected by the underlying flush engine. */
40
+ export function requireChangeEntityId(mapping, change) {
41
+ const entityId = typedSheetsEntityId(mapping, change.entity);
42
+ if (change.primaryKey.kind !== PRESENCE_KINDS.PRESENT) {
43
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ENTITY_PRIMARY_KEY_UNAVAILABLE, `${mapping.entityName} has no serialized primary key during flush.`);
44
+ }
45
+ if (change.primaryKey.value !== entityId) {
46
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ENTITY_PRIMARY_KEY_MISMATCH, `${mapping.entityName} primary-key metadata does not match its entity property.`);
47
+ }
48
+ return entityId;
49
+ }
50
+ /** Builds the stable target ID used by a physical projection row effect. */
51
+ export function projectionRowTargetId(physicalSheetId, rowBindingId) {
52
+ return `projection-row:${physicalSheetId}:${rowBindingId}`;
53
+ }
54
+ /** Checks a positive SQLite revision or stream sequence. */
55
+ export function isPositiveSafeInteger(value) {
56
+ return Number.isSafeInteger(value) && value >= POSITIVE_SAFE_INTEGER_MINIMUM;
57
+ }
58
+ /** Checks a revision that may validly start at zero. */
59
+ export function isNonNegativeSafeInteger(value) {
60
+ return Number.isSafeInteger(value) && value >= 0;
61
+ }
62
+ /** Throws the common error used when a projection cannot safely be planned. */
63
+ export function throwProjectionBlocked(mapping, projection, reason) {
64
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.PROJECTION_OUTBOX_BLOCKED, `${mapping.entityName} ${projection.projection} projection is blocked: ${reason}.`);
65
+ }
66
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Timing helpers for mapped persistence diagnostics.
3
+ *
4
+ * Timing callbacks are deliberately best-effort: observability failures must
5
+ * never abort the entity transaction they describe.
6
+ */
7
+ import { type SyncTimingOperationCounts, type SyncTimingOperationKind, type SyncTimingSink } from "../../../sync/telemetry/syncTiming.js";
8
+ import { type TypedSheetsEntityChange } from "../../api/contracts.js";
9
+ import type { MappedChangePlan, ResolvedWriterOptions } from "./contracts.js";
10
+ /** Converts public entity lifecycle kinds into timing operation kinds. */
11
+ export declare function timingOperationKind(value: TypedSheetsEntityChange["kind"]): SyncTimingOperationKind;
12
+ /** Counts one lifecycle operation for aggregate diagnostics. */
13
+ export declare function countsForOperationKind(operationKind: SyncTimingOperationKind): SyncTimingOperationCounts;
14
+ /** Counts all mapped lifecycle plans in one flush. */
15
+ export declare function countsForPlans(plans: readonly MappedChangePlan[]): SyncTimingOperationCounts;
16
+ /** Lists only operation kinds represented by the supplied aggregate counts. */
17
+ export declare function operationKindsForCounts(counts: SyncTimingOperationCounts): readonly SyncTimingOperationKind[];
18
+ /** Emits diagnostics without allowing a faulty sink to affect persistence. */
19
+ export declare function emitTiming(writer: ResolvedWriterOptions, event: Parameters<SyncTimingSink>[0]): void;
20
+ //# sourceMappingURL=timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/timing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AASxB,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GACrC,uBAAuB,CAEzB;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,uBAAuB,GACrC,yBAAyB,CAM3B;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,yBAAyB,CAS5F;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,GAChC,SAAS,uBAAuB,EAAE,CAMpC;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CACxB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GACnC,IAAI,CAMN"}