hikoutei 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.ja.md +135 -0
- package/README.ko.md +138 -0
- package/README.md +143 -0
- package/apps-script/gateway/Code.gs +412 -0
- package/dist/adapter/persistence/contracts/index.d.ts +3 -0
- package/dist/adapter/persistence/contracts/index.d.ts.map +1 -0
- package/dist/adapter/persistence/contracts/index.js +3 -0
- package/dist/adapter/persistence/contracts/index.js.map +1 -0
- package/dist/adapter/persistence/contracts/sql.d.ts +50 -0
- package/dist/adapter/persistence/contracts/sql.d.ts.map +1 -0
- package/dist/adapter/persistence/contracts/sql.js +9 -0
- package/dist/adapter/persistence/contracts/sql.js.map +1 -0
- package/dist/adapter/persistence/index.d.ts +2 -0
- package/dist/adapter/persistence/index.d.ts.map +1 -0
- package/dist/adapter/persistence/index.js +2 -0
- package/dist/adapter/persistence/index.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.d.ts +53 -0
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.js +105 -0
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts +39 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js +54 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.d.ts +38 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.js +55 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/index.d.ts +16 -0
- package/dist/adapter/persistence/providers/mikro-orm/index.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/index.js +9 -0
- package/dist/adapter/persistence/providers/mikro-orm/index.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts +27 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js +67 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.d.ts +19 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.js +67 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmFlushChanges.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.d.ts +78 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.js +121 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.d.ts +20 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.js +125 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteSchema.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +42 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +51 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +22 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/index.js +12 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +42 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +161 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts +3 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +692 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts +29 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +538 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts +12 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js +190 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +23 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +166 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts +50 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js +60 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts +44 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js +40 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts +7 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js +47 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts +5 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js +54 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts +5 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js +2 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts +10 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js +35 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts +67 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +204 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +78 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +343 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +1 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +4 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/orm/api/TypedSheetsOrm.d.ts +71 -0
- package/dist/application/orm/api/TypedSheetsOrm.d.ts.map +1 -0
- package/dist/application/orm/api/TypedSheetsOrm.js +116 -0
- package/dist/application/orm/api/TypedSheetsOrm.js.map +1 -0
- package/dist/application/orm/api/contracts.d.ts +118 -0
- package/dist/application/orm/api/contracts.d.ts.map +1 -0
- package/dist/application/orm/api/contracts.js +21 -0
- package/dist/application/orm/api/contracts.js.map +1 -0
- package/dist/application/orm/errors.d.ts +35 -0
- package/dist/application/orm/errors.d.ts.map +1 -0
- package/dist/application/orm/errors.js +35 -0
- package/dist/application/orm/errors.js.map +1 -0
- package/dist/application/orm/index.d.ts +13 -0
- package/dist/application/orm/index.d.ts.map +1 -0
- package/dist/application/orm/index.js +7 -0
- package/dist/application/orm/index.js.map +1 -0
- package/dist/application/orm/mapping/contracts.d.ts +113 -0
- package/dist/application/orm/mapping/contracts.d.ts.map +1 -0
- package/dist/application/orm/mapping/contracts.js +8 -0
- package/dist/application/orm/mapping/contracts.js.map +1 -0
- package/dist/application/orm/mapping/definition.d.ts +16 -0
- package/dist/application/orm/mapping/definition.d.ts.map +1 -0
- package/dist/application/orm/mapping/definition.js +145 -0
- package/dist/application/orm/mapping/definition.js.map +1 -0
- package/dist/application/orm/mapping/entityMapping.d.ts +13 -0
- package/dist/application/orm/mapping/entityMapping.d.ts.map +1 -0
- package/dist/application/orm/mapping/entityMapping.js +13 -0
- package/dist/application/orm/mapping/entityMapping.js.map +1 -0
- package/dist/application/orm/mapping/identity.d.ts +14 -0
- package/dist/application/orm/mapping/identity.d.ts.map +1 -0
- package/dist/application/orm/mapping/identity.js +37 -0
- package/dist/application/orm/mapping/identity.js.map +1 -0
- package/dist/application/orm/mapping/observationMapping.d.ts +42 -0
- package/dist/application/orm/mapping/observationMapping.d.ts.map +1 -0
- package/dist/application/orm/mapping/observationMapping.js +65 -0
- package/dist/application/orm/mapping/observationMapping.js.map +1 -0
- package/dist/application/orm/mapping/projection.d.ts +22 -0
- package/dist/application/orm/mapping/projection.d.ts.map +1 -0
- package/dist/application/orm/mapping/projection.js +74 -0
- package/dist/application/orm/mapping/projection.js.map +1 -0
- package/dist/application/orm/mapping/registry.d.ts +15 -0
- package/dist/application/orm/mapping/registry.d.ts.map +1 -0
- package/dist/application/orm/mapping/registry.js +38 -0
- package/dist/application/orm/mapping/registry.js.map +1 -0
- package/dist/application/orm/mapping/values.d.ts +17 -0
- package/dist/application/orm/mapping/values.d.ts.map +1 -0
- package/dist/application/orm/mapping/values.js +141 -0
- package/dist/application/orm/mapping/values.js.map +1 -0
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts +28 -0
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -0
- package/dist/application/orm/persistence/flush/flushCoordinator.js +170 -0
- package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -0
- package/dist/application/orm/persistence/flush/mappedFlushCoordinator.d.ts +9 -0
- package/dist/application/orm/persistence/flush/mappedFlushCoordinator.d.ts.map +1 -0
- package/dist/application/orm/persistence/flush/mappedFlushCoordinator.js +8 -0
- package/dist/application/orm/persistence/flush/mappedFlushCoordinator.js.map +1 -0
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.d.ts +12 -0
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.d.ts.map +1 -0
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js +134 -0
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js.map +1 -0
- package/dist/application/orm/persistence/projection/projectionEffects.d.ts +21 -0
- package/dist/application/orm/persistence/projection/projectionEffects.d.ts.map +1 -0
- package/dist/application/orm/persistence/projection/projectionEffects.js +203 -0
- package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -0
- package/dist/application/orm/persistence/support/businessKeys.d.ts +17 -0
- package/dist/application/orm/persistence/support/businessKeys.d.ts.map +1 -0
- package/dist/application/orm/persistence/support/businessKeys.js +72 -0
- package/dist/application/orm/persistence/support/businessKeys.js.map +1 -0
- package/dist/application/orm/persistence/support/canonicalState.d.ts +22 -0
- package/dist/application/orm/persistence/support/canonicalState.d.ts.map +1 -0
- package/dist/application/orm/persistence/support/canonicalState.js +88 -0
- package/dist/application/orm/persistence/support/canonicalState.js.map +1 -0
- package/dist/application/orm/persistence/support/contracts.d.ts +139 -0
- package/dist/application/orm/persistence/support/contracts.d.ts.map +1 -0
- package/dist/application/orm/persistence/support/contracts.js +93 -0
- package/dist/application/orm/persistence/support/contracts.js.map +1 -0
- package/dist/application/orm/persistence/support/helpers.d.ts +32 -0
- package/dist/application/orm/persistence/support/helpers.d.ts.map +1 -0
- package/dist/application/orm/persistence/support/helpers.js +66 -0
- package/dist/application/orm/persistence/support/helpers.js.map +1 -0
- package/dist/application/orm/persistence/support/timing.d.ts +20 -0
- package/dist/application/orm/persistence/support/timing.d.ts.map +1 -0
- package/dist/application/orm/persistence/support/timing.js +55 -0
- package/dist/application/orm/persistence/support/timing.js.map +1 -0
- package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts +46 -0
- package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +1 -0
- package/dist/application/sync/gateway/SyncGatewayBootstrap.js +93 -0
- package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +1 -0
- package/dist/application/sync/gateway/constants.d.ts +65 -0
- package/dist/application/sync/gateway/constants.d.ts.map +1 -0
- package/dist/application/sync/gateway/constants.js +57 -0
- package/dist/application/sync/gateway/constants.js.map +1 -0
- package/dist/application/sync/gateway/errors.d.ts +15 -0
- package/dist/application/sync/gateway/errors.d.ts.map +1 -0
- package/dist/application/sync/gateway/errors.js +16 -0
- package/dist/application/sync/gateway/errors.js.map +1 -0
- package/dist/application/sync/gateway/syncGateway.d.ts +313 -0
- package/dist/application/sync/gateway/syncGateway.d.ts.map +1 -0
- package/dist/application/sync/gateway/syncGateway.js +202 -0
- package/dist/application/sync/gateway/syncGateway.js.map +1 -0
- package/dist/application/sync/gateway/validation.d.ts +17 -0
- package/dist/application/sync/gateway/validation.d.ts.map +1 -0
- package/dist/application/sync/gateway/validation.js +60 -0
- package/dist/application/sync/gateway/validation.js.map +1 -0
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts +72 -0
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts.map +1 -0
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.js +272 -0
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.js.map +1 -0
- package/dist/application/sync/index.d.ts +16 -0
- package/dist/application/sync/index.d.ts.map +1 -0
- package/dist/application/sync/index.js +9 -0
- package/dist/application/sync/index.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +106 -0
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +297 -0
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +100 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js +345 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +46 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +63 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +20 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +102 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts +19 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +32 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +30 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +202 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts +17 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js +80 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +13 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +205 -0
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -0
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts +81 -0
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts.map +1 -0
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +245 -0
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -0
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts +77 -0
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -0
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +518 -0
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -0
- package/dist/application/sync/telemetry/syncTiming.d.ts +50 -0
- package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -0
- package/dist/application/sync/telemetry/syncTiming.js +22 -0
- package/dist/application/sync/telemetry/syncTiming.js.map +1 -0
- package/dist/domain/conflict/errors.d.ts +42 -0
- package/dist/domain/conflict/errors.d.ts.map +1 -0
- package/dist/domain/conflict/errors.js +36 -0
- package/dist/domain/conflict/errors.js.map +1 -0
- package/dist/domain/conflict/index.d.ts +5 -0
- package/dist/domain/conflict/index.d.ts.map +1 -0
- package/dist/domain/conflict/index.js +3 -0
- package/dist/domain/conflict/index.js.map +1 -0
- package/dist/domain/conflict/transitions.d.ts +52 -0
- package/dist/domain/conflict/transitions.d.ts.map +1 -0
- package/dist/domain/conflict/transitions.js +115 -0
- package/dist/domain/conflict/transitions.js.map +1 -0
- package/dist/domain/errors/evaluation.d.ts +13 -0
- package/dist/domain/errors/evaluation.d.ts.map +1 -0
- package/dist/domain/errors/evaluation.js +14 -0
- package/dist/domain/errors/evaluation.js.map +1 -0
- package/dist/domain/errors/identity.d.ts +12 -0
- package/dist/domain/errors/identity.d.ts.map +1 -0
- package/dist/domain/errors/identity.js +15 -0
- package/dist/domain/errors/identity.js.map +1 -0
- package/dist/domain/errors/index.d.ts +7 -0
- package/dist/domain/errors/index.d.ts.map +1 -0
- package/dist/domain/errors/index.js +5 -0
- package/dist/domain/errors/index.js.map +1 -0
- package/dist/domain/errors/stableEncoding.d.ts +7 -0
- package/dist/domain/errors/stableEncoding.d.ts.map +1 -0
- package/dist/domain/errors/stableEncoding.js +8 -0
- package/dist/domain/errors/stableEncoding.js.map +1 -0
- package/dist/domain/errors/types.d.ts +20 -0
- package/dist/domain/errors/types.d.ts.map +1 -0
- package/dist/domain/errors/types.js +18 -0
- package/dist/domain/errors/types.js.map +1 -0
- package/dist/domain/evaluate/constants.d.ts +55 -0
- package/dist/domain/evaluate/constants.d.ts.map +1 -0
- package/dist/domain/evaluate/constants.js +41 -0
- package/dist/domain/evaluate/constants.js.map +1 -0
- package/dist/domain/evaluate/contracts.d.ts +125 -0
- package/dist/domain/evaluate/contracts.d.ts.map +1 -0
- package/dist/domain/evaluate/contracts.js +8 -0
- package/dist/domain/evaluate/contracts.js.map +1 -0
- package/dist/domain/evaluate/evaluateBatch.d.ts +11 -0
- package/dist/domain/evaluate/evaluateBatch.d.ts.map +1 -0
- package/dist/domain/evaluate/evaluateBatch.js +91 -0
- package/dist/domain/evaluate/evaluateBatch.js.map +1 -0
- package/dist/domain/evaluate/fieldEvaluation.d.ts +14 -0
- package/dist/domain/evaluate/fieldEvaluation.d.ts.map +1 -0
- package/dist/domain/evaluate/fieldEvaluation.js +133 -0
- package/dist/domain/evaluate/fieldEvaluation.js.map +1 -0
- package/dist/domain/evaluate/identity.d.ts +21 -0
- package/dist/domain/evaluate/identity.d.ts.map +1 -0
- package/dist/domain/evaluate/identity.js +72 -0
- package/dist/domain/evaluate/identity.js.map +1 -0
- package/dist/domain/evaluate/index.d.ts +4 -0
- package/dist/domain/evaluate/index.d.ts.map +1 -0
- package/dist/domain/evaluate/index.js +3 -0
- package/dist/domain/evaluate/index.js.map +1 -0
- package/dist/domain/evaluate/preconditions.d.ts +30 -0
- package/dist/domain/evaluate/preconditions.d.ts.map +1 -0
- package/dist/domain/evaluate/preconditions.js +389 -0
- package/dist/domain/evaluate/preconditions.js.map +1 -0
- package/dist/domain/evaluate/quarantine.d.ts +15 -0
- package/dist/domain/evaluate/quarantine.d.ts.map +1 -0
- package/dist/domain/evaluate/quarantine.js +185 -0
- package/dist/domain/evaluate/quarantine.js.map +1 -0
- package/dist/domain/index.d.ts +7 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +7 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/model/constants.d.ts +73 -0
- package/dist/domain/model/constants.d.ts.map +1 -0
- package/dist/domain/model/constants.js +59 -0
- package/dist/domain/model/constants.js.map +1 -0
- package/dist/domain/model/index.d.ts +3 -0
- package/dist/domain/model/index.d.ts.map +1 -0
- package/dist/domain/model/index.js +2 -0
- package/dist/domain/model/index.js.map +1 -0
- package/dist/domain/model/types.d.ts +330 -0
- package/dist/domain/model/types.d.ts.map +1 -0
- package/dist/domain/model/types.js +8 -0
- package/dist/domain/model/types.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/index.d.ts +3 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +3 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/storage/constants.d.ts +4 -0
- package/dist/infrastructure/storage/constants.d.ts.map +1 -0
- package/dist/infrastructure/storage/constants.js +4 -0
- package/dist/infrastructure/storage/constants.js.map +1 -0
- package/dist/infrastructure/storage/errors.d.ts +55 -0
- package/dist/infrastructure/storage/errors.d.ts.map +1 -0
- package/dist/infrastructure/storage/errors.js +58 -0
- package/dist/infrastructure/storage/errors.js.map +1 -0
- package/dist/infrastructure/storage/index.d.ts +23 -0
- package/dist/infrastructure/storage/index.d.ts.map +1 -0
- package/dist/infrastructure/storage/index.js +13 -0
- package/dist/infrastructure/storage/index.js.map +1 -0
- package/dist/infrastructure/storage/recovery/restoreRecovery.d.ts +64 -0
- package/dist/infrastructure/storage/recovery/restoreRecovery.d.ts.map +1 -0
- package/dist/infrastructure/storage/recovery/restoreRecovery.js +148 -0
- package/dist/infrastructure/storage/recovery/restoreRecovery.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/schema.d.ts +49 -0
- package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/schema.js +529 -0
- package/dist/infrastructure/storage/sqlite/schema.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts +5 -0
- package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/schemaTypes.js +2 -0
- package/dist/infrastructure/storage/sqlite/schemaTypes.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqlScript.d.ts +9 -0
- package/dist/infrastructure/storage/sqlite/sqlScript.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqlScript.js +122 -0
- package/dist/infrastructure/storage/sqlite/sqlScript.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqlState.d.ts +6 -0
- package/dist/infrastructure/storage/sqlite/sqlState.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqlState.js +14 -0
- package/dist/infrastructure/storage/sqlite/sqlState.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqlTransaction.d.ts +6 -0
- package/dist/infrastructure/storage/sqlite/sqlTransaction.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqlTransaction.js +24 -0
- package/dist/infrastructure/storage/sqlite/sqlTransaction.js.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqliteBridge.d.ts +44 -0
- package/dist/infrastructure/storage/sqlite/sqliteBridge.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite/sqliteBridge.js +66 -0
- package/dist/infrastructure/storage/sqlite/sqliteBridge.js.map +1 -0
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts +101 -0
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +417 -0
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationAudit.d.ts +16 -0
- package/dist/infrastructure/storage/state/observation/observationAudit.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationAudit.js +85 -0
- package/dist/infrastructure/storage/state/observation/observationAudit.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts +31 -0
- package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationCanonical.js +439 -0
- package/dist/infrastructure/storage/state/observation/observationCanonical.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationConstants.d.ts +53 -0
- package/dist/infrastructure/storage/state/observation/observationConstants.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationConstants.js +41 -0
- package/dist/infrastructure/storage/state/observation/observationConstants.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationLedger.d.ts +49 -0
- package/dist/infrastructure/storage/state/observation/observationLedger.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationLedger.js +537 -0
- package/dist/infrastructure/storage/state/observation/observationLedger.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts +15 -0
- package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationQuarantine.js +100 -0
- package/dist/infrastructure/storage/state/observation/observationQuarantine.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +124 -0
- package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationTypes.js +13 -0
- package/dist/infrastructure/storage/state/observation/observationTypes.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationValidation.d.ts +28 -0
- package/dist/infrastructure/storage/state/observation/observationValidation.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationValidation.js +223 -0
- package/dist/infrastructure/storage/state/observation/observationValidation.js.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationWriter.d.ts +28 -0
- package/dist/infrastructure/storage/state/observation/observationWriter.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/observation/observationWriter.js +293 -0
- package/dist/infrastructure/storage/state/observation/observationWriter.js.map +1 -0
- package/dist/infrastructure/storage/state/readonly/readOnlyObservation.d.ts +58 -0
- package/dist/infrastructure/storage/state/readonly/readOnlyObservation.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/readonly/readOnlyObservation.js +195 -0
- package/dist/infrastructure/storage/state/readonly/readOnlyObservation.js.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts +31 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +563 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts +118 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js +18 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts +23 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js +84 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +16 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +97 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +137 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +396 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +101 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +9 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +21 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +184 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts +25 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js +158 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js.map +1 -0
- package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +69 -0
- package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/shared/syncRegistry.js +272 -0
- package/dist/infrastructure/storage/sync/shared/syncRegistry.js.map +1 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.d.ts +90 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.js +282 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.js.map +1 -0
- package/dist/shared/constants.d.ts +8 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +8 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/encoding/constants.d.ts +45 -0
- package/dist/shared/encoding/constants.d.ts.map +1 -0
- package/dist/shared/encoding/constants.js +37 -0
- package/dist/shared/encoding/constants.js.map +1 -0
- package/dist/shared/encoding/index.d.ts +6 -0
- package/dist/shared/encoding/index.d.ts.map +1 -0
- package/dist/shared/encoding/index.js +4 -0
- package/dist/shared/encoding/index.js.map +1 -0
- package/dist/shared/encoding/stableEncode.d.ts +34 -0
- package/dist/shared/encoding/stableEncode.d.ts.map +1 -0
- package/dist/shared/encoding/stableEncode.js +210 -0
- package/dist/shared/encoding/stableEncode.js.map +1 -0
- package/dist/shared/encoding/typeGuards.d.ts +15 -0
- package/dist/shared/encoding/typeGuards.d.ts.map +1 -0
- package/dist/shared/encoding/typeGuards.js +11 -0
- package/dist/shared/encoding/typeGuards.js.map +1 -0
- package/dist/shared/encoding/types.d.ts +52 -0
- package/dist/shared/encoding/types.d.ts.map +1 -0
- package/dist/shared/encoding/types.js +8 -0
- package/dist/shared/encoding/types.js.map +1 -0
- package/dist/shared/index.d.ts +6 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +6 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/state/constants.d.ts +16 -0
- package/dist/shared/state/constants.d.ts.map +1 -0
- package/dist/shared/state/constants.js +16 -0
- package/dist/shared/state/constants.js.map +1 -0
- package/dist/shared/state/index.d.ts +3 -0
- package/dist/shared/state/index.d.ts.map +1 -0
- package/dist/shared/state/index.js +2 -0
- package/dist/shared/state/index.js.map +1 -0
- package/dist/shared/state/types.d.ts +23 -0
- package/dist/shared/state/types.d.ts.map +1 -0
- package/dist/shared/state/types.js +2 -0
- package/dist/shared/state/types.js.map +1 -0
- package/dist/shared/validation.d.ts +9 -0
- package/dist/shared/validation.d.ts.map +1 -0
- package/dist/shared/validation.js +25 -0
- package/dist/shared/validation.js.map +1 -0
- package/docs/architecture.md +72 -0
- package/docs/code-guidelines.md +256 -0
- package/docs/development.md +48 -0
- package/docs/git-workflow.md +224 -0
- package/docs/mikro-orm-adapter-spike.md +248 -0
- package/docs/quick-start.md +102 -0
- package/docs/sql-layer-plan.md +59 -0
- package/docs/sync-bulk-write-benchmark.md +1036 -0
- package/docs/sync-observability.md +71 -0
- package/docs/task-queue-write-model.md +640 -0
- package/docs/typed-sheets-mvp-scope-2026-06-29.md +490 -0
- package/docs/typed-sheets-plan.md +417 -0
- package/docs/write-and-synchronization-flow.md +71 -0
- package/package.json +68 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite-authoritative polling with one values read per registered table.
|
|
3
|
+
*
|
|
4
|
+
* This path intentionally does not assign anchors, read Developer Metadata,
|
|
5
|
+
* acquire a Sheet lock, calculate snapshot hashes, or write observation
|
|
6
|
+
* receipts. It reads the registered range once, matches rows by the declared
|
|
7
|
+
* business key, compares normalized values with SQLite canonical state, and
|
|
8
|
+
* returns only changed rows for the observation writer to persist.
|
|
9
|
+
*/
|
|
10
|
+
import type { NormalizedCell } from "../../../../domain/index.js";
|
|
11
|
+
import type { SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
|
|
12
|
+
import type { RegisteredSyncProjectionDefinition } from "../../gateway/SyncGatewayBootstrap.js";
|
|
13
|
+
import type { SyncSheetTableReaderGateway, SyncTableRowsResult } from "../../gateway/syncGateway.js";
|
|
14
|
+
/** Runtime classification for one row returned by simple polling. */
|
|
15
|
+
export declare const SIMPLE_POLL_ROW_KINDS: {
|
|
16
|
+
readonly UNCHANGED: "unchanged";
|
|
17
|
+
readonly CHANGED: "changed";
|
|
18
|
+
readonly UNKNOWN: "unknown";
|
|
19
|
+
readonly INVALID: "invalid";
|
|
20
|
+
};
|
|
21
|
+
export type SimplePollRowKind = (typeof SIMPLE_POLL_ROW_KINDS)[keyof typeof SIMPLE_POLL_ROW_KINDS];
|
|
22
|
+
/** Stable reasons for rows that cannot be compared to canonical state. */
|
|
23
|
+
export declare const SIMPLE_POLL_INVALID_REASONS: {
|
|
24
|
+
readonly MISSING_IDENTITY: "missing_identity";
|
|
25
|
+
readonly DUPLICATE_IDENTITY: "duplicate_identity";
|
|
26
|
+
readonly INVALID_CANONICAL_VALUE: "invalid_canonical_value";
|
|
27
|
+
};
|
|
28
|
+
export type SimplePollInvalidReason = (typeof SIMPLE_POLL_INVALID_REASONS)[keyof typeof SIMPLE_POLL_INVALID_REASONS];
|
|
29
|
+
/** One changed Sheet row ready for the next observation/evaluation stage. */
|
|
30
|
+
export interface SimplePollChangedRow {
|
|
31
|
+
readonly entityId: string;
|
|
32
|
+
readonly rowNumber: number;
|
|
33
|
+
readonly fields: Readonly<Record<string, NormalizedCell>>;
|
|
34
|
+
readonly changedFields: readonly string[];
|
|
35
|
+
}
|
|
36
|
+
/** One table's result from a lightweight polling pass. */
|
|
37
|
+
export interface SimpleSheetTablePollingResult {
|
|
38
|
+
readonly physicalSheetId: string;
|
|
39
|
+
readonly logicalSheetId: string;
|
|
40
|
+
readonly sheetName: string;
|
|
41
|
+
readonly rowsScanned: number;
|
|
42
|
+
readonly unchangedRows: number;
|
|
43
|
+
readonly changedRows: readonly SimplePollChangedRow[];
|
|
44
|
+
readonly unknownRows: number;
|
|
45
|
+
readonly invalidRows: number;
|
|
46
|
+
readonly missingCanonicalRows: number;
|
|
47
|
+
readonly readTiming?: SyncTableRowsResult["timing"];
|
|
48
|
+
readonly elapsedMs: number;
|
|
49
|
+
}
|
|
50
|
+
/** Aggregated result for one polling pass across the registered tables. */
|
|
51
|
+
export interface SimpleSheetPollingResult {
|
|
52
|
+
readonly elapsedMs: number;
|
|
53
|
+
readonly tables: readonly SimpleSheetTablePollingResult[];
|
|
54
|
+
readonly rowsScanned: number;
|
|
55
|
+
readonly unchangedRows: number;
|
|
56
|
+
readonly changedRows: readonly SimplePollChangedRow[];
|
|
57
|
+
readonly unknownRows: number;
|
|
58
|
+
readonly invalidRows: number;
|
|
59
|
+
readonly missingCanonicalRows: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Reads and compares all selected projections without a writer lease or
|
|
63
|
+
* Sheet-side metadata mutation. Missing canonical rows are reported only;
|
|
64
|
+
* this function never infers a delete from a missing Sheet row.
|
|
65
|
+
*/
|
|
66
|
+
export declare function pollSimpleSheetRowsWithAdapter(options: {
|
|
67
|
+
readonly storage: SqlStorageAdapter;
|
|
68
|
+
readonly gateway: SyncSheetTableReaderGateway;
|
|
69
|
+
readonly definitions: readonly RegisteredSyncProjectionDefinition[];
|
|
70
|
+
readonly physicalSheetIds?: readonly string[];
|
|
71
|
+
}): Promise<SimpleSheetPollingResult>;
|
|
72
|
+
//# sourceMappingURL=SimpleSheetPolling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleSheetPolling.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/inbound/polling/SimpleSheetPolling.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAKvG,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,KAAK,EAEV,2BAA2B,EAE3B,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAkBtC,qEAAqE;AACrE,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAErE,0EAA0E;AAC1E,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,0DAA0D;AAC1D,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,2EAA2E;AAC3E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAoCD;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,kCAAkC,EAAE,CAAC;IACpE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA+CpC"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite-authoritative polling with one values read per registered table.
|
|
3
|
+
*
|
|
4
|
+
* This path intentionally does not assign anchors, read Developer Metadata,
|
|
5
|
+
* acquire a Sheet lock, calculate snapshot hashes, or write observation
|
|
6
|
+
* receipts. It reads the registered range once, matches rows by the declared
|
|
7
|
+
* business key, compares normalized values with SQLite canonical state, and
|
|
8
|
+
* returns only changed rows for the observation writer to persist.
|
|
9
|
+
*/
|
|
10
|
+
import { NORMALIZED_CELL_KINDS, } from "../../../../shared/encoding/constants.js";
|
|
11
|
+
import { STORAGE_ERROR_CODES, StorageError, } from "../../../../infrastructure/storage/errors.js";
|
|
12
|
+
const READ_CANONICAL_ROWS_SQL = `
|
|
13
|
+
SELECT binding.logical_sheet_id, entity.entity_id, entity.status AS entity_status,
|
|
14
|
+
field.field_name, field.normalized_value
|
|
15
|
+
FROM row_binding AS binding
|
|
16
|
+
JOIN entity_state AS entity
|
|
17
|
+
ON entity.entity_id = binding.entity_id
|
|
18
|
+
AND entity.status IN ('active', 'tombstoned')
|
|
19
|
+
JOIN entity_field_state AS field
|
|
20
|
+
ON field.entity_id = entity.entity_id
|
|
21
|
+
WHERE binding.logical_sheet_id IN (__LOGICAL_SHEET_IDS__)
|
|
22
|
+
AND binding.state IN ('active', 'tombstoned')
|
|
23
|
+
ORDER BY binding.logical_sheet_id, entity.entity_id, field.field_name
|
|
24
|
+
`;
|
|
25
|
+
const DEFAULT_TOMBSTONE_FIELD_NAME = "__typed_sheets_deleted";
|
|
26
|
+
/** Runtime classification for one row returned by simple polling. */
|
|
27
|
+
export const SIMPLE_POLL_ROW_KINDS = {
|
|
28
|
+
UNCHANGED: "unchanged",
|
|
29
|
+
CHANGED: "changed",
|
|
30
|
+
UNKNOWN: "unknown",
|
|
31
|
+
INVALID: "invalid",
|
|
32
|
+
};
|
|
33
|
+
/** Stable reasons for rows that cannot be compared to canonical state. */
|
|
34
|
+
export const SIMPLE_POLL_INVALID_REASONS = {
|
|
35
|
+
MISSING_IDENTITY: "missing_identity",
|
|
36
|
+
DUPLICATE_IDENTITY: "duplicate_identity",
|
|
37
|
+
INVALID_CANONICAL_VALUE: "invalid_canonical_value",
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Reads and compares all selected projections without a writer lease or
|
|
41
|
+
* Sheet-side metadata mutation. Missing canonical rows are reported only;
|
|
42
|
+
* this function never infers a delete from a missing Sheet row.
|
|
43
|
+
*/
|
|
44
|
+
export async function pollSimpleSheetRowsWithAdapter(options) {
|
|
45
|
+
const startedAt = Date.now();
|
|
46
|
+
const definitions = selectDefinitions(options.definitions, options.physicalSheetIds);
|
|
47
|
+
validateDefinitions(definitions);
|
|
48
|
+
if (definitions.length === 0) {
|
|
49
|
+
return {
|
|
50
|
+
elapsedMs: Date.now() - startedAt,
|
|
51
|
+
tables: [],
|
|
52
|
+
rowsScanned: 0,
|
|
53
|
+
unchangedRows: 0,
|
|
54
|
+
changedRows: [],
|
|
55
|
+
unknownRows: 0,
|
|
56
|
+
invalidRows: 0,
|
|
57
|
+
missingCanonicalRows: 0,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const [canonicalByLogicalSheet, remoteResults] = await Promise.all([
|
|
61
|
+
readCanonicalRows(options.storage, definitions),
|
|
62
|
+
options.gateway.readRowsBatch(definitions.map(toReadRequest)),
|
|
63
|
+
]);
|
|
64
|
+
if (remoteResults.length !== definitions.length) {
|
|
65
|
+
throwPollingError("table read result count does not match the requested tables");
|
|
66
|
+
}
|
|
67
|
+
const tables = definitions.map((definition, index) => {
|
|
68
|
+
const remote = remoteResults[index];
|
|
69
|
+
if (remote === undefined) {
|
|
70
|
+
throwPollingError("table read result is missing at index " + index);
|
|
71
|
+
}
|
|
72
|
+
const canonical = canonicalByLogicalSheet.get(definition.sheet.logicalSheetId) ?? new Map();
|
|
73
|
+
return compareTable(definition, remote, canonical);
|
|
74
|
+
});
|
|
75
|
+
const changedRows = tables.flatMap((table) => table.changedRows);
|
|
76
|
+
return {
|
|
77
|
+
elapsedMs: Date.now() - startedAt,
|
|
78
|
+
tables,
|
|
79
|
+
rowsScanned: tables.reduce((total, table) => total + table.rowsScanned, 0),
|
|
80
|
+
unchangedRows: tables.reduce((total, table) => total + table.unchangedRows, 0),
|
|
81
|
+
changedRows,
|
|
82
|
+
unknownRows: tables.reduce((total, table) => total + table.unknownRows, 0),
|
|
83
|
+
invalidRows: tables.reduce((total, table) => total + table.invalidRows, 0),
|
|
84
|
+
missingCanonicalRows: tables.reduce((total, table) => total + table.missingCanonicalRows, 0),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function toReadRequest(definition) {
|
|
88
|
+
return {
|
|
89
|
+
physicalSheetId: definition.sheet.physicalSheetId,
|
|
90
|
+
sheetName: definition.sheet.tabName,
|
|
91
|
+
registeredRange: definition.sheet.registeredRange,
|
|
92
|
+
projection: definition.sheet.projection,
|
|
93
|
+
schemaVersion: definition.sheet.schemaVersion,
|
|
94
|
+
headers: definition.headers,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async function readCanonicalRows(storage, definitions) {
|
|
98
|
+
const logicalSheetIds = definitions.map((definition) => definition.sheet.logicalSheetId);
|
|
99
|
+
const placeholders = logicalSheetIds.map(() => "?").join(", ");
|
|
100
|
+
const rows = await storage.read(({ sql }) => sql.all(READ_CANONICAL_ROWS_SQL.replace("__LOGICAL_SHEET_IDS__", placeholders), logicalSheetIds));
|
|
101
|
+
const entitiesByLogicalSheet = new Map();
|
|
102
|
+
for (const row of rows) {
|
|
103
|
+
const fieldsByEntity = entitiesByLogicalSheet.get(row.logical_sheet_id) ?? new Map();
|
|
104
|
+
const existing = fieldsByEntity.get(row.entity_id) ?? {
|
|
105
|
+
entityId: row.entity_id,
|
|
106
|
+
status: parseCanonicalEntityStatus(row.entity_status, row.entity_id),
|
|
107
|
+
fields: new Map(),
|
|
108
|
+
};
|
|
109
|
+
existing.fields.set(row.field_name, parseCanonicalCell(row.normalized_value, row.entity_id + "." + row.field_name));
|
|
110
|
+
fieldsByEntity.set(row.entity_id, existing);
|
|
111
|
+
entitiesByLogicalSheet.set(row.logical_sheet_id, fieldsByEntity);
|
|
112
|
+
}
|
|
113
|
+
return entitiesByLogicalSheet;
|
|
114
|
+
}
|
|
115
|
+
function compareTable(definition, remote, canonical) {
|
|
116
|
+
const startedAt = Date.now();
|
|
117
|
+
validateRemoteResult(definition, remote);
|
|
118
|
+
const identityField = definition.sheet.businessKeyField;
|
|
119
|
+
const identityCounts = new Map();
|
|
120
|
+
for (const row of remote.rows) {
|
|
121
|
+
const identity = identityFromCell(row.fields[identityField]);
|
|
122
|
+
if (identity !== undefined)
|
|
123
|
+
identityCounts.set(identity, (identityCounts.get(identity) ?? 0) + 1);
|
|
124
|
+
}
|
|
125
|
+
let unchangedRows = 0;
|
|
126
|
+
let unknownRows = 0;
|
|
127
|
+
let invalidRows = 0;
|
|
128
|
+
const changedRows = [];
|
|
129
|
+
const seenCanonicalIds = new Set();
|
|
130
|
+
for (const row of remote.rows) {
|
|
131
|
+
const result = compareRow(row, identityField, identityCounts, canonical, definition.headers);
|
|
132
|
+
if (result.kind === SIMPLE_POLL_ROW_KINDS.UNCHANGED) {
|
|
133
|
+
unchangedRows += 1;
|
|
134
|
+
seenCanonicalIds.add(result.entityId);
|
|
135
|
+
}
|
|
136
|
+
else if (result.kind === SIMPLE_POLL_ROW_KINDS.CHANGED) {
|
|
137
|
+
changedRows.push({
|
|
138
|
+
entityId: result.entityId,
|
|
139
|
+
rowNumber: row.rowNumber,
|
|
140
|
+
fields: row.fields,
|
|
141
|
+
changedFields: result.changedFields,
|
|
142
|
+
});
|
|
143
|
+
seenCanonicalIds.add(result.entityId);
|
|
144
|
+
}
|
|
145
|
+
else if (result.kind === SIMPLE_POLL_ROW_KINDS.UNKNOWN) {
|
|
146
|
+
unknownRows += 1;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
invalidRows += 1;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
physicalSheetId: definition.sheet.physicalSheetId,
|
|
154
|
+
logicalSheetId: definition.sheet.logicalSheetId,
|
|
155
|
+
sheetName: definition.sheet.tabName,
|
|
156
|
+
rowsScanned: remote.rows.length,
|
|
157
|
+
unchangedRows,
|
|
158
|
+
changedRows,
|
|
159
|
+
unknownRows,
|
|
160
|
+
invalidRows,
|
|
161
|
+
missingCanonicalRows: [...canonical.keys()].filter((entityId) => !seenCanonicalIds.has(entityId)).length,
|
|
162
|
+
...(remote.timing === undefined ? {} : { readTiming: remote.timing }),
|
|
163
|
+
elapsedMs: Date.now() - startedAt,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function compareRow(row, identityField, identityCounts, canonical, headers) {
|
|
167
|
+
const identity = identityFromCell(row.fields[identityField]);
|
|
168
|
+
if (identity === undefined) {
|
|
169
|
+
return { kind: SIMPLE_POLL_ROW_KINDS.INVALID, reason: SIMPLE_POLL_INVALID_REASONS.MISSING_IDENTITY };
|
|
170
|
+
}
|
|
171
|
+
if (identityCounts.get(identity) !== 1) {
|
|
172
|
+
return { kind: SIMPLE_POLL_ROW_KINDS.INVALID, reason: SIMPLE_POLL_INVALID_REASONS.DUPLICATE_IDENTITY };
|
|
173
|
+
}
|
|
174
|
+
const expected = canonical.get(identity);
|
|
175
|
+
if (expected === undefined)
|
|
176
|
+
return { kind: SIMPLE_POLL_ROW_KINDS.UNKNOWN, entityId: identity };
|
|
177
|
+
const changedFields = headers.filter((fieldName) => {
|
|
178
|
+
const expectedCell = fieldName === DEFAULT_TOMBSTONE_FIELD_NAME
|
|
179
|
+
? { kind: NORMALIZED_CELL_KINDS.BOOLEAN, value: expected.status === "tombstoned" }
|
|
180
|
+
: expected.fields.get(fieldName) ?? null;
|
|
181
|
+
return !sameCell(row.fields[fieldName] ?? null, expectedCell);
|
|
182
|
+
});
|
|
183
|
+
return changedFields.length === 0
|
|
184
|
+
? { kind: SIMPLE_POLL_ROW_KINDS.UNCHANGED, entityId: identity }
|
|
185
|
+
: { kind: SIMPLE_POLL_ROW_KINDS.CHANGED, entityId: identity, changedFields };
|
|
186
|
+
}
|
|
187
|
+
function validateRemoteResult(definition, result) {
|
|
188
|
+
if (result.sheetName !== definition.sheet.tabName ||
|
|
189
|
+
result.registeredRange !== definition.sheet.registeredRange ||
|
|
190
|
+
result.headers.length !== definition.headers.length ||
|
|
191
|
+
result.headers.some((header, index) => header !== definition.headers[index])) {
|
|
192
|
+
throwPollingError("table read result does not match the registered projection");
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function selectDefinitions(definitions, physicalSheetIds) {
|
|
196
|
+
if (physicalSheetIds === undefined)
|
|
197
|
+
return definitions;
|
|
198
|
+
const selected = new Set(physicalSheetIds);
|
|
199
|
+
return definitions.filter((definition) => selected.has(definition.sheet.physicalSheetId));
|
|
200
|
+
}
|
|
201
|
+
function validateDefinitions(definitions) {
|
|
202
|
+
for (const definition of definitions) {
|
|
203
|
+
if (!definition.headers.includes(definition.sheet.businessKeyField)) {
|
|
204
|
+
throwPollingError("business key is not declared in the projection headers: " + definition.sheet.businessKeyField);
|
|
205
|
+
}
|
|
206
|
+
if (new Set(definition.headers).size !== definition.headers.length) {
|
|
207
|
+
throwPollingError("projection headers contain duplicates: " + definition.sheet.tabName);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function identityFromCell(cell) {
|
|
212
|
+
if (cell === undefined || cell === null)
|
|
213
|
+
return undefined;
|
|
214
|
+
if (cell.kind === NORMALIZED_CELL_KINDS.STRING) {
|
|
215
|
+
return cell.value.length === 0 ? undefined : cell.value;
|
|
216
|
+
}
|
|
217
|
+
if (cell.kind === NORMALIZED_CELL_KINDS.NUMBER)
|
|
218
|
+
return String(cell.value);
|
|
219
|
+
return undefined;
|
|
220
|
+
}
|
|
221
|
+
function sameCell(left, right) {
|
|
222
|
+
if (left === null || right === null)
|
|
223
|
+
return left === right;
|
|
224
|
+
if (left.kind !== right.kind)
|
|
225
|
+
return false;
|
|
226
|
+
return left.value === right.value;
|
|
227
|
+
}
|
|
228
|
+
function parseCanonicalCell(value, label) {
|
|
229
|
+
let parsed;
|
|
230
|
+
try {
|
|
231
|
+
parsed = JSON.parse(value);
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
throwPollingError("canonical value is not valid JSON for " + label, error);
|
|
235
|
+
}
|
|
236
|
+
if (parsed === null)
|
|
237
|
+
return null;
|
|
238
|
+
if (typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
239
|
+
throwPollingError("canonical value is not a normalized cell for " + label);
|
|
240
|
+
}
|
|
241
|
+
const record = parsed;
|
|
242
|
+
if (record.kind === NORMALIZED_CELL_KINDS.STRING || record.kind === NORMALIZED_CELL_KINDS.DATE) {
|
|
243
|
+
if (typeof record.value !== "string")
|
|
244
|
+
throwPollingError("canonical text cell is invalid for " + label);
|
|
245
|
+
return record.kind === NORMALIZED_CELL_KINDS.STRING
|
|
246
|
+
? { kind: NORMALIZED_CELL_KINDS.STRING, value: record.value }
|
|
247
|
+
: { kind: NORMALIZED_CELL_KINDS.DATE, value: record.value };
|
|
248
|
+
}
|
|
249
|
+
if (record.kind === NORMALIZED_CELL_KINDS.NUMBER) {
|
|
250
|
+
if (typeof record.value !== "number" || !Number.isFinite(record.value)) {
|
|
251
|
+
throwPollingError("canonical number cell is invalid for " + label);
|
|
252
|
+
}
|
|
253
|
+
return { kind: NORMALIZED_CELL_KINDS.NUMBER, value: record.value };
|
|
254
|
+
}
|
|
255
|
+
if (record.kind === NORMALIZED_CELL_KINDS.BOOLEAN) {
|
|
256
|
+
if (typeof record.value !== "boolean")
|
|
257
|
+
throwPollingError("canonical boolean cell is invalid for " + label);
|
|
258
|
+
return { kind: NORMALIZED_CELL_KINDS.BOOLEAN, value: record.value };
|
|
259
|
+
}
|
|
260
|
+
throwPollingError("canonical cell kind is unsupported for " + label);
|
|
261
|
+
}
|
|
262
|
+
function parseCanonicalEntityStatus(value, entityId) {
|
|
263
|
+
if (value === "active" || value === "tombstoned")
|
|
264
|
+
return value;
|
|
265
|
+
throwPollingError("canonical entity status is unsupported for " + entityId);
|
|
266
|
+
}
|
|
267
|
+
function throwPollingError(message, cause) {
|
|
268
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_READ_ONLY_OBSERVATION, message, {
|
|
269
|
+
cause,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=SimpleSheetPolling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleSheetPolling.js","sourceRoot":"","sources":["../../../../../src/application/sync/inbound/polling/SimpleSheetPolling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Application-level synchronization orchestration. */
|
|
2
|
+
export { createSyncEffectWorkerSupervisor, SyncEffectWorkerSupervisor, } from "./outbound/effects/SyncEffectSupervisor.js";
|
|
3
|
+
export type { CreateSyncEffectWorkerSupervisorOptions, SyncEffectWorkerSupervisorReconciliationOptions, SyncEffectWorkerSupervisorLoopOptions, SyncEffectWorkerSupervisorWait, } from "./outbound/effects/SyncEffectSupervisor.js";
|
|
4
|
+
export { runReconciliationScan } from "./outbound/reconciliation/ReconciliationScanner.js";
|
|
5
|
+
export type { ReconciliationIdFactory, ReconciliationScanReport, RunReconciliationScanOptions, } from "./outbound/reconciliation/ReconciliationScanner.js";
|
|
6
|
+
export { provisionRegisteredSyncSheets } from "./gateway/SyncGatewayBootstrap.js";
|
|
7
|
+
export type { RegisteredSyncProjectionDefinition, SyncGatewayProvisionRoute, SyncGatewayProvisioner, } from "./gateway/SyncGatewayBootstrap.js";
|
|
8
|
+
export { pollSimpleSheetRowsWithAdapter, SIMPLE_POLL_INVALID_REASONS, SIMPLE_POLL_ROW_KINDS, } from "./inbound/polling/SimpleSheetPolling.js";
|
|
9
|
+
export type { SimplePollChangedRow, SimplePollInvalidReason, SimplePollRowKind, SimpleSheetPollingResult, SimpleSheetTablePollingResult, } from "./inbound/polling/SimpleSheetPolling.js";
|
|
10
|
+
export { observeSyncSnapshot, observeSyncSnapshots, SplitSyncGateway, } from "./gateway/syncGateway.js";
|
|
11
|
+
export type { SplitSyncGatewayOptions, SyncObservedSnapshot, SyncSheetObservationBatchGateway, SyncEffectWorkerGateway, SyncEffectWorkerFullGateway, SyncSheetObservationGateway, SyncSheetGateway, ReadSyncTableRowsRequest, SyncSheetTableReaderGateway, SyncTableRow, SyncTableRowsResult, } from "./gateway/syncGateway.js";
|
|
12
|
+
export { SYNC_GATEWAY_SNAPSHOT_READ_MODES } from "./gateway/constants.js";
|
|
13
|
+
export type { SyncGatewaySnapshotReadMode } from "./gateway/constants.js";
|
|
14
|
+
export { SYNC_TIMING_OPERATION_KINDS, SYNC_TIMING_SCOPES, emptySyncTimingOperationCounts, } from "./telemetry/syncTiming.js";
|
|
15
|
+
export type { SyncGatewayTiming, SyncGatewayTimingPhase, SyncTimingEvent, SyncTimingOperationCounts, SyncTimingOperationKind, SyncTimingScope, SyncTimingSink, } from "./telemetry/syncTiming.js";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/sync/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EACL,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,uCAAuC,EACvC,+CAA+C,EAC/C,qCAAqC,EACrC,8BAA8B,GAC/B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,YAAY,EACV,kCAAkC,EAClC,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,gCAAgC,EAChC,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,EAC3B,YAAY,EACZ,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,cAAc,GACf,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Application-level synchronization orchestration. */
|
|
2
|
+
export { createSyncEffectWorkerSupervisor, SyncEffectWorkerSupervisor, } from "./outbound/effects/SyncEffectSupervisor.js";
|
|
3
|
+
export { runReconciliationScan } from "./outbound/reconciliation/ReconciliationScanner.js";
|
|
4
|
+
export { provisionRegisteredSyncSheets } from "./gateway/SyncGatewayBootstrap.js";
|
|
5
|
+
export { pollSimpleSheetRowsWithAdapter, SIMPLE_POLL_INVALID_REASONS, SIMPLE_POLL_ROW_KINDS, } from "./inbound/polling/SimpleSheetPolling.js";
|
|
6
|
+
export { observeSyncSnapshot, observeSyncSnapshots, SplitSyncGateway, } from "./gateway/syncGateway.js";
|
|
7
|
+
export { SYNC_GATEWAY_SNAPSHOT_READ_MODES } from "./gateway/constants.js";
|
|
8
|
+
export { SYNC_TIMING_OPERATION_KINDS, SYNC_TIMING_SCOPES, emptySyncTimingOperationCounts, } from "./telemetry/syncTiming.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/sync/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EACL,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,4CAA4C,CAAC;AAOpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAM3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAMlF,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,yCAAyC,CAAC;AAQjD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAclC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeps the bounded effect worker running until the durable outbox is idle.
|
|
3
|
+
*
|
|
4
|
+
* The supervisor provides liveness around `runSyncEffectWorker*()`: one pass
|
|
5
|
+
* still handles a bounded batch, while this loop starts the next pass and
|
|
6
|
+
* backs off after failures. It also coalesces manual and background triggers so
|
|
7
|
+
* one process cannot run two effect passes concurrently.
|
|
8
|
+
*/
|
|
9
|
+
import type { ReconciliationScanReport } from "../reconciliation/ReconciliationScanner.js";
|
|
10
|
+
import { type SyncEffectWorkerReport, type SyncEffectWorkerWithAdapterOptions } from "./SyncEffectWorker.js";
|
|
11
|
+
export type SyncEffectWorkerSupervisorWait = (durationMs: number) => Promise<void>;
|
|
12
|
+
type RunPass = () => Promise<SyncEffectWorkerReport>;
|
|
13
|
+
/** Periodic reconciliation(불일치 보정) task attached to the effect loop. */
|
|
14
|
+
export interface SyncEffectWorkerSupervisorReconciliationOptions {
|
|
15
|
+
/** Minimum delay between scan attempts. The first scan runs immediately. */
|
|
16
|
+
readonly intervalMs?: number;
|
|
17
|
+
/** Confirms that no pending or processing outbox work remains before scanning. */
|
|
18
|
+
readonly isOutboxIdle?: () => Promise<boolean>;
|
|
19
|
+
/** Runs one scan and enqueues corrections into the durable outbox. */
|
|
20
|
+
readonly run: () => Promise<ReconciliationScanReport>;
|
|
21
|
+
/** Receives a completed scan without being allowed to stop the loop. */
|
|
22
|
+
readonly onReport?: (report: ReconciliationScanReport) => void;
|
|
23
|
+
/** Receives scan failures; the effect worker continues independently. */
|
|
24
|
+
readonly onError?: (error: unknown) => void;
|
|
25
|
+
}
|
|
26
|
+
/** Options for the runtime loop; `runPass` is injectable for deterministic tests. */
|
|
27
|
+
export interface SyncEffectWorkerSupervisorLoopOptions {
|
|
28
|
+
readonly runPass: RunPass;
|
|
29
|
+
readonly idleIntervalMs?: number;
|
|
30
|
+
readonly errorBackoffInitialMs?: number;
|
|
31
|
+
readonly errorBackoffMaxMs?: number;
|
|
32
|
+
readonly random?: () => number;
|
|
33
|
+
readonly wait?: SyncEffectWorkerSupervisorWait;
|
|
34
|
+
readonly now?: () => number;
|
|
35
|
+
readonly reconciliation?: SyncEffectWorkerSupervisorReconciliationOptions;
|
|
36
|
+
readonly onReport?: (report: SyncEffectWorkerReport) => void;
|
|
37
|
+
readonly onError?: (error: unknown) => void;
|
|
38
|
+
}
|
|
39
|
+
/** Worker options with a clock supplied by the supervisor on every pass. */
|
|
40
|
+
export type CreateSyncEffectWorkerSupervisorOptions = Omit<SyncEffectWorkerWithAdapterOptions, "now" | "workerId" | "maxEffects" | "writerLeaseDurationMs" | "effectLeaseDurationMs"> & {
|
|
41
|
+
readonly workerId?: string;
|
|
42
|
+
readonly maxEffects?: number;
|
|
43
|
+
readonly writerLeaseDurationMs?: number;
|
|
44
|
+
readonly effectLeaseDurationMs?: number;
|
|
45
|
+
readonly now?: () => number;
|
|
46
|
+
readonly idleIntervalMs?: number;
|
|
47
|
+
readonly errorBackoffInitialMs?: number;
|
|
48
|
+
readonly errorBackoffMaxMs?: number;
|
|
49
|
+
readonly random?: () => number;
|
|
50
|
+
readonly wait?: SyncEffectWorkerSupervisorWait;
|
|
51
|
+
readonly reconciliation?: SyncEffectWorkerSupervisorReconciliationOptions;
|
|
52
|
+
readonly onReport?: (report: SyncEffectWorkerReport) => void;
|
|
53
|
+
readonly onError?: (error: unknown) => void;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Runs one bounded effect pass at a time and continues while work is making
|
|
57
|
+
* progress. `stop()` waits for the current remote call to finish before the
|
|
58
|
+
* loop exits, so the caller does not close SQLite underneath an active pass.
|
|
59
|
+
*/
|
|
60
|
+
export declare class SyncEffectWorkerSupervisor {
|
|
61
|
+
private readonly runPass;
|
|
62
|
+
private readonly idleIntervalMs;
|
|
63
|
+
private readonly errorBackoffInitialMs;
|
|
64
|
+
private readonly errorBackoffMaxMs;
|
|
65
|
+
private readonly random;
|
|
66
|
+
private readonly wait;
|
|
67
|
+
private readonly now;
|
|
68
|
+
private readonly reconciliation;
|
|
69
|
+
private readonly reconciliationIntervalMs;
|
|
70
|
+
private readonly onReport;
|
|
71
|
+
private readonly onError;
|
|
72
|
+
private running;
|
|
73
|
+
private loopPromise;
|
|
74
|
+
private inFlightPass;
|
|
75
|
+
private inFlightReconciliation;
|
|
76
|
+
private nextReconciliationAt;
|
|
77
|
+
private wakeWaiter;
|
|
78
|
+
constructor(options: SyncEffectWorkerSupervisorLoopOptions);
|
|
79
|
+
/** Starts the background drain loop; repeated calls are harmless. */
|
|
80
|
+
start(): void;
|
|
81
|
+
/** Returns whether the supervisor is accepting background work. */
|
|
82
|
+
isRunning(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Runs one pass or joins the pass already running in this process.
|
|
85
|
+
* Manual HTTP triggers therefore cannot create a second concurrent worker.
|
|
86
|
+
*/
|
|
87
|
+
runOnce(): Promise<SyncEffectWorkerReport>;
|
|
88
|
+
/** Stops scheduling new passes and waits for the active pass to finish. */
|
|
89
|
+
stop(): Promise<void>;
|
|
90
|
+
private runLoop;
|
|
91
|
+
/** Runs the reconciliation task when its interval has elapsed. */
|
|
92
|
+
private runScheduledReconciliation;
|
|
93
|
+
/** Coalesces a manual/scheduled reconciliation call in this process. */
|
|
94
|
+
private runReconciliationOnce;
|
|
95
|
+
private notifyReconciliationReport;
|
|
96
|
+
private notifyReconciliationError;
|
|
97
|
+
private notifyReport;
|
|
98
|
+
private notifyError;
|
|
99
|
+
private waitFor;
|
|
100
|
+
private clearInFlightPass;
|
|
101
|
+
private clearInFlightReconciliation;
|
|
102
|
+
}
|
|
103
|
+
/** Creates a supervisor that supplies a fresh timestamp to every worker pass. */
|
|
104
|
+
export declare function createSyncEffectWorkerSupervisor(options: CreateSyncEffectWorkerSupervisorOptions): SyncEffectWorkerSupervisor;
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=SyncEffectSupervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncEffectSupervisor.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectSupervisor.ts"],"names":[],"mappings":"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"}
|