hikoutei 0.3.4 → 0.3.6

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 (355) hide show
  1. package/README.ja.md +44 -21
  2. package/README.ko.md +43 -23
  3. package/README.md +49 -33
  4. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts +3 -3
  5. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts.map +1 -1
  6. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js +1 -1
  7. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.d.ts +1 -1
  8. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.js +1 -1
  9. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.js +3 -3
  10. package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.js.map +1 -1
  11. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts +3 -3
  12. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts.map +1 -1
  13. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js +15 -15
  14. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map +1 -1
  15. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts +1 -1
  16. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts.map +1 -1
  17. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js +3 -3
  18. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js.map +1 -1
  19. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.d.ts +5 -5
  20. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.d.ts.map +1 -1
  21. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js +5 -5
  22. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js.map +1 -1
  23. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts +1 -1
  24. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js +5 -5
  25. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js.map +1 -1
  26. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.js +3 -3
  27. package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.js.map +1 -1
  28. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts +156 -0
  29. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -0
  30. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +1112 -0
  31. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -0
  32. package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts +87 -0
  33. package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts.map +1 -0
  34. package/dist/adapter/sheets/providers/google-sheets-api/constants.js +97 -0
  35. package/dist/adapter/sheets/providers/google-sheets-api/constants.js.map +1 -0
  36. package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts +53 -0
  37. package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts.map +1 -0
  38. package/dist/adapter/sheets/providers/google-sheets-api/errors.js +61 -0
  39. package/dist/adapter/sheets/providers/google-sheets-api/errors.js.map +1 -0
  40. package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts +16 -0
  41. package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts.map +1 -0
  42. package/dist/adapter/sheets/providers/google-sheets-api/index.js +13 -0
  43. package/dist/adapter/sheets/providers/google-sheets-api/index.js.map +1 -0
  44. package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.d.ts +83 -0
  45. package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.d.ts.map +1 -0
  46. package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.js +413 -0
  47. package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.js.map +1 -0
  48. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts +86 -0
  49. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts.map +1 -0
  50. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js +439 -0
  51. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js.map +1 -0
  52. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts +115 -0
  53. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts.map +1 -0
  54. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js +522 -0
  55. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js.map +1 -0
  56. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.d.ts +17 -0
  57. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.d.ts.map +1 -0
  58. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js +99 -0
  59. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js.map +1 -0
  60. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts +242 -0
  61. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts.map +1 -0
  62. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js +707 -0
  63. package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js.map +1 -0
  64. package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.d.ts +16 -0
  65. package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.d.ts.map +1 -0
  66. package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.js +29 -0
  67. package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.js.map +1 -0
  68. package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts +26 -0
  69. package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts.map +1 -0
  70. package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.js +57 -0
  71. package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.js.map +1 -0
  72. package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.d.ts +102 -0
  73. package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.d.ts.map +1 -0
  74. package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.js +375 -0
  75. package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.js.map +1 -0
  76. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts +168 -0
  77. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts.map +1 -0
  78. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js +247 -0
  79. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -0
  80. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts +47 -0
  81. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts.map +1 -0
  82. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js +60 -0
  83. package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js.map +1 -0
  84. package/dist/api/Hikoutei.d.ts +1 -1
  85. package/dist/api/Hikoutei.js +1 -1
  86. package/dist/api/index.d.ts +2 -2
  87. package/dist/api/index.js +2 -2
  88. package/dist/application/orm/mapping/contracts.d.ts +2 -2
  89. package/dist/application/orm/mapping/contracts.d.ts.map +1 -1
  90. package/dist/application/orm/mapping/definition.js +5 -5
  91. package/dist/application/orm/mapping/definition.js.map +1 -1
  92. package/dist/application/orm/mapping/projection.js +7 -7
  93. package/dist/application/orm/mapping/projection.js.map +1 -1
  94. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts +3 -3
  95. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
  96. package/dist/application/orm/persistence/flush/flushCoordinator.js +2 -2
  97. package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
  98. package/dist/application/orm/persistence/projection/projectionEffects.d.ts +1 -1
  99. package/dist/application/orm/persistence/projection/projectionEffects.js +6 -6
  100. package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
  101. package/dist/application/orm/persistence/support/contracts.d.ts +2 -2
  102. package/dist/application/orm/persistence/support/contracts.d.ts.map +1 -1
  103. package/dist/application/sync/inbound/autoSystemConflictResolution.js +7 -7
  104. package/dist/application/sync/inbound/autoSystemConflictResolution.js.map +1 -1
  105. package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts +3 -3
  106. package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts.map +1 -1
  107. package/dist/application/sync/inbound/polling/SimpleSheetPolling.js +1 -1
  108. package/dist/application/sync/inbound/polling/SimpleSheetPolling.js.map +1 -1
  109. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts +17 -1
  110. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts.map +1 -1
  111. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js +27 -1
  112. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js.map +1 -1
  113. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +2 -2
  114. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -1
  115. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +26 -6
  116. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -1
  117. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +24 -9
  118. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -1
  119. package/dist/application/sync/outbound/effects/SyncEffectWorker.js +128 -81
  120. package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -1
  121. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +31 -14
  122. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -1
  123. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +32 -15
  124. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -1
  125. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +13 -9
  126. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -1
  127. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +53 -37
  128. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -1
  129. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +1 -1
  130. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +1 -1
  131. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +29 -19
  132. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -1
  133. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +59 -41
  134. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -1
  135. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts +4 -4
  136. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts.map +1 -1
  137. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js +3 -3
  138. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js.map +1 -1
  139. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +3 -3
  140. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -1
  141. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +42 -46
  142. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -1
  143. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts +8 -8
  144. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts.map +1 -1
  145. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +15 -15
  146. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -1
  147. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts +3 -3
  148. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
  149. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +10 -10
  150. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
  151. package/dist/application/sync/service/SyncPollingSupervisor.d.ts +1 -1
  152. package/dist/application/sync/service/SyncPollingSupervisor.js +1 -1
  153. package/dist/application/sync/service/SyncServiceBootstrap.d.ts +29 -19
  154. package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
  155. package/dist/application/sync/service/SyncServiceBootstrap.js +103 -78
  156. package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
  157. package/dist/application/sync/service/errors.d.ts +1 -1
  158. package/dist/application/sync/service/errors.js +1 -1
  159. package/dist/application/sync/service/errors.js.map +1 -1
  160. package/dist/application/sync/sheets/conflictProjection.d.ts.map +1 -0
  161. package/dist/application/sync/sheets/conflictProjection.js.map +1 -0
  162. package/dist/application/sync/{gateway → sheets}/conflictProjectionRegistration.d.ts +1 -1
  163. package/dist/application/sync/sheets/conflictProjectionRegistration.d.ts.map +1 -0
  164. package/dist/application/sync/{gateway → sheets}/conflictProjectionRegistration.js +3 -3
  165. package/dist/application/sync/sheets/conflictProjectionRegistration.js.map +1 -0
  166. package/dist/application/sync/sheets/constants.d.ts +66 -0
  167. package/dist/application/sync/sheets/constants.d.ts.map +1 -0
  168. package/dist/application/sync/{gateway → sheets}/constants.js +15 -15
  169. package/dist/application/sync/sheets/constants.js.map +1 -0
  170. package/dist/application/sync/sheets/errors.d.ts +15 -0
  171. package/dist/application/sync/sheets/errors.d.ts.map +1 -0
  172. package/dist/application/sync/sheets/errors.js +16 -0
  173. package/dist/application/sync/sheets/errors.js.map +1 -0
  174. package/dist/application/sync/{gateway/coordinator/CoordinatedSyncGateway.d.ts → sheets/mutationCoordinator/CoordinatedSheetsProvider.d.ts} +29 -28
  175. package/dist/application/sync/sheets/mutationCoordinator/CoordinatedSheetsProvider.d.ts.map +1 -0
  176. package/dist/application/sync/{gateway/coordinator/CoordinatedSyncGateway.js → sheets/mutationCoordinator/CoordinatedSheetsProvider.js} +27 -26
  177. package/dist/application/sync/sheets/mutationCoordinator/CoordinatedSheetsProvider.js.map +1 -0
  178. package/dist/application/sync/{gateway/coordinator → sheets/mutationCoordinator}/asyncMutex.d.ts +2 -3
  179. package/dist/application/sync/sheets/mutationCoordinator/asyncMutex.d.ts.map +1 -0
  180. package/dist/application/sync/sheets/mutationCoordinator/asyncMutex.js.map +1 -0
  181. package/dist/application/sync/{gateway/coordinator/coordinatorTelemetry.d.ts → sheets/mutationCoordinator/laneTelemetry.d.ts} +4 -4
  182. package/dist/application/sync/sheets/mutationCoordinator/laneTelemetry.d.ts.map +1 -0
  183. package/dist/application/sync/{gateway/coordinator/coordinatorTelemetry.js → sheets/mutationCoordinator/laneTelemetry.js} +5 -5
  184. package/dist/application/sync/sheets/mutationCoordinator/laneTelemetry.js.map +1 -0
  185. package/dist/application/sync/{gateway/SyncGatewayBootstrap.d.ts → sheets/sheetsProvisioning.d.ts} +14 -14
  186. package/dist/application/sync/sheets/sheetsProvisioning.d.ts.map +1 -0
  187. package/dist/application/sync/sheets/sheetsProvisioning.js +95 -0
  188. package/dist/application/sync/sheets/sheetsProvisioning.js.map +1 -0
  189. package/dist/application/sync/{gateway/syncGateway.d.ts → sheets/syncSheets.d.ts} +61 -117
  190. package/dist/application/sync/sheets/syncSheets.d.ts.map +1 -0
  191. package/dist/application/sync/sheets/syncSheets.js +144 -0
  192. package/dist/application/sync/sheets/syncSheets.js.map +1 -0
  193. package/dist/application/sync/{gateway/transportClassification.d.ts → sheets/transportOutcome.d.ts} +23 -22
  194. package/dist/application/sync/sheets/transportOutcome.d.ts.map +1 -0
  195. package/dist/application/sync/sheets/transportOutcome.js +97 -0
  196. package/dist/application/sync/sheets/transportOutcome.js.map +1 -0
  197. package/dist/application/sync/sheets/validation.d.ts +22 -0
  198. package/dist/application/sync/sheets/validation.d.ts.map +1 -0
  199. package/dist/application/sync/sheets/validation.js +79 -0
  200. package/dist/application/sync/sheets/validation.js.map +1 -0
  201. package/dist/application/sync/telemetry/syncTiming.d.ts +7 -7
  202. package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -1
  203. package/dist/application/sync/telemetry/syncTiming.js +2 -2
  204. package/dist/application/sync/telemetry/syncTiming.js.map +1 -1
  205. package/dist/domain/evaluate/contracts.d.ts +1 -1
  206. package/dist/domain/evaluate/contracts.js +1 -1
  207. package/dist/domain/model/constants.d.ts +1 -1
  208. package/dist/domain/model/constants.d.ts.map +1 -1
  209. package/dist/domain/model/types.d.ts +1 -1
  210. package/dist/domain/model/types.d.ts.map +1 -1
  211. package/dist/index.d.ts +3 -2
  212. package/dist/index.d.ts.map +1 -1
  213. package/dist/index.js +3 -2
  214. package/dist/index.js.map +1 -1
  215. package/dist/infrastructure/storage/index.d.ts +1 -1
  216. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  217. package/dist/infrastructure/storage/index.js +1 -1
  218. package/dist/infrastructure/storage/index.js.map +1 -1
  219. package/dist/infrastructure/storage/state/observation/observationAudit.d.ts +1 -1
  220. package/dist/infrastructure/storage/state/observation/observationAudit.js +1 -1
  221. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +3 -3
  222. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -1
  223. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +13 -1
  224. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -1
  225. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +23 -2
  226. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -1
  227. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +9 -3
  228. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -1
  229. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +7 -1
  230. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -1
  231. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +11 -1
  232. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -1
  233. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +44 -3
  234. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -1
  235. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +4 -4
  236. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts.map +1 -1
  237. package/dist/infrastructure/storage/sync/shared/syncRegistry.js +4 -4
  238. package/dist/infrastructure/storage/sync/shared/syncRegistry.js.map +1 -1
  239. package/dist/shared/encoding/types.d.ts +1 -1
  240. package/docs/architecture.md +52 -23
  241. package/docs/ci.md +31 -23
  242. package/docs/code-guidelines.md +10 -18
  243. package/docs/development.md +37 -11
  244. package/docs/gateway-removal-inventory.md +147 -0
  245. package/docs/quick-start.md +36 -26
  246. package/docs/sync-bulk-write-benchmark.md +561 -0
  247. package/docs/sync-observability.md +38 -45
  248. package/docs/write-and-synchronization-flow.md +56 -39
  249. package/package.json +5 -4
  250. package/apps-script/gateway/Code.gs +0 -447
  251. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +0 -43
  252. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +0 -1
  253. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +0 -52
  254. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +0 -1
  255. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +0 -24
  256. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +0 -1
  257. package/dist/adapter/sheets/providers/apps-script-gateway/index.js +0 -13
  258. package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +0 -1
  259. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +0 -44
  260. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +0 -1
  261. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +0 -181
  262. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +0 -1
  263. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts +0 -3
  264. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +0 -1
  265. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +0 -810
  266. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +0 -1
  267. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts +0 -31
  268. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts.map +0 -1
  269. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +0 -560
  270. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +0 -1
  271. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts +0 -12
  272. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts.map +0 -1
  273. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js +0 -166
  274. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js.map +0 -1
  275. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.d.ts +0 -8
  276. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.d.ts.map +0 -1
  277. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.js +0 -122
  278. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.js.map +0 -1
  279. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts +0 -31
  280. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts.map +0 -1
  281. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js +0 -567
  282. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js.map +0 -1
  283. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +0 -19
  284. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +0 -1
  285. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +0 -37
  286. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +0 -1
  287. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts +0 -51
  288. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts.map +0 -1
  289. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js +0 -60
  290. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js.map +0 -1
  291. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts +0 -44
  292. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts.map +0 -1
  293. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js +0 -40
  294. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js.map +0 -1
  295. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts +0 -12
  296. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts.map +0 -1
  297. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js +0 -41
  298. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js.map +0 -1
  299. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts +0 -5
  300. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts.map +0 -1
  301. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js +0 -53
  302. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js.map +0 -1
  303. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts +0 -4
  304. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts.map +0 -1
  305. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js +0 -2
  306. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js.map +0 -1
  307. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts +0 -11
  308. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts.map +0 -1
  309. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js +0 -36
  310. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js.map +0 -1
  311. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts +0 -68
  312. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +0 -1
  313. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +0 -273
  314. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +0 -1
  315. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +0 -73
  316. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +0 -1
  317. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +0 -363
  318. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +0 -1
  319. package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts +0 -3
  320. package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts.map +0 -1
  321. package/dist/adapter/sheets/providers/apps-script-gateway/validation.js +0 -10
  322. package/dist/adapter/sheets/providers/apps-script-gateway/validation.js.map +0 -1
  323. package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +0 -1
  324. package/dist/application/sync/gateway/SyncGatewayBootstrap.js +0 -95
  325. package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +0 -1
  326. package/dist/application/sync/gateway/conflictProjection.d.ts.map +0 -1
  327. package/dist/application/sync/gateway/conflictProjection.js.map +0 -1
  328. package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts.map +0 -1
  329. package/dist/application/sync/gateway/conflictProjectionRegistration.js.map +0 -1
  330. package/dist/application/sync/gateway/constants.d.ts +0 -66
  331. package/dist/application/sync/gateway/constants.d.ts.map +0 -1
  332. package/dist/application/sync/gateway/constants.js.map +0 -1
  333. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts.map +0 -1
  334. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js.map +0 -1
  335. package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts.map +0 -1
  336. package/dist/application/sync/gateway/coordinator/asyncMutex.js.map +0 -1
  337. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts.map +0 -1
  338. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js.map +0 -1
  339. package/dist/application/sync/gateway/errors.d.ts +0 -15
  340. package/dist/application/sync/gateway/errors.d.ts.map +0 -1
  341. package/dist/application/sync/gateway/errors.js +0 -16
  342. package/dist/application/sync/gateway/errors.js.map +0 -1
  343. package/dist/application/sync/gateway/syncGateway.d.ts.map +0 -1
  344. package/dist/application/sync/gateway/syncGateway.js +0 -191
  345. package/dist/application/sync/gateway/syncGateway.js.map +0 -1
  346. package/dist/application/sync/gateway/transportClassification.d.ts.map +0 -1
  347. package/dist/application/sync/gateway/transportClassification.js +0 -133
  348. package/dist/application/sync/gateway/transportClassification.js.map +0 -1
  349. package/dist/application/sync/gateway/validation.d.ts +0 -22
  350. package/dist/application/sync/gateway/validation.d.ts.map +0 -1
  351. package/dist/application/sync/gateway/validation.js +0 -79
  352. package/dist/application/sync/gateway/validation.js.map +0 -1
  353. /package/dist/application/sync/{gateway → sheets}/conflictProjection.d.ts +0 -0
  354. /package/dist/application/sync/{gateway → sheets}/conflictProjection.js +0 -0
  355. /package/dist/application/sync/{gateway/coordinator → sheets/mutationCoordinator}/asyncMutex.js +0 -0
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Trusted setup bridge from SQLite's physical-sheet registry to the Apps Script
3
- * control plane.
2
+ * Trusted setup bridge from SQLite's physical-sheet registry to the bound
3
+ * spreadsheet through the Google Sheets API sync provider.
4
4
  *
