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,14 @@
1
+ /**
2
+ * Stable identity derivation for mapped entities.
3
+ *
4
+ * These helpers keep entity IDs, row anchors, and shared row-binding IDs
5
+ * deterministic across the system_state and user_input projections.
6
+ */
7
+ import type { TypedSheetsEntityMapping } from "./contracts.js";
8
+ /** Derives the stable row-binding ID shared by an entity's physical projections. */
9
+ export declare function typedSheetsEntityRowBindingId(mapping: TypedSheetsEntityMapping, entityId: string): string;
10
+ /** Derives and validates the projection anchor for one canonical entity. */
11
+ export declare function typedSheetsEntityAnchor(mapping: TypedSheetsEntityMapping, entityId: string): string;
12
+ /** Reads the mapping's string primary key from a pending entity change. */
13
+ export declare function typedSheetsEntityId(mapping: TypedSheetsEntityMapping, entity: object): string;
14
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,oFAAoF;AACpF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,GACf,MAAM,CAMR;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,GACf,MAAM,CAKR;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,GACb,MAAM,CASR"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Stable identity derivation for mapped entities.
3
+ *
4
+ * These helpers keep entity IDs, row anchors, and shared row-binding IDs
5
+ * deterministic across the system_state and user_input projections.
6
+ */
7
+ import { EMPTY_STRING_LENGTH_ZERO, stableHash, } from "../../../domain/index.js";
8
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
9
+ /** Derives the stable row-binding ID shared by an entity's physical projections. */
10
+ export function typedSheetsEntityRowBindingId(mapping, entityId) {
11
+ const anchor = typedSheetsEntityAnchor(mapping, entityId);
12
+ return "binding:" + stableHash({
13
+ logicalSheetId: mapping.logicalSheetId,
14
+ physicalAnchor: anchor,
15
+ });
16
+ }
17
+ /** Derives and validates the projection anchor for one canonical entity. */
18
+ export function typedSheetsEntityAnchor(mapping, entityId) {
19
+ requireText(entityId, "entity ID");
20
+ const anchor = mapping.anchorForEntity(entityId);
21
+ requireText(anchor, "row anchor");
22
+ return anchor;
23
+ }
24
+ /** Reads the mapping's string primary key from a pending entity change. */
25
+ export function typedSheetsEntityId(mapping, entity) {
26
+ const value = entity[mapping.primaryKey];
27
+ if (typeof value !== "string" || value.length === EMPTY_STRING_LENGTH_ZERO) {
28
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ENTITY_PRIMARY_KEY_UNAVAILABLE, `${mapping.entityName}.${mapping.primaryKey} must be a non-empty string before flush.`);
29
+ }
30
+ return value;
31
+ }
32
+ function requireText(value, label) {
33
+ if (value.length === EMPTY_STRING_LENGTH_ZERO) {
34
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_ENTITY_MAPPING, `${label} is required`);
35
+ }
36
+ }
37
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,wBAAwB,EACxB,UAAU,GACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,oFAAoF;AACpF,MAAM,UAAU,6BAA6B,CAC3C,OAAiC,EACjC,QAAgB;IAEhB,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,OAAO,UAAU,GAAG,UAAU,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CACrC,OAAiC,EACjC,QAAgB;IAEhB,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjD,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CACjC,OAAiC,EACjC,MAAc;IAEd,MAAM,KAAK,GAAI,MAA4C,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;QAC3E,MAAM,IAAI,mBAAmB,CAC3B,4BAA4B,CAAC,8BAA8B,EAC3D,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,2CAA2C,CACvF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;QAC9C,MAAM,IAAI,mBAAmB,CAC3B,4BAA4B,CAAC,sBAAsB,EACnD,GAAG,KAAK,cAAc,CACvB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Adapter-neutral conversion from an accepted canonical observation to an
3
+ * application entity mutation.
4
+ *
5
+ * The storage writer remains responsible for validating and committing the
6
+ * Sheet observation first. This helper only translates that already-approved
7
+ * canonical result, so an ORM adapter cannot accidentally promote a conflict
8
+ * or quarantined user edit into an entity-table write.
9
+ */
10
+ import type { CanonicalCommitInput } from "../../../infrastructure/storage/index.js";
11
+ import { type TypedSheetsEntityMapping } from "./entityMapping.js";
12
+ /** Runtime kinds of entity-table mutations derived from accepted observations. */
13
+ export declare const MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS: {
14
+ readonly NONE: "none";
15
+ readonly INSERT: "insert";
16
+ readonly UPDATE: "update";
17
+ readonly DELETE: "delete";
18
+ };
19
+ /** A safe entity-table mutation derived only from a canonical commit. */
20
+ export type MappedObservationEntityMutation = {
21
+ readonly kind: typeof MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.NONE;
22
+ } | {
23
+ readonly kind: typeof MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.INSERT;
24
+ readonly entityId: string;
25
+ readonly data: Readonly<Record<string, unknown>>;
26
+ } | {
27
+ readonly kind: typeof MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.UPDATE;
28
+ readonly entityId: string;
29
+ readonly data: Readonly<Record<string, unknown>>;
30
+ } | {
31
+ readonly kind: typeof MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.DELETE;
32
+ readonly entityId: string;
33
+ };
34
+ /**
35
+ * Translates one accepted canonical commit into a local entity-table mutation.
36
+ *
37
+ * Insert and update values come exclusively from canonical field writes, never
38
+ * from a raw Sheet payload. This preserves the evaluator's per-field conflict
39
+ * decision when an observation has both accepted and conflicting fields.
40
+ */
41
+ export declare function planMappedObservationEntityMutation(mapping: TypedSheetsEntityMapping, commit: CanonicalCommitInput): MappedObservationEntityMutation;
42
+ //# sourceMappingURL=observationMapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observationMapping.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/observationMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAM5B,kFAAkF;AAClF,eAAO,MAAM,wCAAwC;;;;;CAK3C,CAAC;AAEX,yEAAyE;AACzE,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,wCAAwC,CAAC,IAAI,CAAA;CAAE,GACvE;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,wCAAwC,CAAC,MAAM,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,wCAAwC,CAAC,MAAM,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,wCAAwC,CAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzG;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,oBAAoB,GAC3B,+BAA+B,CA2CjC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Adapter-neutral conversion from an accepted canonical observation to an
3
+ * application entity mutation.
4
+ *
5
+ * The storage writer remains responsible for validating and committing the
6
+ * Sheet observation first. This helper only translates that already-approved
7
+ * canonical result, so an ORM adapter cannot accidentally promote a conflict
8
+ * or quarantined user edit into an entity-table write.
9
+ */
10
+ import { ROW_OPERATIONS } from "../../../domain/index.js";
11
+ import { decodeTypedSheetsEntityField, requireTypedSheetsEntityField, } from "./entityMapping.js";
12
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
13
+ /** Runtime kinds of entity-table mutations derived from accepted observations. */
14
+ export const MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS = {
15
+ NONE: "none",
16
+ INSERT: "insert",
17
+ UPDATE: "update",
18
+ DELETE: "delete",
19
+ };
20
+ /**
21
+ * Translates one accepted canonical commit into a local entity-table mutation.
22
+ *
23
+ * Insert and update values come exclusively from canonical field writes, never
24
+ * from a raw Sheet payload. This preserves the evaluator's per-field conflict
25
+ * decision when an observation has both accepted and conflicting fields.
26
+ */
27
+ export function planMappedObservationEntityMutation(mapping, commit) {
28
+ if (commit.kind === ROW_OPERATIONS.DELETE) {
29
+ return {
30
+ kind: MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.DELETE,
31
+ entityId: commit.entityId,
32
+ };
33
+ }
34
+ const data = {};
35
+ if (commit.kind === ROW_OPERATIONS.INSERT) {
36
+ data[mapping.primaryKey] = commit.entityId;
37
+ }
38
+ for (const write of commit.fields) {
39
+ const field = requireTypedSheetsEntityField(mapping, write.fieldName);
40
+ const value = decodeTypedSheetsEntityField(mapping, field, write.value);
41
+ if (field.property === mapping.primaryKey) {
42
+ if (value !== commit.entityId) {
43
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ENTITY_PRIMARY_KEY_MISMATCH, `${mapping.entityName}.${mapping.primaryKey} does not match the canonical entity ID.`);
44
+ }
45
+ data[field.property] = value;
46
+ continue;
47
+ }
48
+ data[field.property] = value;
49
+ }
50
+ if (commit.kind === ROW_OPERATIONS.INSERT) {
51
+ return {
52
+ kind: MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.INSERT,
53
+ entityId: commit.entityId,
54
+ data,
55
+ };
56
+ }
57
+ return Object.keys(data).length === 0
58
+ ? { kind: MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.NONE }
59
+ : {
60
+ kind: MAPPED_OBSERVATION_ENTITY_MUTATION_KINDS.UPDATE,
61
+ entityId: commit.entityId,
62
+ data,
63
+ };
64
+ }
65
+ //# sourceMappingURL=observationMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observationMapping.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/observationMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAE9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,kFAAkF;AAClF,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAC;AAiBX;;;;;;GAMG;AACH,MAAM,UAAU,mCAAmC,CACjD,OAAiC,EACjC,MAA4B;IAE5B,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,wCAAwC,CAAC,MAAM;YACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,4BAA4B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,KAAK,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,mBAAmB,CAC3B,4BAA4B,CAAC,2BAA2B,EACxD,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,0CAA0C,CACtF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,wCAAwC,CAAC,MAAM;YACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI;SACL,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QACnC,CAAC,CAAC,EAAE,IAAI,EAAE,wCAAwC,CAAC,IAAI,EAAE;QACzD,CAAC,CAAC;YACE,IAAI,EAAE,wCAAwC,CAAC,MAAM;YACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI;SACL,CAAC;AACR,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Converts validated entity mappings into sync projection metadata.
3
+ *
4
+ * This module owns ownership manifests, projection headers, and registration
5
+ * payloads; it does not validate entity declarations or encode field values.
6
+ */
7
+ import { type OwnershipManifest } from "../../../domain/index.js";
8
+ import type { RegisterSyncSheetInput } from "../../../infrastructure/storage/index.js";
9
+ import type { TypedSheetsEntityMapping, TypedSheetsEntityProjection, TypedSheetsEntityProjectionMapping, TypedSheetsMappedProjectionDefinition } from "./contracts.js";
10
+ /** Returns the one physical route registered for the requested projection kind. */
11
+ export declare function requireTypedSheetsEntityProjection(mapping: TypedSheetsEntityMapping, projection: TypedSheetsEntityProjection): TypedSheetsEntityProjectionMapping;
12
+ /** Builds the core ownership manifest used by evaluation for this entity mapping. */
13
+ export declare function createTypedSheetsEntityOwnershipManifest(mapping: TypedSheetsEntityMapping): OwnershipManifest;
14
+ /** Serializes the logical ownership manifest in deterministic field-name order. */
15
+ export declare function serializeTypedSheetsEntityOwnershipManifest(mapping: TypedSheetsEntityMapping): string;
16
+ /** Returns the headers that setup must materialize for one physical projection. */
17
+ export declare function typedSheetsEntityProjectionHeaders(mapping: TypedSheetsEntityMapping, projection: TypedSheetsEntityProjection): readonly string[];
18
+ /** Creates one registry declaration for a validated mapping projection. */
19
+ export declare function createTypedSheetsEntityProjectionRegistration(mapping: TypedSheetsEntityMapping, projection: TypedSheetsEntityProjectionMapping): RegisterSyncSheetInput;
20
+ /** Returns every setup definition necessary to register and provision a mapping collection. */
21
+ export declare function createTypedSheetsMappedProjectionDefinitions(mappings: readonly TypedSheetsEntityMapping[]): readonly TypedSheetsMappedProjectionDefinition[];
22
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/projection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAwB,MAAM,0CAA0C,CAAC;AAK7G,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,kCAAkC,EAClC,qCAAqC,EACtC,MAAM,gBAAgB,CAAC;AAExB,mFAAmF;AACnF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,2BAA2B,GACtC,kCAAkC,CASpC;AAED,qFAAqF;AACrF,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CAgBnB;AAED,mFAAmF;AACnF,wBAAgB,2CAA2C,CACzD,OAAO,EAAE,wBAAwB,GAChC,MAAM,CAIR;AAED,mFAAmF;AACnF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,2BAA2B,GACtC,SAAS,MAAM,EAAE,CASnB;AAED,2EAA2E;AAC3E,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,GAC7C,sBAAsB,CAYxB;AAED,+FAA+F;AAC/F,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,SAAS,wBAAwB,EAAE,GAC5C,SAAS,qCAAqC,EAAE,CAOlD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Converts validated entity mappings into sync projection metadata.
3
+ *
4
+ * This module owns ownership manifests, projection headers, and registration
5
+ * payloads; it does not validate entity declarations or encode field values.
6
+ */
7
+ import { FIELD_OWNERSHIPS, } from "../../../domain/index.js";
8
+ import { SYNC_GATEWAY_PROJECTIONS } from "../../sync/gateway/constants.js";
9
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
10
+ /** Returns the one physical route registered for the requested projection kind. */
11
+ export function requireTypedSheetsEntityProjection(mapping, projection) {
12
+ const result = mapping.projections.find((candidate) => candidate.projection === projection);
13
+ if (result === undefined) {
14
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_ENTITY_MAPPING, `${mapping.entityName} does not declare a ${projection} projection.`);
15
+ }
16
+ return result;
17
+ }
18
+ /** Builds the core ownership manifest used by evaluation for this entity mapping. */
19
+ export function createTypedSheetsEntityOwnershipManifest(mapping) {
20
+ return new Map(mapping.fields.map((field) => [
21
+ field.fieldName,
22
+ {
23
+ fieldName: field.fieldName,
24
+ ownership: field.ownership,
25
+ projection: field.ownership === FIELD_OWNERSHIPS.USER
26
+ ? SYNC_GATEWAY_PROJECTIONS.USER_INPUT
27
+ : SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE,
28
+ type: field.cellKind,
29
+ required: field.required,
30
+ unique: field.unique,
31
+ },
32
+ ]));
33
+ }
34
+ /** Serializes the logical ownership manifest in deterministic field-name order. */
35
+ export function serializeTypedSheetsEntityOwnershipManifest(mapping) {
36
+ const fields = [...createTypedSheetsEntityOwnershipManifest(mapping).values()]
37
+ .sort((left, right) => left.fieldName.localeCompare(right.fieldName));
38
+ return JSON.stringify({ fields });
39
+ }
40
+ /** Returns the headers that setup must materialize for one physical projection. */
41
+ export function typedSheetsEntityProjectionHeaders(mapping, projection) {
42
+ const fieldNames = projection === SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE
43
+ ? mapping.fields.map((field) => field.fieldName)
44
+ : mapping.fields
45
+ .filter((field) => field.ownership === FIELD_OWNERSHIPS.USER)
46
+ .map((field) => field.fieldName);
47
+ return projection === SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE
48
+ ? [...fieldNames, mapping.tombstoneFieldName]
49
+ : fieldNames;
50
+ }
51
+ /** Creates one registry declaration for a validated mapping projection. */
52
+ export function createTypedSheetsEntityProjectionRegistration(mapping, projection) {
53
+ return {
54
+ logicalSheetId: mapping.logicalSheetId,
55
+ physicalSheetId: projection.physicalSheetId,
56
+ spreadsheetId: projection.spreadsheetId,
57
+ tabName: projection.tabName,
58
+ registeredRange: projection.registeredRange,
59
+ projection: projection.projection,
60
+ schemaVersion: mapping.schemaVersion,
61
+ ownershipManifestJson: serializeTypedSheetsEntityOwnershipManifest(mapping),
62
+ businessKeyField: mapping.businessKey.fieldName,
63
+ };
64
+ }
65
+ /** Returns every setup definition necessary to register and provision a mapping collection. */
66
+ export function createTypedSheetsMappedProjectionDefinitions(mappings) {
67
+ return mappings.flatMap((mapping) => mapping.projections.map((projection) => ({
68
+ mapping,
69
+ projection,
70
+ registration: createTypedSheetsEntityProjectionRegistration(mapping, projection),
71
+ headers: typedSheetsEntityProjectionHeaders(mapping, projection.projection),
72
+ })));
73
+ }
74
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Lookup registry for validated entity mappings.
3
+ *
4
+ * Registry construction is kept separate from mapping validation so route
5
+ * uniqueness and runtime lookup behavior can be read and tested independently.
6
+ */
7
+ import type { TypedSheetsEntityMapping, TypedSheetsEntityMappingRegistry } from "./contracts.js";
8
+ /**
9
+ * Creates lookup indexes for a group of entity mappings.
10
+ *
11
+ * Logical and physical routes are unique so one incoming Sheet observation can
12
+ * never be applied to two different application entity types.
13
+ */
14
+ export declare function createTypedSheetsEntityMappingRegistry(mappings: readonly TypedSheetsEntityMapping[]): TypedSheetsEntityMappingRegistry;
15
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,SAAS,wBAAwB,EAAE,GAC5C,gCAAgC,CAwBlC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Lookup registry for validated entity mappings.
3
+ *
4
+ * Registry construction is kept separate from mapping validation so route
5
+ * uniqueness and runtime lookup behavior can be read and tested independently.
6
+ */
7
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
8
+ /**
9
+ * Creates lookup indexes for a group of entity mappings.
10
+ *
11
+ * Logical and physical routes are unique so one incoming Sheet observation can
12
+ * never be applied to two different application entity types.
13
+ */
14
+ export function createTypedSheetsEntityMappingRegistry(mappings) {
15
+ const byEntityName = new Map();
16
+ const byLogicalSheetId = new Map();
17
+ const byPhysicalSheetId = new Map();
18
+ for (const mapping of mappings) {
19
+ insertUniqueMapping(byEntityName, mapping.entityName, mapping, "entity name");
20
+ insertUniqueMapping(byLogicalSheetId, mapping.logicalSheetId, mapping, "logical sheet ID");
21
+ for (const projection of mapping.projections) {
22
+ insertUniqueMapping(byPhysicalSheetId, projection.physicalSheetId, mapping, "physical sheet ID");
23
+ }
24
+ }
25
+ return {
26
+ mappings: [...mappings],
27
+ findByEntityName: (entityName) => byEntityName.get(entityName),
28
+ findByLogicalSheetId: (logicalSheetId) => byLogicalSheetId.get(logicalSheetId),
29
+ findByPhysicalSheetId: (physicalSheetId) => byPhysicalSheetId.get(physicalSheetId),
30
+ };
31
+ }
32
+ function insertUniqueMapping(index, key, mapping, label) {
33
+ if (index.has(key)) {
34
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.DUPLICATE_ENTITY_MAPPING, `typed-sheets mappings cannot repeat ${label}: ${key}.`);
35
+ }
36
+ index.set(key, mapping);
37
+ }
38
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAMtB;;;;;GAKG;AACH,MAAM,UAAU,sCAAsC,CACpD,QAA6C;IAE7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoC,CAAC;IACjE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoC,CAAC;IACrE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoC,CAAC;IAEtE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9E,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC3F,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,mBAAmB,CACjB,iBAAiB,EACjB,UAAU,CAAC,eAAe,EAC1B,OAAO,EACP,mBAAmB,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;QACvB,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;QAC9D,oBAAoB,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC;QAC9E,qBAAqB,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC;KACnF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA4C,EAC5C,GAAW,EACX,OAAiC,EACjC,KAAa;IAEb,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,mBAAmB,CAC3B,4BAA4B,CAAC,wBAAwB,EACrD,uCAAuC,KAAK,KAAK,GAAG,GAAG,CACxD,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Converts mapped entity values to and from normalized Sheet cells.
3
+ *
4
+ * Custom codecs are accepted at this boundary, but every result is still
5
+ * checked against the declared normalized-cell contract before persistence.
6
+ */
7
+ import { type NormalizedCell } from "../../../domain/index.js";
8
+ import type { TypedSheetsEntityFieldMapping, TypedSheetsEntityMapping } from "./contracts.js";
9
+ /** Encodes every mapped entity property into its canonical normalized-cell value. */
10
+ export declare function encodeTypedSheetsEntity(mapping: TypedSheetsEntityMapping, entity: object): Readonly<Record<string, NormalizedCell>>;
11
+ /** Encodes one mapped property while enforcing its declared normalized-cell contract. */
12
+ export declare function encodeTypedSheetsEntityField(mapping: TypedSheetsEntityMapping, field: TypedSheetsEntityFieldMapping, value: unknown): NormalizedCell;
13
+ /** Decodes one accepted canonical cell into the mapped application property value. */
14
+ export declare function decodeTypedSheetsEntityField(mapping: TypedSheetsEntityMapping, field: TypedSheetsEntityFieldMapping, value: NormalizedCell): unknown;
15
+ /** Finds the field declaration for one canonical field name or fails closed. */
16
+ export declare function requireTypedSheetsEntityField(mapping: TypedSheetsEntityMapping, fieldName: string): TypedSheetsEntityFieldMapping;
17
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/values.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AASlC,OAAO,KAAK,EACV,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AAExB,qFAAqF;AACrF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,MAAM,GACb,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAU1C;AAED,yFAAyF;AACzF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,6BAA6B,EACpC,KAAK,EAAE,OAAO,GACb,cAAc,CAKhB;AAED,sFAAsF;AACtF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,6BAA6B,EACpC,KAAK,EAAE,cAAc,GACpB,OAAO,CAYT;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAE,MAAM,GAChB,6BAA6B,CAS/B"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Converts mapped entity values to and from normalized Sheet cells.
3
+ *
4
+ * Custom codecs are accepted at this boundary, but every result is still
5
+ * checked against the declared normalized-cell contract before persistence.
6
+ */
7
+ import { EMPTY_STRING_LENGTH_ZERO, } from "../../../domain/index.js";
8
+ import { NORMALIZED_CELL_KINDS, } from "../../../shared/encoding/constants.js";
9
+ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
10
+ /** Encodes every mapped entity property into its canonical normalized-cell value. */
11
+ export function encodeTypedSheetsEntity(mapping, entity) {
12
+ const encoded = {};
13
+ for (const field of mapping.fields) {
14
+ encoded[field.fieldName] = encodeTypedSheetsEntityField(mapping, field, readEntityProperty(entity, field.property));
15
+ }
16
+ return encoded;
17
+ }
18
+ /** Encodes one mapped property while enforcing its declared normalized-cell contract. */
19
+ export function encodeTypedSheetsEntityField(mapping, field, value) {
20
+ const cell = field.encode === undefined
21
+ ? defaultEncode(field, value)
22
+ : field.encode(value);
23
+ return requireValidMappedCell(mapping, field, cell);
24
+ }
25
+ /** Decodes one accepted canonical cell into the mapped application property value. */
26
+ export function decodeTypedSheetsEntityField(mapping, field, value) {
27
+ const cell = requireValidMappedCell(mapping, field, value);
28
+ if (field.decode !== undefined)
29
+ return field.decode(cell);
30
+ if (cell === null)
31
+ return null;
32
+ switch (cell.kind) {
33
+ case NORMALIZED_CELL_KINDS.STRING:
34
+ case NORMALIZED_CELL_KINDS.NUMBER:
35
+ case NORMALIZED_CELL_KINDS.BOOLEAN:
36
+ return cell.value;
37
+ case NORMALIZED_CELL_KINDS.DATE:
38
+ return new Date(cell.value);
39
+ }
40
+ }
41
+ /** Finds the field declaration for one canonical field name or fails closed. */
42
+ export function requireTypedSheetsEntityField(mapping, fieldName) {
43
+ const field = mapping.fields.find((candidate) => candidate.fieldName === fieldName);
44
+ if (field === undefined) {
45
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_ENTITY_MAPPING, `${mapping.entityName} does not map canonical field ${fieldName}.`);
46
+ }
47
+ return field;
48
+ }
49
+ function readEntityProperty(entity, property) {
50
+ return entity[property];
51
+ }
52
+ function defaultEncode(field, value) {
53
+ if (value === null)
54
+ return null;
55
+ switch (field.cellKind) {
56
+ case NORMALIZED_CELL_KINDS.STRING:
57
+ return typeof value === "string"
58
+ ? { kind: NORMALIZED_CELL_KINDS.STRING, value }
59
+ : invalidMappedFieldValue(field, "must be a string or null");
60
+ case NORMALIZED_CELL_KINDS.NUMBER:
61
+ return typeof value === "number" && Number.isFinite(value)
62
+ ? { kind: NORMALIZED_CELL_KINDS.NUMBER, value }
63
+ : invalidMappedFieldValue(field, "must be a finite number or null");
64
+ case NORMALIZED_CELL_KINDS.BOOLEAN:
65
+ return typeof value === "boolean"
66
+ ? { kind: NORMALIZED_CELL_KINDS.BOOLEAN, value }
67
+ : invalidMappedFieldValue(field, "must be a boolean or null");
68
+ case NORMALIZED_CELL_KINDS.DATE:
69
+ return defaultDateCell(field, value);
70
+ }
71
+ }
72
+ function defaultDateCell(field, value) {
73
+ if (value instanceof Date) {
74
+ if (!Number.isFinite(value.getTime())) {
75
+ return invalidMappedFieldValue(field, "must be a valid Date or canonical ISO date string");
76
+ }
77
+ return { kind: NORMALIZED_CELL_KINDS.DATE, value: value.toISOString() };
78
+ }
79
+ if (typeof value === "string" && isCanonicalIsoDate(value)) {
80
+ return { kind: NORMALIZED_CELL_KINDS.DATE, value };
81
+ }
82
+ return invalidMappedFieldValue(field, "must be a valid Date or canonical ISO date string");
83
+ }
84
+ function requireValidMappedCell(mapping, field, cell) {
85
+ if (cell === null) {
86
+ if (field.required) {
87
+ throwInvalidFieldValue(mapping, field, "cannot be blank");
88
+ }
89
+ return cell;
90
+ }
91
+ if (!isNonNullNormalizedCell(cell)) {
92
+ throwInvalidFieldValue(mapping, field, "must encode as a normalized cell or null");
93
+ }
94
+ if (cell.kind !== field.cellKind) {
95
+ throwInvalidFieldValue(mapping, field, `must encode as ${field.cellKind}`);
96
+ }
97
+ if (field.required &&
98
+ cell.kind === NORMALIZED_CELL_KINDS.STRING &&
99
+ cell.value.length === EMPTY_STRING_LENGTH_ZERO) {
100
+ throwInvalidFieldValue(mapping, field, "cannot be an empty string");
101
+ }
102
+ if (cell.kind === NORMALIZED_CELL_KINDS.NUMBER && !Number.isFinite(cell.value)) {
103
+ throwInvalidFieldValue(mapping, field, "must be a finite number");
104
+ }
105
+ if (cell.kind === NORMALIZED_CELL_KINDS.DATE && !isCanonicalIsoDate(cell.value)) {
106
+ throwInvalidFieldValue(mapping, field, "must be a canonical ISO date string");
107
+ }
108
+ return cell;
109
+ }
110
+ function isCanonicalIsoDate(value) {
111
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(value))
112
+ return false;
113
+ const timestamp = Date.parse(value);
114
+ return Number.isFinite(timestamp) && new Date(timestamp).toISOString() === value;
115
+ }
116
+ function isNonNullNormalizedCell(value) {
117
+ if (!isRecord(value))
118
+ return false;
119
+ switch (value.kind) {
120
+ case NORMALIZED_CELL_KINDS.STRING:
121
+ case NORMALIZED_CELL_KINDS.DATE:
122
+ return typeof value.value === "string";
123
+ case NORMALIZED_CELL_KINDS.NUMBER:
124
+ return typeof value.value === "number";
125
+ case NORMALIZED_CELL_KINDS.BOOLEAN:
126
+ return typeof value.value === "boolean";
127
+ default:
128
+ return false;
129
+ }
130
+ }
131
+ /** Promotes unknown codec output to a non-array record before tag inspection. */
132
+ function isRecord(value) {
133
+ return typeof value === "object" && value !== null && !Array.isArray(value);
134
+ }
135
+ function invalidMappedFieldValue(field, message) {
136
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_MAPPED_FIELD_VALUE, `${field.property} ${message}.`);
137
+ }
138
+ function throwInvalidFieldValue(mapping, field, message) {
139
+ throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_MAPPED_FIELD_VALUE, `${mapping.entityName}.${field.property} ${message}.`);
140
+ }
141
+ //# sourceMappingURL=values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Public mapped persistence orchestration.
3
+ *
4
+ * This module collects entity changes, fences the flush with a writer lease,
5
+ * and delegates each lifecycle operation to the focused persistence helpers.
6
+ */
7
+ import type { RegisteredSyncProjectionDefinition } from "../../../sync/gateway/SyncGatewayBootstrap.js";
8
+ import type { SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
9
+ import { type TypedSheetsFlushCoordinator } from "../../api/contracts.js";
10
+ import { type TypedSheetsEntityMapping, type TypedSheetsEntityMappingRegistry } from "../../mapping/entityMapping.js";
11
+ import { type CreateMappedTypedSheetsFlushCoordinatorOptions, type RegisteredTypedSheetsMappedProjection, type TypedSheetsEntityWriterOptions } from "../support/contracts.js";
12
+ /**
13
+ * Creates the built-in planner that makes `em.persist()` / `em.flush()` durable
14
+ * in the entity table, canonical state, business-key index, and Sheets outbox
15
+ * together.
16
+ */
17
+ export declare function createMappedTypedSheetsFlushCoordinator(options: CreateMappedTypedSheetsFlushCoordinatorOptions): TypedSheetsFlushCoordinator;
18
+ /**
19
+ * Registers every mapping route under one writer fence.
20
+ *
21
+ * The return value can be passed directly to the existing gateway provisioning
22
+ * helper, so users never need to duplicate route names or header lists in Apps
23
+ * Script configuration.
24
+ */
25
+ export declare function registerTypedSheetsEntityMappings(storage: SqlStorageAdapter, mappingsInput: TypedSheetsEntityMappingRegistry | readonly TypedSheetsEntityMapping[], writerInput: TypedSheetsEntityWriterOptions): Promise<readonly RegisteredTypedSheetsMappedProjection[]>;
26
+ /** Converts registered mapping routes into gateway provisioning definitions. */
27
+ export declare function registeredTypedSheetsProjectionDefinitions(registrations: readonly RegisteredTypedSheetsMappedProjection[]): readonly RegisteredSyncProjectionDefinition[];
28
+ //# sourceMappingURL=flushCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushCoordinator.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/flush/flushCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAIL,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACtC,MAAM,gCAAgC,CAAC;AAKxC,OAAO,EAGL,KAAK,8CAA8C,EAEnD,KAAK,qCAAqC,EAE1C,KAAK,8BAA8B,EACpC,MAAM,yBAAyB,CAAC;AAQjC;;;;GAIG;AACH,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,8CAA8C,GACtD,2BAA2B,CAmD7B;AAED;;;;;;GAMG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,gCAAgC,GAAG,SAAS,wBAAwB,EAAE,EACrF,WAAW,EAAE,8BAA8B,GAC1C,OAAO,CAAC,SAAS,qCAAqC,EAAE,CAAC,CA2C3D;AAED,gFAAgF;AAChF,wBAAgB,0CAA0C,CACxD,aAAa,EAAE,SAAS,qCAAqC,EAAE,GAC9D,SAAS,kCAAkC,EAAE,CAE/C"}