hikoutei 0.3.5 → 0.4.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 (328) hide show
  1. package/README.ja.md +44 -21
  2. package/README.ko.md +43 -23
  3. package/README.md +32 -89
  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 +10 -10
  29. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -1
  30. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +31 -57
  31. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -1
  32. package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts +2 -2
  33. package/dist/adapter/sheets/providers/google-sheets-api/constants.js +2 -2
  34. package/dist/adapter/sheets/providers/google-sheets-api/errors.js +3 -3
  35. package/dist/adapter/sheets/providers/google-sheets-api/errors.js.map +1 -1
  36. package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts +0 -2
  37. package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts.map +1 -1
  38. package/dist/adapter/sheets/providers/google-sheets-api/index.js +0 -1
  39. package/dist/adapter/sheets/providers/google-sheets-api/index.js.map +1 -1
  40. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts +4 -4
  41. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts.map +1 -1
  42. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js +4 -4
  43. package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js.map +1 -1
  44. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts +15 -15
  45. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts.map +1 -1
  46. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js +15 -15
  47. package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js.map +1 -1
  48. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.d.ts +2 -2
  49. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.d.ts.map +1 -1
  50. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js +3 -3
  51. package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js.map +1 -1
  52. package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts +1 -1
  53. package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts.map +1 -1
  54. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js +1 -1
  55. package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -1
  56. package/dist/api/Hikoutei.d.ts +1 -1
  57. package/dist/api/Hikoutei.js +1 -1
  58. package/dist/api/index.d.ts +2 -2
  59. package/dist/api/index.js +2 -2
  60. package/dist/application/orm/mapping/contracts.d.ts +2 -2
  61. package/dist/application/orm/mapping/contracts.d.ts.map +1 -1
  62. package/dist/application/orm/mapping/definition.js +5 -5
  63. package/dist/application/orm/mapping/definition.js.map +1 -1
  64. package/dist/application/orm/mapping/projection.js +7 -7
  65. package/dist/application/orm/mapping/projection.js.map +1 -1
  66. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts +3 -3
  67. package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
  68. package/dist/application/orm/persistence/flush/flushCoordinator.js +2 -2
  69. package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
  70. package/dist/application/orm/persistence/projection/projectionEffects.d.ts +1 -1
  71. package/dist/application/orm/persistence/projection/projectionEffects.js +6 -6
  72. package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
  73. package/dist/application/orm/persistence/support/contracts.d.ts +2 -2
  74. package/dist/application/orm/persistence/support/contracts.d.ts.map +1 -1
  75. package/dist/application/sync/inbound/autoSystemConflictResolution.js +7 -7
  76. package/dist/application/sync/inbound/autoSystemConflictResolution.js.map +1 -1
  77. package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts +3 -3
  78. package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts.map +1 -1
  79. package/dist/application/sync/inbound/polling/SimpleSheetPolling.js +1 -1
  80. package/dist/application/sync/inbound/polling/SimpleSheetPolling.js.map +1 -1
  81. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts +2 -2
  82. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts.map +1 -1
  83. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js +2 -2
  84. package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js.map +1 -1
  85. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +2 -2
  86. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +3 -3
  87. package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -1
  88. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +12 -12
  89. package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -1
  90. package/dist/application/sync/outbound/effects/SyncEffectWorker.js +74 -80
  91. package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -1
  92. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +21 -19
  93. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -1
  94. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +22 -20
  95. package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -1
  96. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +10 -10
  97. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -1
  98. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +39 -39
  99. package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -1
  100. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +1 -1
  101. package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +1 -1
  102. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +23 -21
  103. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -1
  104. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +41 -43
  105. package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -1
  106. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts +4 -4
  107. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts.map +1 -1
  108. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js +3 -3
  109. package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js.map +1 -1
  110. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +3 -3
  111. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -1
  112. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +42 -46
  113. package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -1
  114. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts +8 -8
  115. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts.map +1 -1
  116. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +15 -15
  117. package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -1
  118. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts +3 -3
  119. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
  120. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +10 -10
  121. package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
  122. package/dist/application/sync/service/SyncPollingSupervisor.d.ts +1 -1
  123. package/dist/application/sync/service/SyncPollingSupervisor.js +1 -1
  124. package/dist/application/sync/service/SyncServiceBootstrap.d.ts +24 -36
  125. package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
  126. package/dist/application/sync/service/SyncServiceBootstrap.js +85 -214
  127. package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
  128. package/dist/application/sync/service/errors.d.ts +1 -1
  129. package/dist/application/sync/service/errors.js +1 -1
  130. package/dist/application/sync/service/errors.js.map +1 -1
  131. package/dist/application/sync/sheets/conflictProjection.d.ts.map +1 -0
  132. package/dist/application/sync/sheets/conflictProjection.js.map +1 -0
  133. package/dist/application/sync/{gateway → sheets}/conflictProjectionRegistration.d.ts +1 -1
  134. package/dist/application/sync/sheets/conflictProjectionRegistration.d.ts.map +1 -0
  135. package/dist/application/sync/{gateway → sheets}/conflictProjectionRegistration.js +3 -3
  136. package/dist/application/sync/sheets/conflictProjectionRegistration.js.map +1 -0
  137. package/dist/application/sync/sheets/constants.d.ts +66 -0
  138. package/dist/application/sync/sheets/constants.d.ts.map +1 -0
  139. package/dist/application/sync/{gateway → sheets}/constants.js +15 -15
  140. package/dist/application/sync/sheets/constants.js.map +1 -0
  141. package/dist/application/sync/sheets/errors.d.ts +15 -0
  142. package/dist/application/sync/sheets/errors.d.ts.map +1 -0
  143. package/dist/application/sync/sheets/errors.js +16 -0
  144. package/dist/application/sync/sheets/errors.js.map +1 -0
  145. package/dist/application/sync/{gateway/coordinator/CoordinatedSyncGateway.d.ts → sheets/mutationCoordinator/CoordinatedSheetsProvider.d.ts} +29 -28
  146. package/dist/application/sync/sheets/mutationCoordinator/CoordinatedSheetsProvider.d.ts.map +1 -0
  147. package/dist/application/sync/{gateway/coordinator/CoordinatedSyncGateway.js → sheets/mutationCoordinator/CoordinatedSheetsProvider.js} +27 -26
  148. package/dist/application/sync/sheets/mutationCoordinator/CoordinatedSheetsProvider.js.map +1 -0
  149. package/dist/application/sync/{gateway/coordinator → sheets/mutationCoordinator}/asyncMutex.d.ts +2 -3
  150. package/dist/application/sync/sheets/mutationCoordinator/asyncMutex.d.ts.map +1 -0
  151. package/dist/application/sync/sheets/mutationCoordinator/asyncMutex.js.map +1 -0
  152. package/dist/application/sync/{gateway/coordinator/coordinatorTelemetry.d.ts → sheets/mutationCoordinator/laneTelemetry.d.ts} +4 -4
  153. package/dist/application/sync/sheets/mutationCoordinator/laneTelemetry.d.ts.map +1 -0
  154. package/dist/application/sync/{gateway/coordinator/coordinatorTelemetry.js → sheets/mutationCoordinator/laneTelemetry.js} +5 -5
  155. package/dist/application/sync/sheets/mutationCoordinator/laneTelemetry.js.map +1 -0
  156. package/dist/application/sync/{gateway/SyncGatewayBootstrap.d.ts → sheets/sheetsProvisioning.d.ts} +14 -14
  157. package/dist/application/sync/sheets/sheetsProvisioning.d.ts.map +1 -0
  158. package/dist/application/sync/sheets/sheetsProvisioning.js +95 -0
  159. package/dist/application/sync/sheets/sheetsProvisioning.js.map +1 -0
  160. package/dist/application/sync/{gateway/syncGateway.d.ts → sheets/syncSheets.d.ts} +61 -117
  161. package/dist/application/sync/sheets/syncSheets.d.ts.map +1 -0
  162. package/dist/application/sync/sheets/syncSheets.js +144 -0
  163. package/dist/application/sync/sheets/syncSheets.js.map +1 -0
  164. package/dist/application/sync/{gateway/transportClassification.d.ts → sheets/transportOutcome.d.ts} +13 -24
  165. package/dist/application/sync/sheets/transportOutcome.d.ts.map +1 -0
  166. package/dist/application/sync/sheets/transportOutcome.js +97 -0
  167. package/dist/application/sync/sheets/transportOutcome.js.map +1 -0
  168. package/dist/application/sync/sheets/validation.d.ts +22 -0
  169. package/dist/application/sync/sheets/validation.d.ts.map +1 -0
  170. package/dist/application/sync/sheets/validation.js +79 -0
  171. package/dist/application/sync/sheets/validation.js.map +1 -0
  172. package/dist/application/sync/telemetry/syncTiming.d.ts +7 -7
  173. package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -1
  174. package/dist/application/sync/telemetry/syncTiming.js +2 -2
  175. package/dist/application/sync/telemetry/syncTiming.js.map +1 -1
  176. package/dist/domain/evaluate/contracts.d.ts +1 -1
  177. package/dist/domain/evaluate/contracts.js +1 -1
  178. package/dist/domain/model/constants.d.ts +1 -1
  179. package/dist/domain/model/constants.d.ts.map +1 -1
  180. package/dist/domain/model/types.d.ts +1 -1
  181. package/dist/domain/model/types.d.ts.map +1 -1
  182. package/dist/index.d.ts +3 -2
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.js +3 -2
  185. package/dist/index.js.map +1 -1
  186. package/dist/infrastructure/storage/state/observation/observationAudit.d.ts +1 -1
  187. package/dist/infrastructure/storage/state/observation/observationAudit.js +1 -1
  188. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +3 -3
  189. package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -1
  190. package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +1 -1
  191. package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +1 -1
  192. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +9 -3
  193. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -1
  194. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +7 -1
  195. package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -1
  196. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +1 -1
  197. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -1
  198. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +6 -3
  199. package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -1
  200. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +4 -4
  201. package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts.map +1 -1
  202. package/dist/infrastructure/storage/sync/shared/syncRegistry.js +4 -4
  203. package/dist/infrastructure/storage/sync/shared/syncRegistry.js.map +1 -1
  204. package/dist/shared/encoding/types.d.ts +1 -1
  205. package/docs/architecture.md +28 -43
  206. package/docs/ci.md +17 -16
  207. package/docs/code-guidelines.md +10 -18
  208. package/docs/development.md +16 -20
  209. package/docs/gateway-removal-inventory.md +147 -0
  210. package/docs/quick-start.md +25 -47
  211. package/docs/sync-observability.md +38 -45
  212. package/docs/write-and-synchronization-flow.md +31 -70
  213. package/package.json +2 -4
  214. package/apps-script/gateway/Code.gs +0 -447
  215. package/apps-script/gateway/appsscript.json +0 -17
  216. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +0 -43
  217. package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +0 -1
  218. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +0 -52
  219. package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +0 -1
  220. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +0 -32
  221. package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +0 -1
  222. package/dist/adapter/sheets/providers/apps-script-gateway/index.js +0 -21
  223. package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +0 -1
  224. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +0 -44
  225. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +0 -1
  226. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +0 -181
  227. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +0 -1
  228. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts +0 -3
  229. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +0 -1
  230. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +0 -810
  231. package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +0 -1
  232. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts +0 -31
  233. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts.map +0 -1
  234. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +0 -560
  235. package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +0 -1
  236. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts +0 -12
  237. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts.map +0 -1
  238. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js +0 -166
  239. package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js.map +0 -1
  240. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.d.ts +0 -8
  241. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.d.ts.map +0 -1
  242. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.js +0 -122
  243. package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.js.map +0 -1
  244. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts +0 -39
  245. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts.map +0 -1
  246. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js +0 -697
  247. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js.map +0 -1
  248. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +0 -19
  249. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +0 -1
  250. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +0 -37
  251. package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +0 -1
  252. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts +0 -51
  253. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts.map +0 -1
  254. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js +0 -60
  255. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js.map +0 -1
  256. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts +0 -44
  257. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts.map +0 -1
  258. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js +0 -40
  259. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js.map +0 -1
  260. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts +0 -12
  261. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts.map +0 -1
  262. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js +0 -41
  263. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js.map +0 -1
  264. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts +0 -5
  265. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts.map +0 -1
  266. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js +0 -53
  267. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js.map +0 -1
  268. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts +0 -4
  269. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts.map +0 -1
  270. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js +0 -2
  271. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js.map +0 -1
  272. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts +0 -11
  273. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts.map +0 -1
  274. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js +0 -36
  275. package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js.map +0 -1
  276. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts +0 -68
  277. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +0 -1
  278. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +0 -273
  279. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +0 -1
  280. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +0 -75
  281. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +0 -1
  282. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +0 -365
  283. package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +0 -1
  284. package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts +0 -3
  285. package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts.map +0 -1
  286. package/dist/adapter/sheets/providers/apps-script-gateway/validation.js +0 -10
  287. package/dist/adapter/sheets/providers/apps-script-gateway/validation.js.map +0 -1
  288. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiEffectGateway.d.ts +0 -27
  289. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiEffectGateway.d.ts.map +0 -1
  290. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiEffectGateway.js +0 -14
  291. package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiEffectGateway.js.map +0 -1
  292. package/dist/application/sync/gateway/RoutedSyncGateway.d.ts +0 -59
  293. package/dist/application/sync/gateway/RoutedSyncGateway.d.ts.map +0 -1
  294. package/dist/application/sync/gateway/RoutedSyncGateway.js +0 -86
  295. package/dist/application/sync/gateway/RoutedSyncGateway.js.map +0 -1
  296. package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +0 -1
  297. package/dist/application/sync/gateway/SyncGatewayBootstrap.js +0 -95
  298. package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +0 -1
  299. package/dist/application/sync/gateway/conflictProjection.d.ts.map +0 -1
  300. package/dist/application/sync/gateway/conflictProjection.js.map +0 -1
  301. package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts.map +0 -1
  302. package/dist/application/sync/gateway/conflictProjectionRegistration.js.map +0 -1
  303. package/dist/application/sync/gateway/constants.d.ts +0 -66
  304. package/dist/application/sync/gateway/constants.d.ts.map +0 -1
  305. package/dist/application/sync/gateway/constants.js.map +0 -1
  306. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts.map +0 -1
  307. package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js.map +0 -1
  308. package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts.map +0 -1
  309. package/dist/application/sync/gateway/coordinator/asyncMutex.js.map +0 -1
  310. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts.map +0 -1
  311. package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js.map +0 -1
  312. package/dist/application/sync/gateway/errors.d.ts +0 -15
  313. package/dist/application/sync/gateway/errors.d.ts.map +0 -1
  314. package/dist/application/sync/gateway/errors.js +0 -16
  315. package/dist/application/sync/gateway/errors.js.map +0 -1
  316. package/dist/application/sync/gateway/syncGateway.d.ts.map +0 -1
  317. package/dist/application/sync/gateway/syncGateway.js +0 -191
  318. package/dist/application/sync/gateway/syncGateway.js.map +0 -1
  319. package/dist/application/sync/gateway/transportClassification.d.ts.map +0 -1
  320. package/dist/application/sync/gateway/transportClassification.js +0 -170
  321. package/dist/application/sync/gateway/transportClassification.js.map +0 -1
  322. package/dist/application/sync/gateway/validation.d.ts +0 -22
  323. package/dist/application/sync/gateway/validation.d.ts.map +0 -1
  324. package/dist/application/sync/gateway/validation.js +0 -79
  325. package/dist/application/sync/gateway/validation.js.map +0 -1
  326. /package/dist/application/sync/{gateway → sheets}/conflictProjection.d.ts +0 -0
  327. /package/dist/application/sync/{gateway → sheets}/conflictProjection.js +0 -0
  328. /package/dist/application/sync/{gateway/coordinator → sheets/mutationCoordinator}/asyncMutex.js +0 -0