5
5
  * Runtime data-plane calls can only use a registered route. This helper is the
6
6
  * matching owner-side path: callers pass the route returned by SQLite plus its
7
- * declared header schema, and the gateway creates or verifies that projection
8
- * before atomically replacing its remote allowlist.
7
+ * declared header schema, and the provider creates or verifies that projection
8
+ * tab and header row in the bound spreadsheet.
9
9
  */
10
10
  import type { RegisteredProjection, RegisteredSyncSheet } from "../../../infrastructure/storage/sync/shared/syncRegistry.js";
11
11
  /** Exact projection schema that setup must materialize in the bound spreadsheet. */
@@ -19,8 +19,8 @@ export interface RegisteredSyncProjectionDefinition {
19
19
  /** Optional user-editable boolean control fields for a Sync_Conflicts tab. */
20
20
  readonly checkboxHeaders?: readonly string[];
21
21
  }
22
- /** Serializable route shape accepted by a remote setup/control-plane client. */
23
- export interface SyncGatewayProvisionRoute {
22
+ /** Serializable route shape accepted by a remote setup/provisioning client. */
23
+ export interface SyncSheetsProvisionRoute {
24
24
  readonly sheetName: string;
25
25
  readonly registeredRange: string;
26
26
  readonly projection: RegisteredProjection;
@@ -30,21 +30,21 @@ export interface SyncGatewayProvisionRoute {
30
30
  readonly identityField?: string;
31
31
  readonly checkboxHeaders?: readonly string[];
32
32
  }
33
- /** Minimal control-plane boundary; the runtime remains independent of fetch or Google SDK types. */
34
- export interface SyncGatewayProvisioner {
35
- provisionRegistry(registrations: readonly SyncGatewayProvisionRoute[]): Promise<{
36
- readonly registrations: readonly Omit<SyncGatewayProvisionRoute, "headers">[];
33
+ /** Minimal provisioning boundary; the runtime remains independent of fetch or Google SDK types. */
34
+ export interface SyncSheetsProvisioner {
35
+ provisionRegistry(registrations: readonly SyncSheetsProvisionRoute[]): Promise<{
36
+ readonly registrations: readonly Omit<SyncSheetsProvisionRoute, "headers">[];
37
37
  readonly createdSheets: readonly string[];
38
38
  readonly initializedHeaders: readonly string[];
39
39
  }>;
40
40
  }
41
41
  /**
42
42
  * Provisions the complete SQLite-declared projection set without asking an
43
- * operator to copy tab names, ranges, or schema versions into Apps Script.
43
+ * operator to copy tab names, ranges, or schema versions into the spreadsheet.
44
44
  *
45
45
  * The caller should invoke this after successful local registry writes and may
46
- * retry a failed remote call: the gateway only creates missing tabs and never
46
+ * retry a failed remote call: the provider only creates missing tabs and never
47
47
  * overwrites a nonblank, mismatched header row.
48
48
  */
49
- export declare function provisionRegisteredSyncSheets(gateway: SyncGatewayProvisioner, definitions: readonly RegisteredSyncProjectionDefinition[]): Promise<Awaited<ReturnType<SyncGatewayProvisioner["provisionRegistry"]>>>;
50
- //# sourceMappingURL=SyncGatewayBootstrap.d.ts.map
49
+ export declare function provisionRegisteredSyncSheets(provider: SyncSheetsProvisioner, definitions: readonly RegisteredSyncProjectionDefinition[]): Promise<Awaited<ReturnType<SyncSheetsProvisioner["provisionRegistry"]>>>;
50
+ //# sourceMappingURL=sheetsProvisioning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheetsProvisioning.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/sheets/sheetsProvisioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,6DAA6D,CAAC;AAWrE,oFAAoF;AACpF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,+EAA+E;AAC/E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,uFAAuF;IACvF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,mGAAmG;AACnG,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,aAAa,EAAE,SAAS,wBAAwB,EAAE,GAAG,OAAO,CAAC;QAC7E,QAAQ,CAAC,aAAa,EAAE,SAAS,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7E,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;KAChD,CAAC,CAAC;CACJ;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,qBAAqB,EAC/B,WAAW,EAAE,SAAS,kCAAkC,EAAE,GACzD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAiG1E"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Trusted setup bridge from SQLite's physical-sheet registry to the bound
3
+ * spreadsheet through the Google Sheets API sync provider.
4
+ *
5
+ * Runtime data-plane calls can only use a registered route. This helper is the
6
+ * matching owner-side path: callers pass the route returned by SQLite plus its
7
+ * declared header schema, and the provider creates or verifies that projection
8
+ * tab and header row in the bound spreadsheet.
9
+ */
10
+ import { SYNC_SHEETS_ERROR_CODES, SyncSheetsContractError, } from "./errors.js";
11
+ import { requireSyncSheetsNonEmptyList, requireSyncSheetsPositiveSafeInteger, requireSyncSheetsText, } from "./validation.js";
12
+ /**
13
+ * Provisions the complete SQLite-declared projection set without asking an
14
+ * operator to copy tab names, ranges, or schema versions into the spreadsheet.
15
+ *
16
+ * The caller should invoke this after successful local registry writes and may
17
+ * retry a failed remote call: the provider only creates missing tabs and never
18
+ * overwrites a nonblank, mismatched header row.
19
+ */
20
+ export async function provisionRegisteredSyncSheets(provider, definitions) {
21
+ requireSyncSheetsNonEmptyList(definitions, "sync provider provisioning definitions", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
22
+ const firstDefinition = definitions[0];
23
+ if (firstDefinition === undefined) {
24
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, "sync provider provisioning requires a first projection");
25
+ }
26
+ const spreadsheetId = requireSyncSheetsText(firstDefinition.sheet.spreadsheetId, "sync provider provisioning spreadsheetId", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
27
+ const physicalSheetIds = new Set();
28
+ const tabNames = new Set();
29
+ const registrations = definitions.map((definition) => {
30
+ const physicalSheetId = requireSyncSheetsText(definition.sheet.physicalSheetId, "sync provider provisioning physicalSheetId", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
31
+ const sheetName = requireSyncSheetsText(definition.sheet.tabName, "sync provider provisioning tabName", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
32
+ const registeredRange = requireSyncSheetsText(definition.sheet.registeredRange, "sync provider provisioning registeredRange", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
33
+ const definitionSpreadsheetId = requireSyncSheetsText(definition.sheet.spreadsheetId, "sync provider provisioning spreadsheetId", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
34
+ if (definitionSpreadsheetId !== spreadsheetId) {
35
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, "sync provider provisioning definitions must target one spreadsheet");
36
+ }
37
+ if (physicalSheetIds.has(physicalSheetId)) {
38
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, "sync provider provisioning cannot repeat a physical sheet ID");
39
+ }
40
+ if (tabNames.has(sheetName)) {
41
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, "sync provider provisioning cannot repeat a tab name");
42
+ }
43
+ physicalSheetIds.add(physicalSheetId);
44
+ tabNames.add(sheetName);
45
+ validateHeaders(definition.headers, "sync provider provisioning headers");
46
+ validateCheckboxHeaders(definition.headers, definition.checkboxHeaders);
47
+ const schemaVersion = requireSyncSheetsPositiveSafeInteger(definition.sheet.schemaVersion, "sync provider provisioning schemaVersion", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
48
+ const identityField = definition.sheet.projection === "system_state"
49
+ ? requireSyncSheetsText(definition.sheet.businessKeyField, "sync provider provisioning identityField", SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS)
50
+ : definition.sheet.projection === "sync_conflicts"
51
+ ? "Conflict_ID"
52
+ : undefined;
53
+ if (identityField !== undefined && !definition.headers.includes(identityField)) {
54
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, `sync provider provisioning identityField is not declared: ${identityField}`);
55
+ }
56
+ return {
57
+ sheetName,
58
+ registeredRange,
59
+ projection: definition.sheet.projection,
60
+ schemaVersion,
61
+ headers: definition.headers,
62
+ ...(identityField === undefined ? {} : { identityField }),
63
+ ...(definition.checkboxHeaders === undefined ? {} : { checkboxHeaders: definition.checkboxHeaders }),
64
+ };
65
+ });
66
+ return provider.provisionRegistry(registrations);
67
+ }
68
+ function validateHeaders(headers, label) {
69
+ requireSyncSheetsNonEmptyList(headers, label, SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
70
+ const seen = new Set();
71
+ headers.forEach((header, index) => {
72
+ const normalizedHeader = requireSyncSheetsText(header, `${label}[${index}]`, SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
73
+ if (seen.has(normalizedHeader)) {
74
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, `${label} cannot contain duplicate headers: ${normalizedHeader}`);
75
+ }
76
+ seen.add(normalizedHeader);
77
+ });
78
+ }
79
+ function validateCheckboxHeaders(headers, checkboxHeaders) {
80
+ if (checkboxHeaders === undefined)
81
+ return;
82
+ const headerSet = new Set(headers);
83
+ const seen = new Set();
84
+ checkboxHeaders.forEach((header, index) => {
85
+ const normalizedHeader = requireSyncSheetsText(header, `sync provider provisioning checkboxHeaders[${index}]`, SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS);
86
+ if (!headerSet.has(normalizedHeader)) {
87
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, `sync provider provisioning checkbox header is not declared: ${normalizedHeader}`);
88
+ }
89
+ if (seen.has(normalizedHeader)) {
90
+ throw new SyncSheetsContractError(SYNC_SHEETS_ERROR_CODES.INVALID_PROVISIONING_DEFINITIONS, `sync provider provisioning cannot repeat a checkbox header: ${normalizedHeader}`);
91
+ }
92
+ seen.add(normalizedHeader);
93
+ });
94
+ }
95
+ //# sourceMappingURL=sheetsProvisioning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheetsProvisioning.js","sourceRoot":"","sources":["../../../../src/application/sync/sheets/sheetsProvisioning.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,19 @@
1
1
  /**
2
- * Shared gateway contract for the SQLite-authoritative sync runtime.
2
+ * Shared provider contract for the SQLite-authoritative sync runtime.
3
3
  *
4
4
  * The contract deliberately contains normalized values and stable anchors,
5
- * never Google SDK objects or physical row numbers. Both the fake gateway and
6
- * the Apps Script client implement this boundary so fault tests exercise the
7
- * same compare-and-set semantics as a deployed gateway.
5
+ * never Google SDK objects or physical row numbers. Both the fake provider and
6
+ * the Google Sheets API provider implement this boundary so fault tests
7
+ * exercise the same compare-and-set semantics as a deployed provider.
8
8
  */
9
9
  import { type CellObservation, type EffectKind, type EffectTargetKind, type NormalizedCell } from "../../../domain/index.js";
10
10
  import type { Applicability, Presence } from "../../../shared/state/types.js";
11
11
  import type { RegisteredProjection } from "../../../infrastructure/storage/sync/shared/syncRegistry.js";
12
- import { type SyncGatewayEffectResultStatus, type SyncGatewayFastAppendStatus, type SyncGatewayPostconditionMode, type SyncGatewayPostconditionDisposition, type SyncGatewayPostconditionStatus, type SyncGatewayProtocolVersion, type SyncGatewaySnapshotReadMode } from "./constants.js";
13
- import type { SyncGatewayTiming } from "../telemetry/syncTiming.js";
14
- /** Projections supported by the v1 sync gateway. */
12
+ import { type SyncEffectResultStatus, type SyncFastAppendStatus, type SyncPostconditionMode, type SyncPostconditionDisposition, type SyncPostconditionStatus, type SyncProtocolVersion, type SyncSnapshotReadMode } from "./constants.js";
13
+ import type { SyncSheetsTiming } from "../telemetry/syncTiming.js";
14
+ /** Projections supported by the v1 sync provider. */
15
15
  export type SyncProjection = RegisteredProjection;
16
- /** Remote epoch/token evidence carried by internal mutating gateway calls. */
17
- export interface SyncGatewayAuthority {
18
- readonly epoch: number;
19
- readonly token: string;
20
- }
21
- /** Effect classes whose compare-and-set behavior differs at the gateway. */
16
+ /** Effect classes whose compare-and-set behavior differs at the provider. */
22
17
  export type SyncEffectKind = EffectKind;
23
18
  /** Literal/formula metadata retained by a normalized Sheet snapshot. */
24
19
  export interface SyncSnapshotCell extends CellObservation {
@@ -28,14 +23,14 @@ export interface SyncSnapshotCell extends CellObservation {
28
23
  export interface SyncSnapshotRow {
29
24
  readonly rowNumber: number;
30
25
  readonly physicalAnchor: Presence<string>;
31
- /** Optional compatibility fields; the real gateway leaves visible state to SQLite. */
26
+ /** Optional compatibility fields; the real provider leaves visible state to SQLite. */
32
27
  readonly visibleRevision: Presence<number>;
33
28
  readonly visibleHash: Presence<string>;
34
29
  readonly cells: Readonly<Record<string, SyncSnapshotCell>>;
35
30
  }
36
- /** Lock-free normalized snapshot returned by a gateway. */
37
- export interface SyncGatewaySnapshot {
38
- readonly protocolVersion: SyncGatewayProtocolVersion;
31
+ /** Lock-free normalized snapshot returned by a provider. */
32
+ export interface SyncSheetsSnapshot {
33
+ readonly protocolVersion: SyncProtocolVersion;
39
34
  readonly sheetName: string;
40
35
  readonly registeredRange: string;
41
36
  readonly projection: SyncProjection;
@@ -52,7 +47,6 @@ export interface SyncGatewaySnapshot {
52
47
  /** Request used to assign missing Developer Metadata anchors before a snapshot. */
53
48
  export interface EnsureSyncRowAnchorsRequest {
54
49
  readonly physicalSheetId: string;
55
- readonly authority?: SyncGatewayAuthority;
56
50
  readonly sheetName: string;
57
51
  readonly registeredRange: string;
58
52
  readonly projection: SyncProjection;
@@ -70,26 +64,26 @@ export interface EnsureSyncRowAnchorsResult {
70
64
  /** Lock-free snapshot request. */
71
65
  export interface ReadSyncSnapshotRequest extends EnsureSyncRowAnchorsRequest {
72
66
  /** Full metadata for reconciliation, or user-editable values for polling. */
73
- readonly readMode?: SyncGatewaySnapshotReadMode;
67
+ readonly readMode?: SyncSnapshotReadMode;
74
68
  }
75
69
  /** Result of one combined anchor assignment and snapshot read. */
76
70
  export interface SyncObservedSnapshot {
77
71
  readonly anchors: EnsureSyncRowAnchorsResult;
78
- readonly snapshot: SyncGatewaySnapshot;
79
- /** Optional diagnostic phases returned by newer observation gateways. */
80
- readonly timing?: SyncGatewayTiming;
72
+ readonly snapshot: SyncSheetsSnapshot;
73
+ /** Optional diagnostic phases returned by newer observation providers. */
74
+ readonly timing?: SyncSheetsTiming;
81
75
  }
82
76
  /** Optional batch observation capability used to share one remote request. */
83
- export interface SyncSheetObservationBatchGateway extends SyncSheetObservationGateway {
77
+ export interface SyncSheetsObservationBatchProvider extends SyncSheetsObservationProvider {
84
78
  observeSnapshot(request: ReadSyncSnapshotRequest): Promise<SyncObservedSnapshot>;
85
79
  observeSnapshots(requests: readonly ReadSyncSnapshotRequest[]): Promise<readonly SyncObservedSnapshot[]>;
86
80
  }
87
- /** Returns whether a gateway supports the one-request observation path. */
88
- export declare function isSyncSheetObservationBatchGateway(gateway: SyncSheetObservationGateway): gateway is SyncSheetObservationBatchGateway;
89
- /** Reads one snapshot with one combined request when the gateway supports it. */
90
- export declare function observeSyncSnapshot(gateway: SyncSheetObservationGateway, request: ReadSyncSnapshotRequest): Promise<SyncObservedSnapshot>;
81
+ /** Returns whether a provider supports the one-request observation path. */
82
+ export declare function isSyncSheetsObservationBatchProvider(provider: SyncSheetsObservationProvider): provider is SyncSheetsObservationBatchProvider;
83
+ /** Reads one snapshot with one combined request when the provider supports it. */
84
+ export declare function observeSyncSnapshot(provider: SyncSheetsObservationProvider, request: ReadSyncSnapshotRequest): Promise<SyncObservedSnapshot>;
91
85
  /** Reads several snapshots through one remote operation when available. */
92
- export declare function observeSyncSnapshots(gateway: SyncSheetObservationGateway, requests: readonly ReadSyncSnapshotRequest[]): Promise<readonly SyncObservedSnapshot[]>;
86
+ export declare function observeSyncSnapshots(provider: SyncSheetsObservationProvider, requests: readonly ReadSyncSnapshotRequest[]): Promise<readonly SyncObservedSnapshot[]>;
93
87
  /**
94
88
  * Serializable projection values written by one outbox effect.
95
89
  *
@@ -108,8 +102,8 @@ export interface SyncProjectionEffectPayload {
108
102
  /** A candidate reconcile must fail rather than overwrite an active candidate. */
109
103
  readonly expectedCandidateHash: Applicability<string>;
110
104
  }
111
- /** Gateway-ready view of one durable outbox row. */
112
- export interface SyncGatewayEffect {
105
+ /** Provider-ready view of one durable outbox row. */
106
+ export interface SyncProjectionEffect {
113
107
  readonly effectId: string;
114
108
  readonly payloadHash: string;
115
109
  readonly effectKind: SyncEffectKind;
@@ -124,44 +118,43 @@ export interface SyncGatewayEffect {
124
118
  readonly repairGuardHash: Presence<string>;
125
119
  readonly payload: SyncProjectionEffectPayload;
126
120
  }
127
- /** Per-effect terminal/non-terminal gateway result. */
128
- export interface SyncGatewayEffectResult {
121
+ /** Per-effect terminal/non-terminal provider result. */
122
+ export interface SyncEffectResult {
129
123
  readonly effectId: string;
130
124
  readonly payloadHash: string;
131
- readonly status: SyncGatewayEffectResultStatus;
125
+ readonly status: SyncEffectResultStatus;
132
126
  readonly visibleRevision: Presence<number>;
133
127
  readonly visibleHash: Presence<string>;
134
128
  readonly snapshotHash: Presence<string>;
135
129
  readonly reason: Presence<string>;
136
- readonly postcondition: SyncGatewayPostconditionStatus;
130
+ readonly postcondition: SyncPostconditionStatus;
137
131
  }
138
- /** Gateway batch request. All effects must target the same physical sheet. */
132
+ /** Batch request. All effects must target the same physical sheet. */
139
133
  export interface ApplySyncEffectsRequest {
140
134
  readonly physicalSheetId: string;
141
- readonly authority?: SyncGatewayAuthority;
142
135
  readonly sheetName: string;
143
136
  readonly registeredRange: string;
144
137
  readonly projection: SyncProjection;
145
138
  readonly schemaVersion: number;
146
- readonly effects: readonly SyncGatewayEffect[];
139
+ readonly effects: readonly SyncProjectionEffect[];
147
140
  /**
148
141
  * Defaults to inline verification for compatibility. The worker explicitly
149
142
  * selects deferred verification so recovery/reconciliation owns read-back.
150
143
  */
151
- readonly postconditionMode?: SyncGatewayPostconditionMode;
144
+ readonly postconditionMode?: SyncPostconditionMode;
152
145
  }
153
146
  /** A batch may intentionally return only a prefix when its budget is exhausted. */
154
147
  export interface ApplySyncEffectsResult {
155
- readonly results: readonly SyncGatewayEffectResult[];
148
+ readonly results: readonly SyncEffectResult[];
156
149
  readonly snapshotHash: Presence<string>;
157
- /** True only when the gateway intentionally stopped before the supplied suffix. */
150
+ /** True only when the provider intentionally stopped before the supplied suffix. */
158
151
  readonly hasMore: boolean;
159
152
  /** Optional phase timing returned by newer Code.gs deployments. */
160
- readonly timing?: SyncGatewayTiming;
153
+ readonly timing?: SyncSheetsTiming;
161
154
  }
162
155
  /** Read-back classification used after a response is lost or a lease expires. */
163
156
  export interface SyncEffectPostcondition {
164
- readonly disposition: SyncGatewayPostconditionDisposition;
157
+ readonly disposition: SyncPostconditionDisposition;
165
158
  readonly visibleRevision: Presence<number>;
166
159
  readonly visibleHash: Presence<string>;
167
160
  readonly snapshotHash: Presence<string>;
@@ -169,14 +162,14 @@ export interface SyncEffectPostcondition {
169
162
  readonly reason?: string;
170
163
  }
171
164
  /** One effect identity paired with its read-back result in a recovery batch. */
172
- export interface SyncGatewayEffectPostconditionResult {
165
+ export interface SyncEffectPostconditionResult {
173
166
  readonly effectId: string;
174
167
  readonly payloadHash: string;
175
168
  readonly postcondition: SyncEffectPostcondition;
176
169
  }
177
170
  /** One row written through the append-only bulk path.
178
171
  *
179
- * The payload hash lets the Gateway receipt sheet recognize a response-loss
172
+ * The payload hash lets the provider receipt sheet recognize a response-loss
180
173
  * replay without appending the same durable effect twice. The optional shape
181
174
  * keeps older direct adapter fixtures source-compatible; worker-produced rows
182
175
  * always carry the SQLite outbox payload hash.
@@ -191,16 +184,15 @@ export interface FastAppendRow {
191
184
  /** Per-effect result for one fast-append row. */
192
185
  export interface FastAppendRowResult {
193
186
  readonly effectId: string;
194
- /** The row was included in the gateway's bulk write. */
195
- readonly status: SyncGatewayFastAppendStatus;
196
- /** Receipt-backed evidence returned by the gateway append operation. */
187
+ /** The row was included in the provider's bulk write. */
188
+ readonly status: SyncFastAppendStatus;
189
+ /** Receipt-backed evidence returned by the provider append operation. */
197
190
  readonly visibleHash?: string;
198
191
  readonly visibleRevision?: number;
199
192
  }
200
193
  /** Bounded idempotent append request for one registered projection sheet. */
201
194
  export interface FastAppendRowsRequest {
202
195
  readonly physicalSheetId: string;
203
- readonly authority?: SyncGatewayAuthority;
204
196
  readonly sheetName: string;
205
197
  readonly registeredRange: string;
206
198
  readonly projection: SyncProjection;
@@ -210,45 +202,38 @@ export interface FastAppendRowsRequest {
210
202
  /** Result of one bounded fast-append batch. */
211
203
  export interface FastAppendRowsResult {
212
204
  readonly results: readonly FastAppendRowResult[];
213
- /** True when the gateway intentionally stopped before the supplied suffix. */
205
+ /** True when the provider intentionally stopped before the supplied suffix. */
214
206
  readonly hasMore: boolean;
215
207
  /** Optional phase timing returned by newer Code.gs deployments. */
216
- readonly timing?: SyncGatewayTiming;
208
+ readonly timing?: SyncSheetsTiming;
217
209
  }
218
210
  /** Request used to classify several response-loss effects with one Sheet read. */
219
211
  export interface ReadSyncEffectPostconditionsRequest {
220
212
  readonly physicalSheetId: string;
221
- readonly authority?: SyncGatewayAuthority;
222
213
  readonly sheetName: string;
223
214
  readonly registeredRange: string;
224
215
  readonly projection: SyncProjection;
225
216
  readonly schemaVersion: number;
226
- readonly effects: readonly SyncGatewayEffect[];
227
- }
228
- /** Fast append capability required for new System_State rows. */
229
- export interface SyncEffectWorkerGateway {
230
- fastAppendRows(request: FastAppendRowsRequest): Promise<FastAppendRowsResult>;
217
+ readonly effects: readonly SyncProjectionEffect[];
231
218
  }
232
219
  /**
233
- * Full effect capability required for regular updates, deletes, and recovery.
234
- *
235
- * A fast-only gateway can still run the worker when its outbox contains only
236
- * appendable System_State creates; regular effects are rejected explicitly.
220
+ * Full effect capability required for fast append, regular updates, deletes,
221
+ * and recovery.
237
222
  */
238
- export interface SyncEffectWorkerFullGateway extends SyncEffectWorkerGateway {
223
+ export interface SyncEffectWorkerProvider {
224
+ fastAppendRows(request: FastAppendRowsRequest): Promise<FastAppendRowsResult>;
239
225
  applyEffects(request: ApplySyncEffectsRequest): Promise<ApplySyncEffectsResult>;
240
- readEffectPostcondition(effect: SyncGatewayEffect): Promise<SyncEffectPostcondition>;
241
- readEffectPostconditions(request: ReadSyncEffectPostconditionsRequest): Promise<readonly SyncGatewayEffectPostconditionResult[]>;
226
+ readEffectPostcondition(effect: SyncProjectionEffect): Promise<SyncEffectPostcondition>;
227
+ readEffectPostconditions(request: ReadSyncEffectPostconditionsRequest): Promise<readonly SyncEffectPostconditionResult[]>;
242
228
  }
243
- /** Read-only gateway capability used by polling and onEdit observation. */
244
- export interface SyncSheetObservationGateway {
229
+ /** Read-only provider capability used by polling and onEdit observation. */
230
+ export interface SyncSheetsObservationProvider {
245
231
  ensureRowAnchors(request: EnsureSyncRowAnchorsRequest): Promise<EnsureSyncRowAnchorsResult>;
246
- readSnapshot(request: ReadSyncSnapshotRequest): Promise<SyncGatewaySnapshot>;
232
+ readSnapshot(request: ReadSyncSnapshotRequest): Promise<SyncSheetsSnapshot>;
247
233
  }
248
234
  /** Request for a lightweight table read used by simple polling. */
249
235
  export interface ReadSyncTableRowsRequest {
250
236
  readonly physicalSheetId: string;
251
- readonly authority?: SyncGatewayAuthority;
252
237
  readonly sheetName: string;
253
238
  readonly registeredRange: string;
254
239
  readonly projection: SyncProjection;
@@ -266,68 +251,27 @@ export interface SyncTableRowsResult {
266
251
  readonly registeredRange: string;
267
252
  readonly headers: readonly string[];
268
253
  readonly rows: readonly SyncTableRow[];
269
- readonly timing?: SyncGatewayTiming;
254
+ readonly timing?: SyncSheetsTiming;
270
255
  }
271
- /** Gateway capability for reading literal table values without observation metadata. */
272
- export interface SyncSheetTableReaderGateway {
256
+ /** Capability for reading literal table values without observation metadata. */
257
+ export interface SyncSheetsTableReader {
273
258
  readRows(request: ReadSyncTableRowsRequest): Promise<SyncTableRowsResult>;
274
259
  readRowsBatch(requests: readonly ReadSyncTableRowsRequest[]): Promise<readonly SyncTableRowsResult[]>;
275
260
  }
276
- /** Returns whether a full observation gateway also exposes the values-only reader. */
277
- export declare function isSyncSheetTableReaderGateway(gateway: SyncSheetObservationGateway): gateway is SyncSheetObservationGateway & SyncSheetTableReaderGateway;
261
+ /** Returns whether a full observation provider also exposes the values-only reader. */
262
+ export declare function isSyncSheetsTableReader(provider: SyncSheetsObservationProvider): provider is SyncSheetsObservationProvider & SyncSheetsTableReader;
278
263
  /**
279
- * Full gateway boundary used by observation and reconciliation.
264
+ * Full provider boundary used by observation and reconciliation.
280
265
  *
281
266
  * It includes the full effect-worker capabilities plus the metadata/snapshot
282
267
  * reads required to observe user edits and repair projection drift.
283
268
  */
284
- export interface SyncSheetGateway extends SyncEffectWorkerFullGateway, SyncSheetObservationGateway {
285
- }
286
- /**
287
- * Dependencies for a gateway that routes append writes and full observation
288
- * work to separate remote capabilities.
289
- *
290
- * The fast gateway may be the thin operation-based Code.gs deployment, while
291
- * the full gateway may be a separately deployed observation/reconciliation
292
- * endpoint. Keeping this composition explicit prevents a fast-only endpoint
293
- * from being mistaken for a complete sync gateway.
294
- */
295
- export interface SplitSyncGatewayOptions {
296
- readonly fastGateway: SyncEffectWorkerGateway;
297
- readonly fullGateway: SyncSheetGateway;
298
- }
299
- /**
300
- * Combines the low-latency append path with the full observation path.
301
- *
302
- * New System_State creates use `fastGateway`. Updates, deletes, response-loss
303
- * recovery, user-edit observation, and reconciliation use `fullGateway`.
304
- * Neither delegate is allowed to silently handle the other capability.
305
- */
306
- export declare class SplitSyncGateway implements SyncSheetGateway {
307
- private readonly fastGateway;
308
- private readonly fullGateway;
309
- constructor(options: SplitSyncGatewayOptions);
310
- /** Sends append-only System_State creates through the thin gateway. */
311
- fastAppendRows(request: FastAppendRowsRequest): Promise<FastAppendRowsResult>;
312
- /** Sends regular effect writes through the full gateway. */
313
- applyEffects(request: ApplySyncEffectsRequest): Promise<ApplySyncEffectsResult>;
314
- /** Reads one effect postcondition through the full gateway. */
315
- readEffectPostcondition(effect: SyncGatewayEffect): Promise<SyncEffectPostcondition>;
316
- /** Reads a batch of effect postconditions through the full gateway. */
317
- readEffectPostconditions(request: ReadSyncEffectPostconditionsRequest): Promise<readonly SyncGatewayEffectPostconditionResult[]>;
318
- /** Ensures row anchors through the full observation gateway. */
319
- ensureRowAnchors(request: EnsureSyncRowAnchorsRequest): Promise<EnsureSyncRowAnchorsResult>;
320
- /** Reads snapshots through the full observation gateway. */
321
- readSnapshot(request: ReadSyncSnapshotRequest): Promise<SyncGatewaySnapshot>;
322
- /** Shares the full gateway's combined observation capability when present. */
323
- observeSnapshot(request: ReadSyncSnapshotRequest): Promise<SyncObservedSnapshot>;
324
- /** Shares one remote observation request across the supplied projections. */
325
- observeSnapshots(requests: readonly ReadSyncSnapshotRequest[]): Promise<readonly SyncObservedSnapshot[]>;
269
+ export interface SyncSheetsProvider extends SyncEffectWorkerProvider, SyncSheetsObservationProvider {
326
270
  }
327
- /** Computes the stable visible-state hash shared by fake and real gateways. */
271
+ /** Computes the stable visible-state hash shared by fake and real providers. */
328
272
  export declare function computeSyncVisibleHash(fields: Readonly<Record<string, NormalizedCell>>): string;
329
273
  /** Validates and decodes the projection payload stored in a durable outbox row. */
330
274
  export declare function parseSyncProjectionEffectPayload(value: string): SyncProjectionEffectPayload;
331
275
  /** Serializes a checked projection payload in a stable key order for outbox use. */
332
276
  export declare function serializeSyncProjectionEffectPayload(payload: SyncProjectionEffectPayload): string;
333
- //# sourceMappingURL=syncGateway.d.ts.map
277
+ //# sourceMappingURL=syncSheets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncSheets.d.ts","sourceRoot":"","sources":["../../../../src/application/sync/sheets/syncSheets.ts"],"names":[],"mappings":"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"}