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 @@
|
|
|
1
|
+
{"version":3,"file":"SyncEffectWorkerTransitions.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTransitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic outbox payload builders for all v1 Sheet projections.
|
|
3
|
+
*
|
|
4
|
+
* The public repository never exposes insert/update/delete mechanics here.
|
|
5
|
+
* These helpers translate a writer-approved canonical/candidate/resolution
|
|
6
|
+
* decision into one immutable effect payload; the effect worker later performs
|
|
7
|
+
* the remote compare-and-set through the gateway.
|
|
8
|
+
*/
|
|
9
|
+
import { type Applicability, type EffectTargetKind, type NormalizedCell, type Presence } from "../../../../domain/index.js";
|
|
10
|
+
import { SYNC_GATEWAY_PROJECTIONS } from "../../gateway/constants.js";
|
|
11
|
+
import { type SyncEffectKind, type SyncProjection } from "../../gateway/syncGateway.js";
|
|
12
|
+
import type { NewEffect } from "../../../../infrastructure/storage/index.js";
|
|
13
|
+
/** Common immutable coordinates of a writer-approved projection effect. */
|
|
14
|
+
export interface ProjectionEffectInput {
|
|
15
|
+
readonly effectId: string;
|
|
16
|
+
readonly effectKind: SyncEffectKind;
|
|
17
|
+
readonly commitId: string;
|
|
18
|
+
readonly logicalSheetId: string;
|
|
19
|
+
readonly physicalSheetId: string;
|
|
20
|
+
readonly sheetName: string;
|
|
21
|
+
readonly registeredRange: string;
|
|
22
|
+
readonly projection: SyncProjection;
|
|
23
|
+
readonly schemaVersion: number;
|
|
24
|
+
readonly targetKind: EffectTargetKind;
|
|
25
|
+
readonly targetId: string;
|
|
26
|
+
readonly rowBindingId: Presence<string>;
|
|
27
|
+
readonly conflictId: Presence<string>;
|
|
28
|
+
readonly targetAnchor: string;
|
|
29
|
+
readonly fields: Readonly<Record<string, NormalizedCell>>;
|
|
30
|
+
readonly createIfMissing: boolean;
|
|
31
|
+
readonly expectedVisibleRevision: number;
|
|
32
|
+
readonly expectedVisibleHash: string;
|
|
33
|
+
readonly expectedCandidateHash?: Applicability<string>;
|
|
34
|
+
readonly repairGuardHash?: Presence<string>;
|
|
35
|
+
readonly sourceQuarantineId?: Presence<string>;
|
|
36
|
+
readonly targetEntityRevision?: Applicability<number>;
|
|
37
|
+
readonly targetFieldRevisionHash?: Applicability<string>;
|
|
38
|
+
readonly targetCanonicalCommitId?: Applicability<string>;
|
|
39
|
+
readonly streamSequence: number;
|
|
40
|
+
}
|
|
41
|
+
/** Input for a System_State projection effect. */
|
|
42
|
+
export type SystemProjectionEffectInput = Omit<ProjectionEffectInput, "effectKind">;
|
|
43
|
+
/** Input for a User_Input candidate reconciliation effect. */
|
|
44
|
+
export type CandidateReconcileEffectInput = Omit<ProjectionEffectInput, "effectKind" | "projection"> & {
|
|
45
|
+
readonly projection?: typeof SYNC_GATEWAY_PROJECTIONS.USER_INPUT;
|
|
46
|
+
};
|
|
47
|
+
/** Input for a guarded physical deletion from a User_Input projection. */
|
|
48
|
+
export type UserInputDeleteEffectInput = Omit<ProjectionEffectInput, "effectKind" | "projection"> & {
|
|
49
|
+
readonly projection?: typeof SYNC_GATEWAY_PROJECTIONS.USER_INPUT;
|
|
50
|
+
};
|
|
51
|
+
/** Shared input for effects projected to the Sync_Conflicts control sheet. */
|
|
52
|
+
export type ResolutionEffectInput = Omit<ProjectionEffectInput, "effectKind" | "projection" | "targetKind"> & {
|
|
53
|
+
readonly projection?: typeof SYNC_GATEWAY_PROJECTIONS.SYNC_CONFLICTS;
|
|
54
|
+
};
|
|
55
|
+
/** Builds an immutable outbox row, including stable payload/dedupe identities. */
|
|
56
|
+
export declare function createProjectionEffect(input: ProjectionEffectInput): NewEffect;
|
|
57
|
+
/** Creates a canonical System_State projection effect. */
|
|
58
|
+
export declare function createSystemProjectionEffect(input: SystemProjectionEffectInput): NewEffect;
|
|
59
|
+
/** Creates a baseline-CAS User_Input reconcile that cannot overwrite a candidate. */
|
|
60
|
+
export declare function createCandidateReconcileEffect(input: CandidateReconcileEffectInput): NewEffect;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a full-row, candidate-preserving deletion for one User_Input row.
|
|
63
|
+
*
|
|
64
|
+
* The payload must represent the exact current visible row. The gateway can
|
|
65
|
+
* therefore remove only the anchored row that the canonical delete observed,
|
|
66
|
+
* while the worker blocks the effect if an unresolved user candidate exists.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createUserInputDeleteEffect(input: UserInputDeleteEffectInput): NewEffect;
|
|
69
|
+
/** Creates a guard-specific repair effect; caller must preserve the quarantine link. */
|
|
70
|
+
export declare function createSystemRepairEffect(input: Omit<ProjectionEffectInput, "effectKind">): NewEffect;
|
|
71
|
+
/** Creates the system-owned Sync_Conflicts control-row projection effect. */
|
|
72
|
+
export declare function createResolutionProjectionEffect(input: ResolutionEffectInput): NewEffect;
|
|
73
|
+
/**
|
|
74
|
+
* Creates a guarded deletion for one resolved system-owned conflict row.
|
|
75
|
+
*
|
|
76
|
+
* The payload carries the full currently visible conflict row as the expected
|
|
77
|
+
* state. The gateway therefore deletes only the exact anchored row that the
|
|
78
|
+
* resolver observed; it never deletes by mutable sheet row number.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createResolutionDeleteEffect(input: ResolutionEffectInput): NewEffect;
|
|
81
|
+
//# sourceMappingURL=ProjectionEffectFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionEffectFactory.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/projection/ProjectionEffectFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic outbox payload builders for all v1 Sheet projections.
|
|
3
|
+
*
|
|
4
|
+
* The public repository never exposes insert/update/delete mechanics here.
|
|
5
|
+
* These helpers translate a writer-approved canonical/candidate/resolution
|
|
6
|
+
* decision into one immutable effect payload; the effect worker later performs
|
|
7
|
+
* the remote compare-and-set through the gateway.
|
|
8
|
+
*/
|
|
9
|
+
import { EMPTY_ARRAY_LENGTH_ZERO, EMPTY_STRING_LENGTH_ZERO, NON_NEGATIVE_SAFE_INTEGER_MINIMUM, POSITIVE_SAFE_INTEGER_MINIMUM, stableHash, } from "../../../../domain/index.js";
|
|
10
|
+
import { APPLICABILITY_KINDS, PRESENCE_KINDS, } from "../../../../shared/state/index.js";
|
|
11
|
+
import { SYNC_GATEWAY_EFFECT_KINDS, SYNC_GATEWAY_PROJECTIONS, } from "../../gateway/constants.js";
|
|
12
|
+
import { computeSyncVisibleHash, serializeSyncProjectionEffectPayload, } from "../../gateway/syncGateway.js";
|
|
13
|
+
import { STORAGE_ERROR_CODES, StorageError, } from "../../../../infrastructure/storage/errors.js";
|
|
14
|
+
const PROJECTION_EFFECT_KINDS = {
|
|
15
|
+
SYSTEM_PROJECTION: "system_projection",
|
|
16
|
+
CANDIDATE_RECONCILE: "candidate_reconcile",
|
|
17
|
+
SYSTEM_REPAIR: "system_repair",
|
|
18
|
+
RESOLUTION_PROJECTION: "resolution_projection",
|
|
19
|
+
RESOLUTION_DELETE: SYNC_GATEWAY_EFFECT_KINDS.RESOLUTION_DELETE,
|
|
20
|
+
USER_INPUT_DELETE: SYNC_GATEWAY_EFFECT_KINDS.USER_INPUT_DELETE,
|
|
21
|
+
};
|
|
22
|
+
const PROJECTION_TARGET_KINDS = {
|
|
23
|
+
ENTITY: "entity",
|
|
24
|
+
ROW_BINDING: "row_binding",
|
|
25
|
+
PROJECTION_ROW: "projection_row",
|
|
26
|
+
CONFLICT: "conflict",
|
|
27
|
+
};
|
|
28
|
+
const EMPTY_VISIBLE_HASH = "";
|
|
29
|
+
/** Builds an immutable outbox row, including stable payload/dedupe identities. */
|
|
30
|
+
export function createProjectionEffect(input) {
|
|
31
|
+
validateInput(input);
|
|
32
|
+
const targetVisibleHash = computeSyncVisibleHash(input.fields);
|
|
33
|
+
if (isProjectionDeletionEffect(input.effectKind) && targetVisibleHash !== input.expectedVisibleHash) {
|
|
34
|
+
throwEffectError("projection deletion requires the full current visible hash");
|
|
35
|
+
}
|
|
36
|
+
const expectedCandidateHash = input.expectedCandidateHash ?? notApplicableValue();
|
|
37
|
+
const targetEntityRevision = input.targetEntityRevision ?? notApplicableValue();
|
|
38
|
+
const targetFieldRevisionHash = input.targetFieldRevisionHash ?? notApplicableValue();
|
|
39
|
+
const targetCanonicalCommitId = input.targetCanonicalCommitId ?? applicableValue(input.commitId);
|
|
40
|
+
const repairGuardHash = input.repairGuardHash ?? absentValue();
|
|
41
|
+
const sourceQuarantineId = input.sourceQuarantineId ?? absentValue();
|
|
42
|
+
const payloadJson = serializeSyncProjectionEffectPayload({
|
|
43
|
+
sheetName: input.sheetName,
|
|
44
|
+
registeredRange: input.registeredRange,
|
|
45
|
+
schemaVersion: input.schemaVersion,
|
|
46
|
+
targetAnchor: input.targetAnchor,
|
|
47
|
+
fields: input.fields,
|
|
48
|
+
targetVisibleHash,
|
|
49
|
+
createIfMissing: input.createIfMissing,
|
|
50
|
+
expectedCandidateHash,
|
|
51
|
+
});
|
|
52
|
+
const payloadHash = stableHash({ payloadJson });
|
|
53
|
+
return {
|
|
54
|
+
effectId: input.effectId,
|
|
55
|
+
effectKind: input.effectKind,
|
|
56
|
+
commitId: input.commitId,
|
|
57
|
+
logicalSheetId: input.logicalSheetId,
|
|
58
|
+
physicalSheetId: input.physicalSheetId,
|
|
59
|
+
projection: input.projection,
|
|
60
|
+
rowBindingId: input.rowBindingId,
|
|
61
|
+
conflictId: input.conflictId,
|
|
62
|
+
targetKind: input.targetKind,
|
|
63
|
+
targetId: input.targetId,
|
|
64
|
+
targetEntityRevision,
|
|
65
|
+
targetFieldRevisionHash,
|
|
66
|
+
targetCanonicalCommitId,
|
|
67
|
+
expectedVisibleRevision: input.expectedVisibleRevision,
|
|
68
|
+
expectedVisibleHash: input.expectedVisibleHash,
|
|
69
|
+
repairGuardHash,
|
|
70
|
+
sourceQuarantineId,
|
|
71
|
+
payloadJson,
|
|
72
|
+
payloadHash,
|
|
73
|
+
effectDedupeKey: stableHash({
|
|
74
|
+
effectKind: input.effectKind,
|
|
75
|
+
logicalSheetId: input.logicalSheetId,
|
|
76
|
+
physicalSheetId: input.physicalSheetId,
|
|
77
|
+
projection: input.projection,
|
|
78
|
+
targetKind: input.targetKind,
|
|
79
|
+
targetId: input.targetId,
|
|
80
|
+
targetCanonicalCommitId: stableApplicabilityValue(targetCanonicalCommitId),
|
|
81
|
+
payloadHash,
|
|
82
|
+
}),
|
|
83
|
+
streamSequence: input.streamSequence,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Creates a canonical System_State projection effect. */
|
|
87
|
+
export function createSystemProjectionEffect(input) {
|
|
88
|
+
if (input.projection !== SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE) {
|
|
89
|
+
throwEffectError("system projection must target system_state");
|
|
90
|
+
}
|
|
91
|
+
return createProjectionEffect({
|
|
92
|
+
...input,
|
|
93
|
+
effectKind: PROJECTION_EFFECT_KINDS.SYSTEM_PROJECTION,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** Creates a baseline-CAS User_Input reconcile that cannot overwrite a candidate. */
|
|
97
|
+
export function createCandidateReconcileEffect(input) {
|
|
98
|
+
return createProjectionEffect({
|
|
99
|
+
...input,
|
|
100
|
+
projection: SYNC_GATEWAY_PROJECTIONS.USER_INPUT,
|
|
101
|
+
effectKind: PROJECTION_EFFECT_KINDS.CANDIDATE_RECONCILE,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Creates a full-row, candidate-preserving deletion for one User_Input row.
|
|
106
|
+
*
|
|
107
|
+
* The payload must represent the exact current visible row. The gateway can
|
|
108
|
+
* therefore remove only the anchored row that the canonical delete observed,
|
|
109
|
+
* while the worker blocks the effect if an unresolved user candidate exists.
|
|
110
|
+
*/
|
|
111
|
+
export function createUserInputDeleteEffect(input) {
|
|
112
|
+
return createProjectionEffect({
|
|
113
|
+
...input,
|
|
114
|
+
projection: SYNC_GATEWAY_PROJECTIONS.USER_INPUT,
|
|
115
|
+
effectKind: PROJECTION_EFFECT_KINDS.USER_INPUT_DELETE,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/** Creates a guard-specific repair effect; caller must preserve the quarantine link. */
|
|
119
|
+
export function createSystemRepairEffect(input) {
|
|
120
|
+
requireNonEmptyPresence(input.repairGuardHash, "system repair requires a non-empty repairGuardHash");
|
|
121
|
+
requireNonEmptyPresence(input.sourceQuarantineId, "system repair requires a sourceQuarantineId");
|
|
122
|
+
return createProjectionEffect({
|
|
123
|
+
...input,
|
|
124
|
+
effectKind: PROJECTION_EFFECT_KINDS.SYSTEM_REPAIR,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/** Creates the system-owned Sync_Conflicts control-row projection effect. */
|
|
128
|
+
export function createResolutionProjectionEffect(input) {
|
|
129
|
+
requireConflictTarget(input.conflictId, input.targetId, "resolution projection must target exactly one conflict ID");
|
|
130
|
+
return createProjectionEffect({
|
|
131
|
+
...input,
|
|
132
|
+
projection: SYNC_GATEWAY_PROJECTIONS.SYNC_CONFLICTS,
|
|
133
|
+
targetKind: PROJECTION_TARGET_KINDS.CONFLICT,
|
|
134
|
+
effectKind: PROJECTION_EFFECT_KINDS.RESOLUTION_PROJECTION,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Creates a guarded deletion for one resolved system-owned conflict row.
|
|
139
|
+
*
|
|
140
|
+
* The payload carries the full currently visible conflict row as the expected
|
|
141
|
+
* state. The gateway therefore deletes only the exact anchored row that the
|
|
142
|
+
* resolver observed; it never deletes by mutable sheet row number.
|
|
143
|
+
*/
|
|
144
|
+
export function createResolutionDeleteEffect(input) {
|
|
145
|
+
requireConflictTarget(input.conflictId, input.targetId, "resolution deletion must target exactly one conflict ID");
|
|
146
|
+
return createProjectionEffect({
|
|
147
|
+
...input,
|
|
148
|
+
projection: SYNC_GATEWAY_PROJECTIONS.SYNC_CONFLICTS,
|
|
149
|
+
targetKind: PROJECTION_TARGET_KINDS.CONFLICT,
|
|
150
|
+
effectKind: PROJECTION_EFFECT_KINDS.RESOLUTION_DELETE,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
function validateInput(input) {
|
|
154
|
+
for (const [label, value] of [
|
|
155
|
+
["effect ID", input.effectId],
|
|
156
|
+
["commit ID", input.commitId],
|
|
157
|
+
["logical sheet ID", input.logicalSheetId],
|
|
158
|
+
["physical sheet ID", input.physicalSheetId],
|
|
159
|
+
["sheet name", input.sheetName],
|
|
160
|
+
["registered range", input.registeredRange],
|
|
161
|
+
["target ID", input.targetId],
|
|
162
|
+
["target anchor", input.targetAnchor],
|
|
163
|
+
]) {
|
|
164
|
+
requireNonEmptyText(value, label);
|
|
165
|
+
}
|
|
166
|
+
if (!Number.isSafeInteger(input.schemaVersion) ||
|
|
167
|
+
input.schemaVersion < POSITIVE_SAFE_INTEGER_MINIMUM ||
|
|
168
|
+
!Number.isSafeInteger(input.expectedVisibleRevision) ||
|
|
169
|
+
input.expectedVisibleRevision < NON_NEGATIVE_SAFE_INTEGER_MINIMUM ||
|
|
170
|
+
!Number.isSafeInteger(input.streamSequence) ||
|
|
171
|
+
input.streamSequence < POSITIVE_SAFE_INTEGER_MINIMUM) {
|
|
172
|
+
throwEffectError("projection effect has an invalid schema, visible revision, or stream sequence");
|
|
173
|
+
}
|
|
174
|
+
if (input.createIfMissing) {
|
|
175
|
+
if (input.expectedVisibleRevision !== NON_NEGATIVE_SAFE_INTEGER_MINIMUM ||
|
|
176
|
+
input.expectedVisibleHash !== EMPTY_VISIBLE_HASH) {
|
|
177
|
+
throwEffectError("new projection rows require an empty visible baseline");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (input.expectedVisibleHash.length === EMPTY_STRING_LENGTH_ZERO) {
|
|
181
|
+
throwEffectError("existing projection effects require an expected visible hash");
|
|
182
|
+
}
|
|
183
|
+
if (Object.keys(input.fields).length === EMPTY_ARRAY_LENGTH_ZERO) {
|
|
184
|
+
throwEffectError("projection effect must contain fields");
|
|
185
|
+
}
|
|
186
|
+
if (input.effectKind === PROJECTION_EFFECT_KINDS.CANDIDATE_RECONCILE &&
|
|
187
|
+
input.projection !== SYNC_GATEWAY_PROJECTIONS.USER_INPUT) {
|
|
188
|
+
throwEffectError("candidate reconcile must target user_input");
|
|
189
|
+
}
|
|
190
|
+
if ((input.effectKind === PROJECTION_EFFECT_KINDS.RESOLUTION_PROJECTION ||
|
|
191
|
+
input.effectKind === PROJECTION_EFFECT_KINDS.RESOLUTION_DELETE) &&
|
|
192
|
+
input.projection !== SYNC_GATEWAY_PROJECTIONS.SYNC_CONFLICTS) {
|
|
193
|
+
throwEffectError("resolution projection must target sync_conflicts");
|
|
194
|
+
}
|
|
195
|
+
if (isProjectionDeletionEffect(input.effectKind) &&
|
|
196
|
+
(input.createIfMissing || input.expectedVisibleRevision < POSITIVE_SAFE_INTEGER_MINIMUM)) {
|
|
197
|
+
throwEffectError("projection deletion requires an existing visible row");
|
|
198
|
+
}
|
|
199
|
+
if (input.effectKind === PROJECTION_EFFECT_KINDS.USER_INPUT_DELETE &&
|
|
200
|
+
(input.projection !== SYNC_GATEWAY_PROJECTIONS.USER_INPUT ||
|
|
201
|
+
input.targetKind !== PROJECTION_TARGET_KINDS.PROJECTION_ROW)) {
|
|
202
|
+
throwEffectError("user input deletion must target one User_Input projection row");
|
|
203
|
+
}
|
|
204
|
+
if (input.rowBindingId.kind === PRESENCE_KINDS.ABSENT &&
|
|
205
|
+
input.targetKind !== PROJECTION_TARGET_KINDS.CONFLICT) {
|
|
206
|
+
throwEffectError("non-conflict projection effect requires a row binding ID");
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function requireNonEmptyText(value, label) {
|
|
210
|
+
if (value.length === EMPTY_STRING_LENGTH_ZERO) {
|
|
211
|
+
throwEffectError(`${label} is required`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function requireNonEmptyPresence(value, message) {
|
|
215
|
+
if (value?.kind !== PRESENCE_KINDS.PRESENT || value.value.length === EMPTY_STRING_LENGTH_ZERO) {
|
|
216
|
+
throwEffectError(message);
|
|
217
|
+
}
|
|
218
|
+
return value.value;
|
|
219
|
+
}
|
|
220
|
+
function requireConflictTarget(conflictId, targetId, message) {
|
|
221
|
+
const value = requireNonEmptyPresence(conflictId, message);
|
|
222
|
+
if (targetId !== value)
|
|
223
|
+
throwEffectError(message);
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
function applicableValue(value) {
|
|
227
|
+
return { kind: APPLICABILITY_KINDS.APPLICABLE, value };
|
|
228
|
+
}
|
|
229
|
+
function notApplicableValue() {
|
|
230
|
+
return { kind: APPLICABILITY_KINDS.NOT_APPLICABLE };
|
|
231
|
+
}
|
|
232
|
+
function absentValue() {
|
|
233
|
+
return { kind: PRESENCE_KINDS.ABSENT };
|
|
234
|
+
}
|
|
235
|
+
function stableApplicabilityValue(value) {
|
|
236
|
+
return value.kind === APPLICABILITY_KINDS.APPLICABLE ? value.value : null;
|
|
237
|
+
}
|
|
238
|
+
function isProjectionDeletionEffect(effectKind) {
|
|
239
|
+
return effectKind === PROJECTION_EFFECT_KINDS.RESOLUTION_DELETE ||
|
|
240
|
+
effectKind === PROJECTION_EFFECT_KINDS.USER_INPUT_DELETE;
|
|
241
|
+
}
|
|
242
|
+
function throwEffectError(message) {
|
|
243
|
+
throw new StorageError(STORAGE_ERROR_CODES.INVALID_EFFECT_OPTIONS, message);
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=ProjectionEffectFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionEffectFactory.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/projection/ProjectionEffectFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Periodic reconciliation scanner for the System_State projection.
|
|
3
|
+
*
|
|
4
|
+
* SQLite is the canonical state; the Sheet is a projection that may drift when
|
|
5
|
+
* the fast-append path skips per-effect CAS, when a spreadsheet owner edits a
|
|
6
|
+
* protected tab, or when a response is lost. This scanner compares the durable
|
|
7
|
+
* desired state against one gateway snapshot per scan and, for every drift, it
|
|
8
|
+
* enqueues a normal system_projection effect on the existing outbox. The effect
|
|
9
|
+
* worker then applies the correction through the same slow path (with CAS) used
|
|
10
|
+
* by regular writes, so reconciliation never writes to the Sheet directly.
|
|
11
|
+
*
|
|
12
|
+
* Scope is intentionally limited to System_State in v1: that projection is
|
|
13
|
+
* protected and hidden, so the canonical state is always authoritative and a
|
|
14
|
+
* drift is always a repair target. User_Input reconciliation remains the
|
|
15
|
+
* responsibility of the candidate/conflict pipeline.
|
|
16
|
+
*/
|
|
17
|
+
import type { SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
|
|
18
|
+
import { type SyncSheetGateway } from "../../gateway/syncGateway.js";
|
|
19
|
+
/** Builder used by the scanner to produce fresh effect/commit identifiers. */
|
|
20
|
+
export type ReconciliationIdFactory = () => string;
|
|
21
|
+
/** Construction options for a single reconciliation scan. */
|
|
22
|
+
export interface RunReconciliationScanOptions {
|
|
23
|
+
readonly storage: SqlStorageAdapter;
|
|
24
|
+
readonly gateway: SyncSheetGateway;
|
|
25
|
+
/** Physical sheet id of the System_State projection to reconcile. */
|
|
26
|
+
readonly physicalSheetId: string;
|
|
27
|
+
/** Logical sheet id owning the entity row bindings. */
|
|
28
|
+
readonly logicalSheetId: string;
|
|
29
|
+
/**
|
|
30
|
+
* Schema-declared field list for the System_State projection. The scanner
|
|
31
|
+
* reads exactly these fields per row and ignores anything else in the Sheet.
|
|
32
|
+
*/
|
|
33
|
+
readonly systemFields: readonly string[];
|
|
34
|
+
/**
|
|
35
|
+
* Field name that encodes a tombstone (soft delete) on the System_State
|
|
36
|
+
* projection. Defaults to `_deleted`; tombstoned rows are dropped from the
|
|
37
|
+
* desired state and re-created if the Sheet still exposes them.
|
|
38
|
+
*/
|
|
39
|
+
readonly tombstoneField?: string;
|
|
40
|
+
/** Schema version shared by every System_State effect produced here. */
|
|
41
|
+
readonly schemaVersion: number;
|
|
42
|
+
/** Reconciler writer identity. */
|
|
43
|
+
readonly writerId: string;
|
|
44
|
+
/** Injectable clock and id source for deterministic tests. */
|
|
45
|
+
readonly now?: () => number;
|
|
46
|
+
readonly createId?: ReconciliationIdFactory;
|
|
47
|
+
/** Override the reconciler lease role or duration. */
|
|
48
|
+
readonly writerRole?: string;
|
|
49
|
+
readonly leaseDurationMs?: number;
|
|
50
|
+
/** Observability hook invoked once after the scan settles. */
|
|
51
|
+
readonly onReport?: (report: ReconciliationScanReport) => void;
|
|
52
|
+
}
|
|
53
|
+
/** Observable outcome of one reconciliation scan. */
|
|
54
|
+
export interface ReconciliationScanReport {
|
|
55
|
+
readonly physicalSheetId: string;
|
|
56
|
+
readonly snapshotRowsScanned: number;
|
|
57
|
+
readonly desiredRowsScanned: number;
|
|
58
|
+
readonly matchedRows: number;
|
|
59
|
+
readonly driftedRows: number;
|
|
60
|
+
readonly missingRows: number;
|
|
61
|
+
readonly extraRows: number;
|
|
62
|
+
readonly effectsEnqueued: number;
|
|
63
|
+
readonly fenceClaimed: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Runs one reconciliation scan and enqueues correction effects for drift.
|
|
67
|
+
*
|
|
68
|
+
* The scan never writes to the Sheet. It only reads a snapshot and inserts
|
|
69
|
+
* effects into the durable outbox; the existing effect worker applies them.
|
|
70
|
+
*/
|
|
71
|
+
export declare function runReconciliationScan(options: RunReconciliationScanOptions): Promise<ReconciliationScanReport>;
|
|
72
|
+
export declare const RECONCILIATION_DEFAULTS: {
|
|
73
|
+
readonly ROLE: "typed-sheets-reconciler";
|
|
74
|
+
readonly LEASE_MS: 60000;
|
|
75
|
+
readonly TOMBSTONE_FIELD: "_deleted";
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=ReconciliationScanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReconciliationScanner.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/reconciliation/ReconciliationScanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuBH,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAWtC,8EAA8E;AAC9E,MAAM,MAAM,uBAAuB,GAAG,MAAM,MAAM,CAAC;AAEnD,6DAA6D;AAC7D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAChE;AAED,qDAAqD;AACrD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAoED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAkCnC;AA2iBD,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC"}
|