package/README.ja.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  <a href="https://www.npmjs.com/package/hikoutei">npm パッケージ</a> ·
10
10
  <a href="https://github.com/ManddarinShop/Hikoutei/issues">Issues</a> ·
11
- <a href="apps-script/gateway/Code.gs">Apps Script Gateway</a>
11
+ <a href="docs/quick-start.md">クイックスタート</a>
12
12
 
13
13
  [![npm version](https://img.shields.io/npm/v/hikoutei?style=flat-square)](https://www.npmjs.com/package/hikoutei)
14
14
  [![license](https://img.shields.io/npm/l/hikoutei?style=flat-square)](LICENSE)
@@ -18,8 +18,9 @@
18
18
 
19
19
  Hikoutei は、TypeScript と Node.js のアプリケーションで Google Sheets を
20
20
  MVP や社内ワークフローの人間向けの画面として利用できるようにします。
21
- アプリケーションは型付きエンティティとローカル SQLite を使い、付属の
22
- Apps Script Gateway を通して変更を Google Sheets へ非同期に届けられます。
21
+ アプリケーションは型付きエンティティとローカル SQLite を使い、サービス
22
+ アカウントの Google Sheets provider を通して変更を Google Sheets へ非同期に
23
+ 届けられます。
23
24
 
24
25
  Hikoutei の対象は意図的に限定されています。汎用データベースの代替、
25
26
  Prisma/JPA のクローン、汎用 Google Sheets API ラッパーを目的としていません。
@@ -47,7 +48,7 @@ SQLite provider が内部で利用しますが、ルート public API に MikroO
47
48
  ## クイックスタート
48
49
 
49
50
  エンティティ定義と SQLite の lifecycle はルート API だけを使います。Sheet route、
50
- gateway credential、provisioning、polling は内部 service bootstrap の責務です。
51
+ provider credential、provisioning、polling は内部 service bootstrap の責務です。
51
52
 
52
53
  ```ts
53
54
  import { createTypedSheets, defineTypedSheetsEntity } from "hikoutei";
@@ -102,21 +103,43 @@ Sheet への配信は非同期に行います。
102
103
 
103
104
  ## Google Sheets の設定
104
105
 
105
- 1. [`apps-script/gateway/Code.gs`](apps-script/gateway/Code.gs) を対象の
106
- Spreadsheet にバインドした Apps Script プロジェクトへコピーし、Web App として
107
- デプロイします。その後 `/exec` URL を入力して `setupSyncGateway()` を実行します。
108
- 2. `TYPED_SHEETS_GATEWAY_URL`、`TYPED_SHEETS_GATEWAY_SHARED_SECRET`、
109
- `TYPED_SHEETS_GATEWAY_SHEET_ID` を、追跡対象外のサーバー環境ファイルまたは
110
- secret store に保管します。shared secret をブラウザコードや Git に入れないでください。
111
- 3. 内部 sync bootstrap を開始すると private route/ownership configuration を検証し、
112
- タブとヘッダーを provision した後、outbox 配信と User_Input polling を実行します。
113
- アプリケーションは gateway API を直接呼び出しません。
114
-
115
- 外部サーバーからアクセスするには、Web App のアクセス範囲でサーバーを許可する必要が
116
- あり、通常は **Anyone** が必要です。エディタ専用の `/dev` ではなく、デプロイ用の
117
- `/exec` URL を使用してください。`Code.gs` を変更した場合は、Web App deployment を
118
- 新しいバージョンに更新してから利用します。詳しい設定とトラブルシューティングは
119
- [クイックスタート](docs/quick-start.md)を参照してください。
106
+ Google Sheets の同期は service-side の責務です。推奨経路はサービスアカウントの
107
+ `googleSheetsApi` provider で、ひとつのサービスアカウントがタブの provisioning、
108
+ outbound effect の書き込み(高速 append、guarded update/delete、レシート、
109
+ 応答喪失の復旧)、テーブル読み取り、行アンカー、ユーザー編集の観察をすべて
110
+ 行います。アプリケーションは provider クライアントを import したり、Sheet route
111
+ `createTypedSheets()` に渡したりしません。
112
+
113
+ 1. `https://www.googleapis.com/auth/spreadsheets` スコープを持つ Google Cloud
114
+ サービスアカウントを作成し、対象スプレッドシートをそのメールアドレスに
115
+ **編集者**として共有します。provider がタブ作成、effect 行とレシート記録、
116
+ 行アンカー管理を行うため、閲覧者権限では不十分です。Cloud プロジェクトで
117
+ Google Sheets API を有効化します。
118
+ 2. サービスアカウントキーのファイルパスをサーバーの
119
+ `GOOGLE_APPLICATION_CREDENTIALS` に置き、スプレッドシート ID はコミットされない
120
+ シークレットストアに保管します。キーをブラウザコードや Git に入れないでください。
121
+ 3. `googleSheetsApi` で内部 sync bootstrap を起動します。登録タブのヘッダーを
122
+ 作成・検証した後、outbox 配信と User_Input polling を開始します。
123
+
124
+ シートの整合性はリクエスト間の Sheet トランザクションから生まれるのではなく、
125
+ 隠された effect-receipt タブ、effect-id/payload-hash の重複排除、SQLite の
126
+ durable outbox、フェンシング、フィールド単位の compare-and-set 証拠、
127
+ postcondition 復旧から生まれます。provider は資格情報・スプレッドシート ID・
128
+ URL・payload をログに残さず、要求開始間隔をクラスごと(読み取り/書き込み)
129
+ 1,100ms に調整して Google の quota window を守ります。`flush()` はローカル
130
+ コミットのみを意味し、配信は非同期で、すべての書き込みはレシートで記録され、
131
+ 同じ effect worker が復旧します。
132
+
133
+ 追跡される live シナリオはこの provider で実行されます。
134
+ [docs/sync-bulk-write-benchmark.md](docs/sync-bulk-write-benchmark.md) の
135
+ 10,000 行 append と update/delete の live 証拠も同じ REST 経路です。
136
+ `scripts/bench/` の生トランスポート実験はレシート/CAS のない unguarded 経路
137
+ なので、worker 経由の測定までは性能値を検証済みと見なさないでください。live
138
+ 呼び出しは opt-in で、通常の検証は fake provider と SQLite fixture を使います。
139
+
140
+ 従来の Apps Script Gateway と `appsScript`/`googleApiWorker` オプションは削除され、
141
+ 上記のサービスアカウント provider が唯一の同期経路です。詳しい設定と
142
+ トラブルシューティングは [クイックスタート](docs/quick-start.md) を参照してください。
120
143
 
121
144
  ## ドキュメント
122
145
 
@@ -128,7 +151,7 @@ Sheet への配信は非同期に行います。
128
151
 
129
152
  ## 制限事項
130
153
 
131
- - Google Sheets にはクォータ、レイテンシー、Apps Script の実行時間制限があります。
154
+ - Google Sheets にはクォータ、レイテンシー、API のレート制限があります。
132
155
  - Sheet の更新は非同期なので、アプリケーションはローカル状態を読み取るべきです。
133
156
  - SQLite はサービスにローカルなもので、分散調整レイヤーではありません。
134
157
  - スキーマ変更、手動編集、競合する変更に対する運用方針は、アプリケーション側で
@@ -138,7 +161,7 @@ Sheet への配信は非同期に行います。
138
161
 
139
162
  - Google Sheets から意図的なユーザー編集を取り込む機能を完成させる。
140
163
  - update/delete の競合処理と表示を改善する。
141
- - レジストリと Apps Script デプロイ用のセットアップツールを追加する。
164
+ - レジストリと直接 provider デプロイ用のセットアップツールを追加する。
142
165
  - 公開パッケージのリリースを安定化する。
143
166
 
144
167
  現在の作業については [open issues](https://github.com/ManddarinShop/Hikoutei/issues)
package/README.ko.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  <a href="https://www.npmjs.com/package/hikoutei">npm 패키지</a> ·
10
10
  <a href="https://github.com/ManddarinShop/Hikoutei/issues">이슈</a> ·
11
- <a href="apps-script/gateway/Code.gs">Apps Script Gateway</a>
11
+ <a href="docs/quick-start.md">빠른 시작</a>
12
12
 
13
13
  [![npm version](https://img.shields.io/npm/v/hikoutei?style=flat-square)](https://www.npmjs.com/package/hikoutei)
14
14
  [![license](https://img.shields.io/npm/l/hikoutei?style=flat-square)](LICENSE)
@@ -18,8 +18,9 @@
18
18
 
19
19
  Hikoutei는 TypeScript와 Node.js 애플리케이션에서 Google Sheets를 MVP 또는
20
20
  내부 업무 흐름의 사람이 읽기 쉬운 화면으로 사용할 수 있게 합니다. 애플리케이션은
21
- 타입이 지정된 엔티티와 로컬 SQLite를 사용하고, 포함된 Apps Script Gateway를
22
- 통해 변경 내용을 Google Sheets에 비동기적으로 전달할 수 있습니다.
21
+ 타입이 지정된 엔티티와 로컬 SQLite를 사용하고, 서비스 계정 기반 Google
22
+ Sheets provider를 통해 변경 내용을 Google Sheets에 비동기적으로 전달할 수
23
+ 있습니다.
23
24
 
24
25
  Hikoutei의 범위는 의도적으로 작습니다. 범용 데이터베이스 대체재, Prisma/JPA
25
26
  클론, 범용 Google Sheets API 래퍼를 목표로 하지 않습니다.
@@ -47,7 +48,7 @@ SQLite provider가 내부적으로 사용하지만 루트 public API에는 Mikro
47
48
  ## 빠른 시작
48
49
 
49
50
  엔티티 정의와 SQLite lifecycle은 루트 API만 사용합니다. Sheet route,
50
- gateway credential, provisioning, polling은 내부 service bootstrap의 책임입니다.
51
+ provider credential, provisioning, polling은 내부 service bootstrap의 책임입니다.
51
52
 
52
53
  ```ts
53
54
  import { createTypedSheets, defineTypedSheetsEntity } from "hikoutei";
@@ -104,23 +105,42 @@ outbound worker와 User_Input polling을 시작합니다. service mode에서
104
105
 
105
106
  ## Google Sheets 설정
106
107
 
107
- 1. [`apps-script/gateway/Code.gs`](apps-script/gateway/Code.gs)를 대상
108
- Spreadsheet에 bound된 Apps Script 프로젝트에 복사하고 Web App으로
109
- 배포한 `/exec` URL을 입력하고 `setupSyncGateway()`를 실행합니다.
110
- 2. `TYPED_SHEETS_GATEWAY_URL`, `TYPED_SHEETS_GATEWAY_SHARED_SECRET`,
111
- `TYPED_SHEETS_GATEWAY_SHEET_ID`를 추적하지 않는 서버 환경 파일이나
112
- secret store에 보관합니다. shared secret은 브라우저 코드나 Git에 넣지
113
- 마세요.
114
- 3. 내부 sync bootstrap을 시작하면 private route/ownership configuration을
115
- 검증하고 탭과 헤더를 provisioning한 outbox delivery와 User_Input
116
- polling을 실행합니다. 애플리케이션 코드는 gateway API를 호출하지
117
- 않습니다.
118
-
119
- 외부 서버에서 접근하려면 Web App의 액세스 범위가 서버를 허용해야 하며,
120
- 일반적으로 **Anyone** 설정이 필요합니다. 편집기 전용 `/dev`가 아니라 배포용
121
- `/exec` URL을 사용하세요. `Code.gs`를 변경하면 Web App deployment를 새
122
- 버전으로 갱신해야 합니다. 상세한 설정과 문제 해결 방법은
123
- [빠른 시작](docs/quick-start.md)에 설명되어 있습니다.
108
+ Google Sheets 동기화는 service-side의 책임입니다. 권장 경로는 서비스 계정
109
+ 기반 `googleSheetsApi` provider로, 하나의 서비스 계정으로 provisioning,
110
+ outbound effect 쓰기(빠른 append, guarded update/delete, receipt, 응답 유실
111
+ 복구), 테이블 읽기, 행 anchor, 사용자 편집 관찰을 모두 수행합니다.
112
+ 애플리케이션은 provider client를 import하거나 Sheet route를
113
+ `createTypedSheets()`에 넘기지 않습니다.
114
+
115
+ 1. `https://www.googleapis.com/auth/spreadsheets` scope를 가진 Google Cloud
116
+ 서비스 계정을 만들고, 대상 스프레드시트를 이메일로 **Editor** 권한으로
117
+ 공유합니다. provider가 생성, effect 행과 receipt 기록, 행 anchor 관리를
118
+ 하므로 Viewer 권한으로는 부족합니다. Cloud 프로젝트에서 Google Sheets API를
119
+ 활성화합니다.
120
+ 2. 서비스 계정 파일 경로를 서버의 `GOOGLE_APPLICATION_CREDENTIALS`에 두고,
121
+ 스프레드시트 ID는 커밋되지 않는 시크릿 저장소에 보관합니다. 키를 브라우저
122
+ 코드나 Git에 넣지 마세요.
123
+ 3. `googleSheetsApi`로 내부 sync bootstrap을 시작합니다. 등록된 탭의 헤더를
124
+ 생성/검증한 outbox 전달과 User_Input polling을 시작합니다.
125
+
126
+ 시트 일관성은 요청 간 Sheet 트랜잭션에서 오지 않습니다. 숨겨진
127
+ effect-receipt 탭, effect-id/payload-hash 중복 제거, SQLite durable outbox,
128
+ fencing, 필드 단위 compare-and-set 증거, postcondition 복구에서 옵니다.
129
+ provider는 자격 증명, 스프레드시트 ID, URL, payload를 로그에 남기지 않으며,
130
+ 요청 시작 간격을 클래스별(읽기/쓰기) 1,100ms로 조절해 Google quota window를
131
+ 지킵니다. `flush()`는 로컬 커밋만 의미하고 전달은 비동기이며, 모든 쓰기는
132
+ receipt로 기록되고 같은 effect worker가 복구합니다.
133
+
134
+ 추적되는 live 시나리오는 이 provider로 실행됩니다.
135
+ [docs/sync-bulk-write-benchmark.md](docs/sync-bulk-write-benchmark.md)의
136
+ 10,000행 append와 update/delete live 증거도 같은 REST 경로를 사용합니다.
137
+ `scripts/bench/`의 원시 전송 실험은 receipt/CAS 없는 unguarded 경로이므로,
138
+ worker를 통한 측정 전에는 성능 수치를 검증된 것으로 보지 마세요. live 호출은
139
+ opt-in이며, 일반 검증은 fake provider와 SQLite fixture를 사용합니다.
140
+
141
+ 기존 Apps Script Gateway와 `appsScript`/`googleApiWorker` 옵션은 제거되어
142
+ 위 서비스 계정 provider가 유일한 동기화 경로입니다. 상세한 설정과 문제 해결
143
+ 방법은 [빠른 시작](docs/quick-start.md)에 설명되어 있습니다.
124
144
 
125
145
  ## 문서
126
146
 
@@ -134,7 +154,7 @@ outbound worker와 User_Input polling을 시작합니다. service mode에서
134
154
 
135
155
  ## 제한사항
136
156
 
137
- - Google Sheets에는 quota, 지연 시간, Apps Script 실행 시간 제한이 있습니다.
157
+ - Google Sheets에는 quota, 지연 시간, API rate limit이 있습니다.
138
158
  - Sheet 업데이트는 비동기이므로 애플리케이션은 로컬 상태를 읽어야 합니다.
139
159
  - SQLite는 서비스에 로컬이며 분산 조정 계층이 아닙니다.
140
160
  - 스키마 변경, 수동 편집, 충돌하는 변경에 대한 운영 정책은 애플리케이션이
@@ -144,7 +164,7 @@ outbound worker와 User_Input polling을 시작합니다. service mode에서
144
164
 
145
165
  - Google Sheets에서 의도적인 사용자 편집을 수집하는 기능 완성.
146
166
  - update/delete 충돌 처리와 표시 개선.
147
- - 레지스트리 및 Apps Script 배포를 위한 설정 도구 추가.
167
+ - 레지스트리 및 직접 provider 배포를 위한 설정 도구 추가.
148
168
  - 공개 패키지 릴리스 안정화.
149
169
 
150
170
  현재 작업은 [open issues](https://github.com/ManddarinShop/Hikoutei/issues)
package/README.md CHANGED
@@ -8,8 +8,7 @@
8
8
 
9
9
  <a href="https://www.npmjs.com/package/hikoutei">npm package</a> ·
10
10
  <a href="https://github.com/ManddarinShop/Hikoutei/issues">Issues</a> ·
11
- <a href="docs/quick-start.md">Quick start</a> ·
12
- <a href="apps-script/gateway/Code.gs">Legacy Apps Script gateway</a>
11
+ <a href="docs/quick-start.md">Quick start</a>
13
12
 
14
13
  [![npm version](https://img.shields.io/npm/v/hikoutei?style=flat-square)](https://www.npmjs.com/package/hikoutei)
15
14
  [![license](https://img.shields.io/npm/l/hikoutei?style=flat-square)](LICENSE)
@@ -20,8 +19,7 @@
20
19
  Hikoutei helps TypeScript and Node.js applications use Google Sheets as a
21
20
  human-friendly part of an MVP or internal workflow. Your application works
22
21
  with typed entities and local SQLite; changes can be delivered to Google
23
- Sheets asynchronously through a service-account Google Sheets provider (or the
24
- legacy Apps Script gateway when no service account is available).
22
+ Sheets asynchronously through a service-account Google Sheets provider.
25
23
 
26
24
  Hikoutei is intentionally focused. It is not a general-purpose database
27
25
  replacement, a Prisma/JPA clone, or a general Google Sheets API wrapper.
@@ -53,7 +51,7 @@ without changing the entity lifecycle API.
53
51
  ## Quick start
54
52
 
55
53
  Define a scalar entity and use the local SQLite authority through a
56
- request-local manager. Sheet routes, gateway credentials, provisioning, and
54
+ request-local manager. Sheet routes, provider credentials, provisioning, and
57
55
  polling belong to the internal service bootstrap rather than the application
58
56
  API.
59
57
 
@@ -113,16 +111,16 @@ Use a conventional database and direct Google APIs when you need:
113
111
  ## Google Sheets setup
114
112
 
115
113
  Google Sheets synchronization is a service-side concern. Applications do not
116
- import a gateway client, pass Sheet routes to `createTypedSheets()`, call
114
+ import a provider client, pass Sheet routes to `createTypedSheets()`, call
117
115
  `setupSheets()`, or choose an operation for each write.
118
116
 
119
- ### Service-account direct provider (recommended)
117
+ ### Service-account provider (googleSheetsApi)
120
118
 
121
- The preferred production path uses the internal `googleSheetsApi` bootstrap
122
- option with the Google Sheets REST API directly — no Apps Script at all. The
123
- provider provisions the registered tabs, writes outbound effects, reads table
124
- values, assigns row anchors, and observes human edits, all with one service
125
- account:
119
+ The sync runtime uses one Google Sheets API provider (the internal
120
+ `googleSheetsApi` bootstrap option) with a service account — no Apps Script
121
+ deployment. The provider provisions the registered tabs, writes outbound
122
+ effects (fast append, guarded update/delete, receipts, response-loss
123
+ recovery), reads table values, assigns row anchors, and observes human edits:
126
124
 
127
125
  1. Create a Google Cloud service account with the
128
126
  `https://www.googleapis.com/auth/spreadsheets` scope and share the target
@@ -139,81 +137,26 @@ account:
139
137
  Sheet consistency does not come from cross-request Sheet transactions; it
140
138
  comes from the hidden effect-receipt tab, effect-id/payload-hash dedupe, the
141
139
  SQLite durable outbox, fencing, field-level compare-and-set evidence, and
142
- postcondition recovery. The service-account path never logs credentials,
143
- spreadsheet IDs, URLs, or payloads; it spaces request starts at 1,100 ms per
144
- class (reads and writes separately) to stay inside Google's quota windows, and
145
- it keeps the same SQLite-authoritative model: `flush()` commits locally,
146
- delivery is asynchronous, and every write is receipted and recovered through
147
- the same effect worker.
148
-
149
- ### Apps Script gateway (legacy, no service account)
150
-
151
- Deployments that cannot use a service account can keep the legacy Apps Script
152
- gateway. It remains fully supported but is deprecated: new setups should
153
- prefer the service-account direct provider.
154
-
155
- 1. Copy [`apps-script/gateway/Code.gs`](apps-script/gateway/Code.gs) into a
156
- spreadsheet-bound Apps Script project and deploy it as a Web App. Paste the
157
- deployed `/exec` URL into the `TYPED_SHEETS_GATEWAY_URL` constant in
158
- `Code.gs` and run `setupSyncGateway()` from the editor; it stores the bound
159
- spreadsheet ID and a generated shared secret in Script Properties and logs
160
- a copyable local `.env` block.
161
- 2. Keep `TYPED_SHEETS_GATEWAY_URL`,
162
- `TYPED_SHEETS_GATEWAY_SHARED_SECRET`, and
163
- `TYPED_SHEETS_GATEWAY_SHEET_ID` in an untracked server environment or secret
164
- store. Never put the shared secret in browser code or Git.
165
- 3. Start the internal sync bootstrap with `appsScript` configured. It
166
- validates the private route/ownership configuration, provisions and
167
- verifies headers, then starts outbox delivery and User_Input polling.
168
-
169
- **Migrating from the gateway to the service account:** share the spreadsheet
170
- with the service account, switch the internal bootstrap option from
171
- `appsScript` to `googleSheetsApi`, and remove the three `TYPED_SHEETS_GATEWAY_*`
172
- environment variables. The provider reads and writes the same tabs, receipt
173
- sheet, and anchor metadata, so existing spreadsheets keep working without
174
- re-provisioning.
175
-
176
- The current legacy Apps Script runtime writes append batches unconditionally
177
- through the Apps Script Advanced Sheets Service; there is no runtime
178
- enablement switch. The bundled [`appsscript.json`](apps-script/gateway/appsscript.json)
179
- manifest (Sheets v4 advanced service enabled) and Google Cloud Sheets API
180
- activation in the script's Cloud project are therefore mandatory for the
181
- current temporary append path. A legacy `Code.gs`-only deployment that runs
182
- only on built-in `SpreadsheetApp` services must first restore the commented
183
- rollback block in
184
- `src/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.ts`,
185
- which reverts append target writes to the built-in services path. No service
186
- account is required. Sheet consistency does not come from
187
- cross-request Sheet transactions; it comes from the Apps Script script lock,
188
- the hidden effect-receipt tab, effect-id/payload-hash dedupe, the SQLite
189
- durable outbox, fencing, and postcondition recovery.
190
-
191
- ### Full direct provider (service account)
192
-
193
- The internal sync bootstrap also supports a full direct mode: one Google
194
- Sheets API provider (the `googleSheetsApi` internal option) owns provisioning,
195
- outbound effects (fast append, guarded update/delete, receipts, response-loss
196
- recovery), values-only table reads, row anchors, and User_Input observation,
197
- all with a service account through Application Default Credentials
198
- (`GOOGLE_APPLICATION_CREDENTIALS` pointing at a service-account key shared on
199
- the spreadsheet). No Apps Script deployment is required. The provider never
200
- logs credentials, spreadsheet IDs, URLs, or payloads; it spaces request starts
201
- at 1,100 ms per class (reads and writes separately) to stay inside Google's
202
- quota windows, and it keeps the same SQLite-authoritative model: `flush()`
203
- commits locally, delivery is asynchronous, and every write is receipted and
204
- recovered through the same effect worker.
205
-
206
- The direct provider is the tracked live scenario's mode. The 10,000-row
207
- append and update/delete live evidence collected through the same REST path
208
- is recorded in [docs/sync-bulk-write-benchmark.md](docs/sync-bulk-write-benchmark.md);
209
- those raw-transport experiments under `scripts/bench/` are separate
210
- measurements of the unguarded API path (no receipts, no compare-and-set), so
211
- treat any throughput number as unverified until it is measured through the
212
- full worker.
213
-
214
- Live Google calls are opt-in; fake gateways and SQLite fixtures are the
215
- normal verification path. The detailed setup and troubleshooting steps are in
216
- the [Quick start](docs/quick-start.md).
140
+ postcondition recovery. The provider never logs credentials, spreadsheet IDs,
141
+ URLs, or payloads; it spaces request starts at 1,100 ms per class (reads and
142
+ writes separately) to stay inside Google's quota windows, and it keeps the
143
+ same SQLite-authoritative model: `flush()` commits locally, delivery is
144
+ asynchronous, and every write is receipted and recovered through the same
145
+ effect worker.
146
+
147
+ The tracked live scenario runs through this provider. The 10,000-row append
148
+ and update/delete live evidence recorded in
149
+ [docs/sync-bulk-write-benchmark.md](docs/sync-bulk-write-benchmark.md) uses
150
+ the same REST path; the raw-transport experiments under `scripts/bench/`
151
+ measure the unguarded API path (no receipts, no compare-and-set), so treat
152
+ any throughput number as unverified until it is measured through the full
153
+ worker. Live Google calls are opt-in; fake providers and SQLite fixtures are
154
+ the normal verification path.
155
+
156
+ The previous Apps Script gateway and the `appsScript`/`googleApiWorker`
157
+ options were removed; the service-account provider above is the only sync
158
+ path. The detailed setup and troubleshooting steps are in the
159
+ [Quick start](docs/quick-start.md).
217
160
 
218
161
  ## Documentation
219
162
 
@@ -228,7 +171,7 @@ the [Quick start](docs/quick-start.md).
228
171
 
229
172
  ## Limitations
230
173
 
231
- - Google Sheets has quota, latency, and Apps Script execution limits.
174
+ - Google Sheets has quota, latency, and API rate limits.
232
175
  - Sheet updates are asynchronous; the application should read its local state.
233
176
  - SQLite is local to the service and is not a distributed coordination layer.
234
177
  - Schema changes, manual edits, and conflicting updates still need an
@@ -238,7 +181,7 @@ the [Quick start](docs/quick-start.md).
238
181
 
239
182
  - Complete ingestion of intentional user edits from Google Sheets.
240
183
  - Improve update/delete conflict handling and presentation.
241
- - Add setup tooling for registry and Apps Script deployment.
184
+ - Add setup tooling for registry and direct provider deployment.
242
185
  - Stabilize the public package release.
243
186
 
244
187
  See the [open issues](https://github.com/ManddarinShop/Hikoutei/issues)
@@ -8,7 +8,7 @@
8
8
  import { type TypedSheetsEntityMapping, type TypedSheetsEntityMappingRegistry } from "../../../../../application/orm/mapping/entityMapping.js";
9
9
  import type { RegisteredTypedSheetsMappedProjection, TypedSheetsEntityWriterOptions } from "../../../../../application/orm/persistence/support/contracts.js";
10
10
  import type { TypedSheetsOrm } from "../../../../../application/orm/api/TypedSheetsOrm.js";
11
- import type { RegisteredSyncProjectionDefinition } from "../../../../../application/sync/gateway/SyncGatewayBootstrap.js";
11
+ import type { RegisteredSyncProjectionDefinition } from "../../../../../application/sync/sheets/sheetsProvisioning.js";
12
12
  import { type InitializeMikroOrmSqliteAdapterOptions, type MikroOrmSqliteAdapter } from "../storage/MikroOrmSqliteAdapter.js";
13
13
  /** Options for creating a mapped public ORM around an existing MikroORM SQLite adapter. */
14
14
  export interface CreateMappedTypedSheetsOrmOptions {
@@ -21,7 +21,7 @@ export interface InitializeMappedTypedSheetsOrmOptions extends InitializeMikroOr
21
21
  * Optional internal hook invoked after local registry writes succeed.
22
22
  *
23
23
  * The hook receives the exact generated projection definitions so the sync
24
- * service can provision a remote gateway without duplicating route metadata.
24
+ * service can provision a remote provider without duplicating route metadata.
25
25
  */
26
26
  readonly onRegisteredProjections?: (definitions: readonly RegisteredSyncProjectionDefinition[]) => Promise<void>;
27
27
  }
@@ -41,7 +41,7 @@ export declare function createMappedTypedSheetsOrm(storage: MikroOrmSqliteAdapte
41
41
  * Opens a dedicated MikroORM SQLite runtime ready for mapped entity lifecycle work.
42
42
  *
43
43
  * Startup performs non-destructive entity/schema migration and idempotent local
44
- * projection registration. Remote Apps Script provisioning remains explicit so
44
+ * projection registration. Remote provider-side provisioning remains explicit so
45
45
  * a process cannot mutate a spreadsheet merely by opening its local database.
46
46
  */
47
47
  export declare function initializeMappedTypedSheetsRuntime(options: InitializeMappedTypedSheetsOrmOptions): Promise<InitializedMappedTypedSheetsRuntime>;
@@ -1 +1 @@
1
- {"version":3,"file":"MikroOrmMappedTypedSheets.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACtC,MAAM,yDAAyD,CAAC;AACjE,OAAO,KAAK,EACV,qCAAqC,EACrC,8BAA8B,EAC/B,MAAM,iEAAiE,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,iEAAiE,CAAC;AAI1H,OAAO,EAEL,KAAK,sCAAsC,EAC3C,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAG7C,2FAA2F;AAC3F,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,GAAG,SAAS,wBAAwB,EAAE,CAAC;IAC1F,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;CACjD;AAED,2FAA2F;AAC3F,MAAM,WAAW,qCACf,SAAQ,sCAAsC,EAAE,iCAAiC;IACjF;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CACjC,WAAW,EAAE,SAAS,kCAAkC,EAAE,KACvD,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,qCAAqC,EAAE,CAAC;CAC1E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,iCAAiC,GACzC,cAAc,CAQhB;AAED;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,mCAAmC,CAAC,CAyB9C;AAED,mFAAmF;AACnF,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,cAAc,CAAC,CAGzB"}
1
+ {"version":3,"file":"MikroOrmMappedTypedSheets.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACtC,MAAM,yDAAyD,CAAC;AACjE,OAAO,KAAK,EACV,qCAAqC,EACrC,8BAA8B,EAC/B,MAAM,iEAAiE,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8DAA8D,CAAC;AAIvH,OAAO,EAEL,KAAK,sCAAsC,EAC3C,KAAK,qBAAqB,EAC3B,MAAM,qCAAqC,CAAC;AAG7C,2FAA2F;AAC3F,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,GAAG,SAAS,wBAAwB,EAAE,CAAC;IAC1F,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;CACjD;AAED,2FAA2F;AAC3F,MAAM,WAAW,qCACf,SAAQ,sCAAsC,EAAE,iCAAiC;IACjF;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CACjC,WAAW,EAAE,SAAS,kCAAkC,EAAE,KACvD,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,qCAAqC,EAAE,CAAC;CAC1E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,iCAAiC,GACzC,cAAc,CAQhB;AAED;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,mCAAmC,CAAC,CAyB9C;AAED,mFAAmF;AACnF,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,cAAc,CAAC,CAGzB"}
@@ -27,7 +27,7 @@ export function createMappedTypedSheetsOrm(storage, options) {
27
27
  * Opens a dedicated MikroORM SQLite runtime ready for mapped entity lifecycle work.
28
28
  *
29
29
  * Startup performs non-destructive entity/schema migration and idempotent local
30
- * projection registration. Remote Apps Script provisioning remains explicit so
30
+ * projection registration. Remote provider-side provisioning remains explicit so
31
31
  * a process cannot mutate a spreadsheet merely by opening its local database.
32
32
  */
33
33
  export async function initializeMappedTypedSheetsRuntime(options) {
@@ -2,7 +2,7 @@
2
2
  * Materializes scalar entity schemas and provider bindings without sync code.
3
3
  *
4
4
  * The root ORM factory imports this module only. Projection mapping, canonical
5
- * state, and gateway code remain behind the internal sync-service path.
5
+ * state, and provider code remain behind the internal sync-service path.
6
6
  */
7
7
  import type { HikouteiEntity } from "../../../../../api/entity.js";
8
8
  import type { MikroOrmSqliteEntity } from "../storage/MikroOrmSqliteAdapter.js";
@@ -2,7 +2,7 @@
2
2
  * Materializes scalar entity schemas and provider bindings without sync code.
3
3
  *
4
4
  * The root ORM factory imports this module only. Projection mapping, canonical
5
- * state, and gateway code remain behind the internal sync-service path.
5
+ * state, and provider code remain behind the internal sync-service path.
6
6
  */
7
7
  import { defineEntity, p } from "@mikro-orm/sql";
8
8
  import { getEntityDescriptor } from "../../../../../api/entity.js";
@@ -12,7 +12,7 @@ import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../../../../
12
12
  import { createMikroOrmScalarEntityRuntime, } from "./MikroOrmScalarEntityRuntime.js";
13
13
  import { FIELD_OWNERSHIPS } from "../../../../../domain/model/constants.js";
14
14
  import { NORMALIZED_CELL_KINDS, } from "../../../../../shared/encoding/constants.js";
15
- import { SYNC_GATEWAY_PROJECTIONS } from "../../../../../application/sync/gateway/constants.js";
15
+ import { SYNC_PROJECTIONS } from "../../../../../application/sync/sheets/constants.js";
16
16
  /**
17
17
  * Adds internal projection mappings to the provider materialization.
18
18
  *
@@ -51,14 +51,14 @@ function createMapping(descriptor, reference, entityConfig, spreadsheetId) {
51
51
  spreadsheetId,
52
52
  tabName: entityConfig.systemState.tabName,
53
53
  registeredRange: entityConfig.systemState.registeredRange,
54
- projection: SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE,
54
+ projection: SYNC_PROJECTIONS.SYSTEM_STATE,
55
55
  },
56
56
  ...(entityConfig.userInput === undefined ? [] : [{
57
57
  physicalSheetId: `${logicalSheetId}:user_input`,
58
58
  spreadsheetId,
59
59
  tabName: entityConfig.userInput.tabName,
60
60
  registeredRange: entityConfig.userInput.registeredRange,
61
- projection: SYNC_GATEWAY_PROJECTIONS.USER_INPUT,
61
+ projection: SYNC_PROJECTIONS.USER_INPUT,
62
62
  }]),
63
63
  ];
64
64
  return defineTypedSheetsEntityMapping({
@@ -1 +1 @@
1
- {"version":3,"file":"MikroOrmScalarRuntime.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MikroOrmScalarRuntime.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@
2
2
  * Polls User_Input projections and applies accepted edits to the local entity
3
3
  * table through the observation writer.
4
4
  *
5
- * The gateway is treated as an untrusted observation source: only rows with a
5
+ * The provider is treated as an untrusted observation source: only rows with a
6
6
  * known SQLite business key and literal/blank cells are promoted. Canonical
7
7
  * state, field revisions, conflict candidates, and the System_State outbox
8
8
  * remain the durable source of truth.
9
9
  */
10
- import type { SyncSheetObservationGateway } from "../../../../../application/sync/gateway/syncGateway.js";
10
+ import type { SyncSheetsObservationProvider } from "../../../../../application/sync/sheets/syncSheets.js";
11
11
  import { type SyncTimingSink } from "../../../../../application/sync/telemetry/syncTiming.js";
12
12
  import type { TypedSheetsEntityMapping, TypedSheetsEntityMappingRegistry } from "../../../../../application/orm/mapping/entityMapping.js";
13
13
  import type { TypedSheetsEntityWriterOptions } from "../../../../../application/orm/persistence/support/contracts.js";
@@ -67,7 +67,7 @@ export interface MappedUserInputPollingReport {
67
67
  /** Options for the provider-specific first inbound worker slice. */
68
68
  export interface PollMappedUserInputWithMikroOrmOptions {
69
69
  readonly storage: MikroOrmSqliteAdapter;
70
- readonly gateway: SyncSheetObservationGateway;
70
+ readonly provider: SyncSheetsObservationProvider;
71
71
  readonly mappings: TypedSheetsEntityMappingRegistry | readonly TypedSheetsEntityMapping[];
72
72
  readonly writer: TypedSheetsEntityWriterOptions;
73
73
  readonly physicalSheetIds?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"MikroOrmUserInputPolling.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MikroOrmUserInputPolling.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.ts"],"names":[],"mappings":"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"}