hikoutei 0.3.0 → 0.3.1
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/README.ja.md +13 -21
- package/README.ko.md +14 -22
- package/README.md +25 -29
- package/dist/adapter/persistence/contracts/sql.d.ts +16 -2
- package/dist/adapter/persistence/contracts/sql.d.ts.map +1 -1
- package/dist/adapter/persistence/contracts/sql.js +11 -1
- package/dist/adapter/persistence/contracts/sql.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmScalarPersistenceProvider.d.ts +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmScalarPersistenceProvider.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmScalarPersistenceProvider.js +40 -14
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmScalarPersistenceProvider.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.d.ts +2 -0
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.js +23 -8
- package/dist/adapter/persistence/providers/mikro-orm/api/MikroOrmTypedSheetsEntityManager.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts +13 -4
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js +12 -2
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.d.ts +21 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.js +59 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.d.ts +14 -13
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.js +43 -64
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.js +4 -2
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmTypedSheetsEngine.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js +1 -2
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts +61 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js +186 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.d.ts +56 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js +275 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts +11 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js +345 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.d.ts +65 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.js +51 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingState.d.ts +36 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingState.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingState.js +126 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingState.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.d.ts +11 -2
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.js +39 -0
- package/dist/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +46 -35
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +22 -4
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts +2 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +47 -54
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js +6 -30
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +79 -22
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts +2 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts +5 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js +19 -4
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js +5 -6
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts +2 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js +2 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts +2 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +15 -19
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +44 -30
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts +3 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.js +10 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.js.map +1 -0
- package/dist/api/Hikoutei.d.ts +17 -50
- package/dist/api/Hikoutei.d.ts.map +1 -1
- package/dist/api/Hikoutei.js +46 -105
- package/dist/api/Hikoutei.js.map +1 -1
- package/dist/api/entity.d.ts +9 -10
- package/dist/api/entity.d.ts.map +1 -1
- package/dist/api/entity.js +20 -26
- package/dist/api/entity.js.map +1 -1
- package/dist/api/errors.d.ts +0 -6
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +0 -6
- package/dist/api/errors.js.map +1 -1
- package/dist/api/index.d.ts +4 -4
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +2 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/internalEntityManager.d.ts.map +1 -1
- package/dist/api/internalEntityManager.js +33 -19
- package/dist/api/internalEntityManager.js.map +1 -1
- package/dist/application/orm/mapping/contracts.d.ts +16 -6
- package/dist/application/orm/mapping/contracts.d.ts.map +1 -1
- package/dist/application/orm/mapping/definition.d.ts.map +1 -1
- package/dist/application/orm/mapping/definition.js +47 -8
- package/dist/application/orm/mapping/definition.js.map +1 -1
- package/dist/application/orm/mapping/identity.js +1 -1
- package/dist/application/orm/mapping/identity.js.map +1 -1
- package/dist/application/orm/mapping/projection.d.ts.map +1 -1
- package/dist/application/orm/mapping/projection.js +10 -2
- package/dist/application/orm/mapping/projection.js.map +1 -1
- package/dist/application/orm/mapping/values.d.ts.map +1 -1
- package/dist/application/orm/mapping/values.js +5 -35
- package/dist/application/orm/mapping/values.js.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts +3 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.js +4 -3
- package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js +2 -1
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js.map +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.d.ts +3 -1
- package/dist/application/orm/persistence/projection/projectionEffects.d.ts.map +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.js +14 -16
- package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
- package/dist/application/orm/persistence/scalar/unitOfWork.d.ts +6 -6
- package/dist/application/orm/persistence/scalar/unitOfWork.d.ts.map +1 -1
- package/dist/application/orm/persistence/scalar/unitOfWork.js +28 -28
- package/dist/application/orm/persistence/scalar/unitOfWork.js.map +1 -1
- package/dist/application/orm/persistence/support/businessKeys.d.ts.map +1 -1
- package/dist/application/orm/persistence/support/businessKeys.js +6 -24
- package/dist/application/orm/persistence/support/businessKeys.js.map +1 -1
- package/dist/application/orm/persistence/support/canonicalState.d.ts.map +1 -1
- package/dist/application/orm/persistence/support/canonicalState.js +9 -25
- package/dist/application/orm/persistence/support/canonicalState.js.map +1 -1
- package/dist/application/orm/persistence/support/contracts.d.ts +0 -57
- package/dist/application/orm/persistence/support/contracts.d.ts.map +1 -1
- package/dist/application/orm/persistence/support/contracts.js +0 -68
- package/dist/application/orm/persistence/support/contracts.js.map +1 -1
- package/dist/application/orm/persistence/support/helpers.d.ts +1 -11
- package/dist/application/orm/persistence/support/helpers.d.ts.map +1 -1
- package/dist/application/orm/persistence/support/helpers.js +1 -21
- package/dist/application/orm/persistence/support/helpers.js.map +1 -1
- package/dist/application/sync/gateway/constants.d.ts +2 -1
- package/dist/application/sync/gateway/constants.d.ts.map +1 -1
- package/dist/application/sync/gateway/constants.js +4 -3
- package/dist/application/sync/gateway/constants.js.map +1 -1
- package/dist/application/sync/gateway/syncGateway.d.ts.map +1 -1
- package/dist/application/sync/gateway/syncGateway.js +9 -28
- package/dist/application/sync/gateway/syncGateway.js.map +1 -1
- package/dist/application/sync/gateway/validation.d.ts +5 -0
- package/dist/application/sync/gateway/validation.d.ts.map +1 -1
- package/dist/application/sync/gateway/validation.js +22 -3
- package/dist/application/sync/gateway/validation.js.map +1 -1
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts.map +1 -1
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.js +3 -23
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +2 -0
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +24 -6
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js +35 -34
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +0 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +8 -37
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +2 -2
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts +0 -5
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +3 -10
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +13 -21
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +15 -3
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -1
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts.map +1 -1
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +1 -10
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +5 -9
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
- package/dist/application/sync/service/SyncPollingSupervisor.d.ts +45 -0
- package/dist/application/sync/service/SyncPollingSupervisor.d.ts.map +1 -0
- package/dist/application/sync/service/SyncPollingSupervisor.js +142 -0
- package/dist/application/sync/service/SyncPollingSupervisor.js.map +1 -0
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts +63 -0
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -0
- package/dist/application/sync/service/SyncServiceBootstrap.js +223 -0
- package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -0
- package/dist/application/sync/service/contracts.d.ts +25 -0
- package/dist/application/sync/service/contracts.d.ts.map +1 -0
- package/dist/application/sync/service/contracts.js +3 -0
- package/dist/application/sync/service/contracts.js.map +1 -0
- package/dist/application/sync/service/errors.d.ts +15 -0
- package/dist/application/sync/service/errors.d.ts.map +1 -0
- package/dist/application/sync/service/errors.js +16 -0
- package/dist/application/sync/service/errors.js.map +1 -0
- package/dist/domain/errors/types.d.ts +1 -1
- package/dist/domain/errors/types.d.ts.map +1 -1
- package/dist/domain/errors/types.js +2 -2
- package/dist/domain/errors/types.js.map +1 -1
- package/dist/domain/evaluate/constants.d.ts +1 -1
- package/dist/domain/evaluate/constants.d.ts.map +1 -1
- package/dist/domain/evaluate/constants.js.map +1 -1
- package/dist/domain/evaluate/preconditions.d.ts.map +1 -1
- package/dist/domain/evaluate/preconditions.js +25 -32
- package/dist/domain/evaluate/preconditions.js.map +1 -1
- package/dist/domain/evaluate/quarantine.js +4 -1
- package/dist/domain/evaluate/quarantine.js.map +1 -1
- package/dist/domain/model/constants.d.ts +48 -0
- package/dist/domain/model/constants.d.ts.map +1 -1
- package/dist/domain/model/constants.js +38 -0
- package/dist/domain/model/constants.js.map +1 -1
- package/dist/domain/model/index.d.ts +2 -2
- package/dist/domain/model/index.d.ts.map +1 -1
- package/dist/domain/model/index.js +1 -1
- package/dist/domain/model/index.js.map +1 -1
- package/dist/domain/model/types.d.ts +13 -10
- package/dist/domain/model/types.d.ts.map +1 -1
- package/dist/infrastructure/storage/constants.d.ts +1 -1
- package/dist/infrastructure/storage/constants.d.ts.map +1 -1
- package/dist/infrastructure/storage/constants.js.map +1 -1
- package/dist/infrastructure/storage/errors.d.ts +2 -2
- package/dist/infrastructure/storage/errors.d.ts.map +1 -1
- package/dist/infrastructure/storage/errors.js +3 -5
- package/dist/infrastructure/storage/errors.js.map +1 -1
- package/dist/infrastructure/storage/index.d.ts +9 -5
- package/dist/infrastructure/storage/index.d.ts.map +1 -1
- package/dist/infrastructure/storage/index.js +3 -1
- package/dist/infrastructure/storage/index.js.map +1 -1
- package/dist/infrastructure/storage/sqlite/migrateSchema.js +9 -4
- package/dist/infrastructure/storage/sqlite/migrateSchema.js.map +1 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts +9 -0
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +35 -36
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts +8 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js +14 -0
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.js +4 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts +11 -1
- package/dist/infrastructure/storage/state/observation/observationCanonical.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationCanonical.js +108 -0
- package/dist/infrastructure/storage/state/observation/observationCanonical.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts +36 -1
- package/dist/infrastructure/storage/state/observation/observationQuarantine.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationQuarantine.js +55 -0
- package/dist/infrastructure/storage/state/observation/observationQuarantine.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +22 -0
- package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationTypes.js +5 -0
- package/dist/infrastructure/storage/state/observation/observationTypes.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationValidation.d.ts +1 -1
- package/dist/infrastructure/storage/state/observation/observationValidation.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationValidation.js +26 -0
- package/dist/infrastructure/storage/state/observation/observationValidation.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationWriter.d.ts +1 -1
- package/dist/infrastructure/storage/state/observation/observationWriter.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationWriter.js +5 -1
- package/dist/infrastructure/storage/state/observation/observationWriter.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +3 -2
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts +1 -5
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js +3 -43
- package/dist/infrastructure/storage/state/resolution/resolutionWriterHelpers.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +2 -4
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +2 -2
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +20 -10
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +33 -18
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +2 -4
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts +6 -2
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js +157 -14
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/reconciliationSql.d.ts +1 -1
- package/dist/infrastructure/storage/sync/outbound/reconciliationSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/reconciliationSql.js +14 -1
- package/dist/infrastructure/storage/sync/outbound/reconciliationSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +2 -1
- package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/shared/syncRegistry.js +4 -1
- package/dist/infrastructure/storage/sync/shared/syncRegistry.js.map +1 -1
- package/dist/infrastructure/storage/sync/shared/writerLease.d.ts +4 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/shared/writerLease.js +9 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.js.map +1 -1
- package/dist/shared/constants.d.ts +4 -4
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/encoding/index.d.ts +1 -0
- package/dist/shared/encoding/index.d.ts.map +1 -1
- package/dist/shared/encoding/index.js +1 -0
- package/dist/shared/encoding/index.js.map +1 -1
- package/dist/shared/encoding/normalizedCell.d.ts +4 -0
- package/dist/shared/encoding/normalizedCell.d.ts.map +1 -0
- package/dist/shared/encoding/normalizedCell.js +29 -0
- package/dist/shared/encoding/normalizedCell.js.map +1 -0
- package/dist/shared/encoding/stableEncode.d.ts +2 -1
- package/dist/shared/encoding/stableEncode.d.ts.map +1 -1
- package/dist/shared/encoding/stableEncode.js +6 -12
- package/dist/shared/encoding/stableEncode.js.map +1 -1
- package/dist/shared/identity/index.d.ts +3 -0
- package/dist/shared/identity/index.d.ts.map +1 -0
- package/dist/shared/identity/index.js +2 -0
- package/dist/shared/identity/index.js.map +1 -0
- package/dist/shared/identity/types.d.ts +41 -0
- package/dist/shared/identity/types.d.ts.map +1 -0
- package/dist/shared/identity/types.js +34 -0
- package/dist/shared/identity/types.js.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/state/constructors.d.ts +10 -0
- package/dist/shared/state/constructors.d.ts.map +1 -0
- package/dist/shared/state/constructors.js +18 -0
- package/dist/shared/state/constructors.js.map +1 -0
- package/dist/shared/state/index.d.ts +1 -0
- package/dist/shared/state/index.d.ts.map +1 -1
- package/dist/shared/state/index.js +1 -0
- package/dist/shared/state/index.js.map +1 -1
- package/dist/shared/validation.d.ts +2 -0
- package/dist/shared/validation.d.ts.map +1 -1
- package/dist/shared/validation.js +9 -0
- package/dist/shared/validation.js.map +1 -1
- package/docs/architecture.md +108 -103
- package/docs/ci.md +184 -61
- package/docs/mikro-orm-adapter-spike.md +55 -214
- package/docs/quick-start.md +58 -96
- package/docs/write-and-synchronization-flow.md +70 -39
- package/package.json +1 -1
package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingState.js
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/** Converts raw polling SQL rows into semantic lookup maps for observation. */
|
|
2
|
+
import { ROW_BINDING_STATES, } from "../../../../../domain/index.js";
|
|
3
|
+
import { parseNormalizedCell, requireConflictStatus, } from "../../../../../infrastructure/storage/state/resolution/resolutionWriterHelpers.js";
|
|
4
|
+
import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../../../../../application/orm/errors.js";
|
|
5
|
+
/** Builds all lookup maps consumed by snapshot inspection and evaluation. */
|
|
6
|
+
export function buildPollingState(bindingRows, entityRows, fieldRows, businessKeyRows, conflictRows, visibleRows) {
|
|
7
|
+
return {
|
|
8
|
+
bindingsByEntityId: buildRowBindings(bindingRows),
|
|
9
|
+
entitiesById: buildEntityState(entityRows, buildCanonicalFields(fieldRows)),
|
|
10
|
+
businessKeysByLogicalAndField: buildBusinessKeyIndex(businessKeyRows),
|
|
11
|
+
conflictsByBindingAndField: buildConflicts(conflictRows),
|
|
12
|
+
visibleRevisionsByPhysicalAndBinding: buildVisibleRevisions(visibleRows),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function buildCanonicalFields(rows) {
|
|
16
|
+
const fieldsByEntity = new Map();
|
|
17
|
+
for (const row of rows) {
|
|
18
|
+
const fields = fieldsByEntity.get(row.entity_id) ?? new Map();
|
|
19
|
+
fields.set(row.field_name, {
|
|
20
|
+
value: parseNormalizedCell(row.normalized_value, `${row.entity_id}.${row.field_name}`),
|
|
21
|
+
fieldRevision: row.field_revision,
|
|
22
|
+
});
|
|
23
|
+
fieldsByEntity.set(row.entity_id, fields);
|
|
24
|
+
}
|
|
25
|
+
return fieldsByEntity;
|
|
26
|
+
}
|
|
27
|
+
function buildEntityState(rows, fieldsByEntity) {
|
|
28
|
+
const entitiesById = new Map();
|
|
29
|
+
for (const row of rows) {
|
|
30
|
+
if (row.status !== "active" && row.status !== "tombstoned") {
|
|
31
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_ENTITY_MAPPING, `unknown canonical entity status: ${row.status}.`);
|
|
32
|
+
}
|
|
33
|
+
entitiesById.set(row.entity_id, {
|
|
34
|
+
entityId: row.entity_id,
|
|
35
|
+
entityRevision: row.entity_revision,
|
|
36
|
+
status: row.status,
|
|
37
|
+
fields: fieldsByEntity.get(row.entity_id) ?? new Map(),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return entitiesById;
|
|
41
|
+
}
|
|
42
|
+
function buildRowBindings(rows) {
|
|
43
|
+
const bindingsByEntityId = new Map();
|
|
44
|
+
for (const row of rows) {
|
|
45
|
+
if (!isRowBindingState(row.state)) {
|
|
46
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.INVALID_ENTITY_MAPPING, `unknown row binding state: ${row.state}.`);
|
|
47
|
+
}
|
|
48
|
+
const record = {
|
|
49
|
+
rowBindingId: row.row_binding_id,
|
|
50
|
+
logicalSheetId: row.logical_sheet_id,
|
|
51
|
+
anchorReference: row.anchor_reference,
|
|
52
|
+
entityId: row.entity_id,
|
|
53
|
+
state: row.state,
|
|
54
|
+
candidateEpoch: row.candidate_epoch,
|
|
55
|
+
};
|
|
56
|
+
if (row.entity_id !== null) {
|
|
57
|
+
const byEntityId = bindingsByEntityId.get(row.logical_sheet_id) ?? new Map();
|
|
58
|
+
byEntityId.set(row.entity_id, record);
|
|
59
|
+
bindingsByEntityId.set(row.logical_sheet_id, byEntityId);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return bindingsByEntityId;
|
|
63
|
+
}
|
|
64
|
+
function buildBusinessKeyIndex(rows) {
|
|
65
|
+
const businessKeysByLogicalAndField = new Map();
|
|
66
|
+
for (const row of rows) {
|
|
67
|
+
if (row.state !== "active")
|
|
68
|
+
continue;
|
|
69
|
+
const byField = businessKeysByLogicalAndField.get(row.logical_sheet_id) ?? new Map();
|
|
70
|
+
const byKey = byField.get(row.field_name) ?? new Map();
|
|
71
|
+
byKey.set(row.normalized_key, row.entity_id);
|
|
72
|
+
byField.set(row.field_name, byKey);
|
|
73
|
+
businessKeysByLogicalAndField.set(row.logical_sheet_id, byField);
|
|
74
|
+
}
|
|
75
|
+
return businessKeysByLogicalAndField;
|
|
76
|
+
}
|
|
77
|
+
function buildConflicts(rows) {
|
|
78
|
+
const conflictsByBindingAndField = new Map();
|
|
79
|
+
for (const row of rows) {
|
|
80
|
+
const byField = conflictsByBindingAndField.get(row.row_binding_id) ?? new Map();
|
|
81
|
+
byField.set(row.field_name, {
|
|
82
|
+
conflictId: row.conflict_id,
|
|
83
|
+
conflictGroupId: nullablePresence(row.conflict_group_id),
|
|
84
|
+
eventId: row.event_id,
|
|
85
|
+
rowBindingId: row.row_binding_id,
|
|
86
|
+
entityId: row.entity_id,
|
|
87
|
+
fieldName: row.field_name,
|
|
88
|
+
userValue: parseNormalizedCell(row.user_value, `${row.conflict_id}.user_value`),
|
|
89
|
+
userBaseRevision: row.user_base_revision,
|
|
90
|
+
canonicalValueAtDetection: parseNormalizedCell(row.canonical_value_at_detection, `${row.conflict_id}.canonical_value_at_detection`),
|
|
91
|
+
canonicalRevisionAtDetection: row.canonical_revision_at_detection,
|
|
92
|
+
currentCanonicalValue: parseNormalizedCell(row.current_canonical_value, `${row.conflict_id}.current_canonical_value`),
|
|
93
|
+
currentCanonicalRevision: row.current_canonical_revision,
|
|
94
|
+
candidateEpoch: row.candidate_epoch,
|
|
95
|
+
status: requireConflictStatus(row.status),
|
|
96
|
+
resolutionCommandId: nullablePresence(row.resolution_command_id),
|
|
97
|
+
});
|
|
98
|
+
conflictsByBindingAndField.set(row.row_binding_id, byField);
|
|
99
|
+
}
|
|
100
|
+
return conflictsByBindingAndField;
|
|
101
|
+
}
|
|
102
|
+
function buildVisibleRevisions(rows) {
|
|
103
|
+
const visibleRevisionsByPhysicalAndBinding = new Map();
|
|
104
|
+
for (const row of rows) {
|
|
105
|
+
const byBinding = visibleRevisionsByPhysicalAndBinding.get(row.physical_sheet_id) ?? new Map();
|
|
106
|
+
byBinding.set(row.row_binding_id, {
|
|
107
|
+
confirmedVisibleHash: row.confirmed_snapshot_hash,
|
|
108
|
+
confirmedVisibleRevision: row.confirmed_visible_revision,
|
|
109
|
+
confirmedEntityRevision: row.confirmed_entity_revision,
|
|
110
|
+
});
|
|
111
|
+
visibleRevisionsByPhysicalAndBinding.set(row.physical_sheet_id, byBinding);
|
|
112
|
+
}
|
|
113
|
+
return visibleRevisionsByPhysicalAndBinding;
|
|
114
|
+
}
|
|
115
|
+
function isRowBindingState(value) {
|
|
116
|
+
return value === ROW_BINDING_STATES.CANDIDATE ||
|
|
117
|
+
value === ROW_BINDING_STATES.ACTIVE ||
|
|
118
|
+
value === ROW_BINDING_STATES.TOMBSTONED ||
|
|
119
|
+
value === ROW_BINDING_STATES.AMBIGUOUS;
|
|
120
|
+
}
|
|
121
|
+
function nullablePresence(value) {
|
|
122
|
+
return value === null
|
|
123
|
+
? { kind: "absent" }
|
|
124
|
+
: { kind: "present", value };
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=MikroOrmUserInputPollingState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MikroOrmUserInputPollingState.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingState.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,15 +19,24 @@ export interface InitializeMikroOrmSqliteAdapterOptions {
|
|
|
19
19
|
/** Optional MikroORM settings that do not select a different database or driver. */
|
|
20
20
|
readonly configuration?: MikroOrmSqliteConfiguration;
|
|
21
21
|
}
|
|
22
|
+
/** Explicit native mutation capability used only by the inbound observation bridge. */
|
|
23
|
+
export interface MikroOrmNativeEntityWriter {
|
|
24
|
+
findOne(entityName: unknown, where: Record<string, unknown>): Promise<object | null>;
|
|
25
|
+
insert(entityName: unknown, data: Record<string, unknown>): Promise<unknown>;
|
|
26
|
+
nativeUpdate(entityName: unknown, where: Record<string, unknown>, data: Record<string, unknown>): Promise<number>;
|
|
27
|
+
nativeDelete(entityName: unknown, where: Record<string, unknown>): Promise<number>;
|
|
28
|
+
}
|
|
22
29
|
/**
|
|
23
30
|
* Adapter-specific transaction context for code that intentionally needs
|
|
24
31
|
* MikroORM entity lifecycle operations alongside typed-sheets storage SQL.
|
|
25
32
|
*
|
|
26
|
-
* Core storage must use `sql`; `entityManager`
|
|
27
|
-
* integration code and never
|
|
33
|
+
* Core storage must use `sql`; `entityManager` and `nativeWriter` are explicit
|
|
34
|
+
* escape hatches for integration code and never appear in the adapter-neutral contract.
|
|
28
35
|
*/
|
|
29
36
|
export interface MikroOrmSqliteTransaction extends SqlStorageContext {
|
|
30
37
|
readonly entityManager: MikroOrmSqliteEntityManager;
|
|
38
|
+
/** Explicit native mutation capability used by inbound observation writes. */
|
|
39
|
+
readonly nativeWriter: MikroOrmNativeEntityWriter;
|
|
31
40
|
}
|
|
32
41
|
/**
|
|
33
42
|
* Connects typed-sheets storage SQL to one MikroORM-managed SQLite database.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MikroOrmSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,YAAY,EAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EAER,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MikroOrmSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MikroORM, NodeSqliteDialect, SqliteDriver, } from "@mikro-orm/sql";
|
|
2
|
+
import { isRecord } from "../../../../../shared/encoding/typeGuards.js";
|
|
2
3
|
/**
|
|
3
4
|
* Connects typed-sheets storage SQL to one MikroORM-managed SQLite database.
|
|
4
5
|
*
|
|
@@ -84,9 +85,41 @@ function createStorageContext(entityManager) {
|
|
|
84
85
|
function createMikroOrmTransaction(entityManager) {
|
|
85
86
|
return {
|
|
86
87
|
entityManager,
|
|
88
|
+
nativeWriter: createMikroOrmNativeEntityWriter(entityManager),
|
|
87
89
|
sql: new MikroOrmSqlExecutor(entityManager),
|
|
88
90
|
};
|
|
89
91
|
}
|
|
92
|
+
/** Adapts native MikroORM writes without pretending the public manager has them. */
|
|
93
|
+
function createMikroOrmNativeEntityWriter(entityManager) {
|
|
94
|
+
return {
|
|
95
|
+
async findOne(entityName, where) {
|
|
96
|
+
const result = await Reflect.apply(entityManager.findOne, entityManager, [entityName, where]);
|
|
97
|
+
if (result === null)
|
|
98
|
+
return null;
|
|
99
|
+
if (typeof result !== "object") {
|
|
100
|
+
throw new TypeError("MikroORM findOne result must be an entity object or null");
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
},
|
|
104
|
+
insert(entityName, data) {
|
|
105
|
+
return Reflect.apply(entityManager.insert, entityManager, [entityName, data]);
|
|
106
|
+
},
|
|
107
|
+
async nativeUpdate(entityName, where, data) {
|
|
108
|
+
const result = await Reflect.apply(entityManager.nativeUpdate, entityManager, [entityName, where, data]);
|
|
109
|
+
if (typeof result !== "number" || !Number.isSafeInteger(result)) {
|
|
110
|
+
throw new TypeError("MikroORM nativeUpdate result must be a safe integer");
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
},
|
|
114
|
+
async nativeDelete(entityName, where) {
|
|
115
|
+
const result = await Reflect.apply(entityManager.nativeDelete, entityManager, [entityName, where]);
|
|
116
|
+
if (typeof result !== "number" || !Number.isSafeInteger(result)) {
|
|
117
|
+
throw new TypeError("MikroORM nativeDelete result must be a safe integer");
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
90
123
|
/** Maps the transaction-aware MikroORM raw-query API to the neutral SQL contract. */
|
|
91
124
|
class MikroOrmSqlExecutor {
|
|
92
125
|
entityManager;
|
|
@@ -95,10 +128,16 @@ class MikroOrmSqlExecutor {
|
|
|
95
128
|
}
|
|
96
129
|
async all(sql, parameters = []) {
|
|
97
130
|
const rows = await this.entityManager.execute(sql, [...parameters], "all");
|
|
131
|
+
if (!Array.isArray(rows) || !rows.every(isRecord)) {
|
|
132
|
+
throw new TypeError("SQL all result must be an array of object rows");
|
|
133
|
+
}
|
|
98
134
|
return rows;
|
|
99
135
|
}
|
|
100
136
|
async get(sql, parameters = []) {
|
|
101
137
|
const row = await this.entityManager.execute(sql, [...parameters], "get");
|
|
138
|
+
if (row !== undefined && !isRecord(row)) {
|
|
139
|
+
throw new TypeError("SQL get result must be an object row");
|
|
140
|
+
}
|
|
102
141
|
return row;
|
|
103
142
|
}
|
|
104
143
|
async run(sql, parameters = []) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MikroOrmSqliteAdapter.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,GACb,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MikroOrmSqliteAdapter.js","sourceRoot":"","sources":["../../../../../../src/adapter/persistence/providers/mikro-orm/storage/MikroOrmSqliteAdapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectOperation.d.ts","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,oCAAoC,EAErC,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"effectOperation.d.ts","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,oCAAoC,EAErC,MAAM,2DAA2D,CAAC;AAgBnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AASxF,QAAA,MAAM,sBAAsB;;;;CAIlB,CAAC;AAEX,UAAU,2BAA2B;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,sCAAsC,GAAG,uBAAuB,GAC1E,2BAA2B,CAAC;AAE9B,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,sBAAsB,CAAC,KAAK,CAAC;CACpD,GAAG,sCAAsC,CAAC;AAE3C,MAAM,MAAM,8CAA8C,GAAG;IAC3D,QAAQ,CAAC,IAAI,EAAE,OAAO,sBAAsB,CAAC,QAAQ,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC,GAAG,2BAA2B,CAAC;AAEhC,MAAM,MAAM,+CAA+C,GAAG;IAC5D,QAAQ,CAAC,IAAI,EAAE,OAAO,sBAAsB,CAAC,UAAU,CAAC;IACxD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,GAAG,2BAA2B,CAAC;AAEhC,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sCAAsC,GAC9C,6BAA6B,CAAC,mCAAmC,EAAE,sBAAsB,CAAC,CAO5F;AAED,oDAAoD;AACpD,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,IAAI,CAAC,8CAA8C,EAAE,MAAM,CAAC,GACpE,6BAA6B,CAC9B,8CAA8C,EAC9C,uBAAuB,CACxB,CAOA;AAED,iEAAiE;AACjE,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,IAAI,CAAC,+CAA+C,EAAE,MAAM,CAAC,GACrE,6BAA6B,CAC9B,+CAA+C,EAC/C,SAAS,oCAAoC,EAAE,CAChD,CAOA"}
|
package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/** Thin-Gateway operations for regular projection effects and recovery reads. */
|
|
2
2
|
import { SYNC_GATEWAY_EFFECT_RESULT_STATUSES, SYNC_GATEWAY_POSTCONDITION_DISPOSITIONS, SYNC_GATEWAY_POSTCONDITION_STATUSES, } from "../../../../../../application/sync/gateway/constants.js";
|
|
3
3
|
import { SYNC_GATEWAY_ERROR_CODES, } from "../../../../../../application/sync/gateway/errors.js";
|
|
4
|
-
import {
|
|
5
|
-
import { PRESENCE_KINDS } from "../../../../../../shared/state/constants.js";
|
|
6
|
-
import { isRecord } from "../../../../../../shared/encoding/typeGuards.js";
|
|
4
|
+
import { decodeSyncGatewayPresenceNonNegativeSafeInteger as decodePresenceNonNegativeInteger, decodeSyncGatewayPresenceString as decodePresenceString, requireSyncGatewayPositiveSafeInteger, requireSyncGatewayText, } from "../../../../../../application/sync/gateway/validation.js";
|
|
7
5
|
import { decodeOptionalSyncGatewayTiming } from "../../protocol/timing.js";
|
|
8
6
|
import { invalidOperationRequest, invalidOperationResponse, } from "../../errors.js";
|
|
7
|
+
import { requireOperationRecord } from "../../validation.js";
|
|
9
8
|
import { EFFECT_OPERATION_SOURCE } from "./effectOperationScript.js";
|
|
10
9
|
const EFFECT_OPERATION_MODES = {
|
|
11
10
|
APPLY: "applyEffects",
|
|
@@ -18,7 +17,7 @@ export function createApplyEffectsOperation(request) {
|
|
|
18
17
|
return {
|
|
19
18
|
fn: EFFECT_OPERATION_SOURCE,
|
|
20
19
|
args: { mode: EFFECT_OPERATION_MODES.APPLY, ...request },
|
|
21
|
-
decode: (value) => decodeApplyEffectsResult(value, request.effects
|
|
20
|
+
decode: (value) => decodeApplyEffectsResult(value, request.effects),
|
|
22
21
|
};
|
|
23
22
|
}
|
|
24
23
|
/** Builds the single-effect response-loss probe. */
|
|
@@ -36,7 +35,7 @@ export function createReadEffectPostconditionsOperation(request) {
|
|
|
36
35
|
return {
|
|
37
36
|
fn: EFFECT_OPERATION_SOURCE,
|
|
38
37
|
args: { mode: EFFECT_OPERATION_MODES.READ_BATCH, ...request },
|
|
39
|
-
decode: decodePostconditionBatch,
|
|
38
|
+
decode: (value) => decodePostconditionBatch(value, request.effects),
|
|
40
39
|
};
|
|
41
40
|
}
|
|
42
41
|
function validateEffectRequest(request) {
|
|
@@ -51,19 +50,21 @@ function validateEffectRequest(request) {
|
|
|
51
50
|
invalidOperationRequest("Apps Script effect operation", "checkboxHeaders must be an array");
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
function decodeApplyEffectsResult(value,
|
|
53
|
+
function decodeApplyEffectsResult(value, expectedEffects) {
|
|
55
54
|
const record = requireRecord(value, "effect result");
|
|
56
55
|
if (!Array.isArray(record.results) || typeof record.hasMore !== "boolean") {
|
|
57
56
|
return invalidOperationResponse("Apps Script effect operation", "result must contain results and hasMore");
|
|
58
57
|
}
|
|
59
|
-
if (record.results.length >
|
|
60
|
-
(!record.hasMore && record.results.length !==
|
|
61
|
-
(record.hasMore && record.results.length >=
|
|
58
|
+
if (record.results.length > expectedEffects.length ||
|
|
59
|
+
(!record.hasMore && record.results.length !== expectedEffects.length) ||
|
|
60
|
+
(record.hasMore && record.results.length >= expectedEffects.length)) {
|
|
62
61
|
return invalidOperationResponse("Apps Script effect operation", "result contains an invalid bounded effect prefix");
|
|
63
62
|
}
|
|
64
63
|
const timing = decodeOptionalSyncGatewayTiming(record.timing, "effect timing");
|
|
64
|
+
const results = record.results.map((entry, index) => decodeEffectResult(entry, index));
|
|
65
|
+
assertOrderedEffectEvidence(results, expectedEffects, "effect result");
|
|
65
66
|
const result = {
|
|
66
|
-
results
|
|
67
|
+
results,
|
|
67
68
|
snapshotHash: decodePresenceString(record.snapshotHash, "effect result snapshotHash"),
|
|
68
69
|
hasMore: record.hasMore,
|
|
69
70
|
};
|
|
@@ -91,12 +92,15 @@ function decodeEffectResult(value, index) {
|
|
|
91
92
|
postcondition,
|
|
92
93
|
};
|
|
93
94
|
}
|
|
94
|
-
function decodePostconditionBatch(value) {
|
|
95
|
+
function decodePostconditionBatch(value, expectedEffects) {
|
|
95
96
|
const record = requireRecord(value, "postcondition batch result");
|
|
96
97
|
if (!Array.isArray(record.results)) {
|
|
97
98
|
return invalidOperationResponse("Apps Script effect operation", "postcondition batch result must contain results");
|
|
98
99
|
}
|
|
99
|
-
|
|
100
|
+
if (record.results.length !== expectedEffects.length) {
|
|
101
|
+
return invalidOperationResponse("Apps Script effect operation", "postcondition batch result count does not match the submitted effects");
|
|
102
|
+
}
|
|
103
|
+
const results = record.results.map((entry, index) => {
|
|
100
104
|
const resultLabel = postconditionResultLabel(index);
|
|
101
105
|
const result = requireRecord(entry, resultLabel);
|
|
102
106
|
return {
|
|
@@ -105,6 +109,21 @@ function decodePostconditionBatch(value) {
|
|
|
105
109
|
postcondition: decodePostcondition(result.postcondition),
|
|
106
110
|
};
|
|
107
111
|
});
|
|
112
|
+
assertOrderedEffectEvidence(results, expectedEffects, "postcondition result");
|
|
113
|
+
return results;
|
|
114
|
+
}
|
|
115
|
+
function assertOrderedEffectEvidence(results, expectedEffects, label) {
|
|
116
|
+
const seen = new Set();
|
|
117
|
+
results.forEach((result, index) => {
|
|
118
|
+
const expected = expectedEffects[index];
|
|
119
|
+
if (expected === undefined ||
|
|
120
|
+
result.effectId !== expected.effectId ||
|
|
121
|
+
result.payloadHash !== expected.payloadHash ||
|
|
122
|
+
seen.has(result.effectId)) {
|
|
123
|
+
invalidOperationResponse("Apps Script effect operation", `${label}[${index}] does not match the submitted effect order or evidence`);
|
|
124
|
+
}
|
|
125
|
+
seen.add(result.effectId);
|
|
126
|
+
});
|
|
108
127
|
}
|
|
109
128
|
function effectResultLabel(index, field) {
|
|
110
129
|
const label = `effect result[${index}]`;
|
|
@@ -127,35 +146,27 @@ function decodePostcondition(value) {
|
|
|
127
146
|
snapshotHash: decodePresenceString(record.snapshotHash, "postcondition snapshotHash"),
|
|
128
147
|
};
|
|
129
148
|
}
|
|
130
|
-
function decodePresenceString(value, label) {
|
|
131
|
-
if (value === null)
|
|
132
|
-
return { kind: PRESENCE_KINDS.ABSENT };
|
|
133
|
-
return {
|
|
134
|
-
kind: PRESENCE_KINDS.PRESENT,
|
|
135
|
-
value: requireSyncGatewayText(value, label, SYNC_GATEWAY_ERROR_CODES.INVALID_GATEWAY_RESPONSE),
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
function decodePresenceNonNegativeInteger(value, label) {
|
|
139
|
-
if (value === null)
|
|
140
|
-
return { kind: PRESENCE_KINDS.ABSENT };
|
|
141
|
-
return {
|
|
142
|
-
kind: PRESENCE_KINDS.PRESENT,
|
|
143
|
-
value: requireSyncGatewayNonNegativeSafeInteger(value, label, SYNC_GATEWAY_ERROR_CODES.INVALID_GATEWAY_RESPONSE),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
149
|
function isEffectResultStatus(value) {
|
|
147
|
-
return
|
|
150
|
+
return value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.APPLIED ||
|
|
151
|
+
value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.ALREADY_APPLIED ||
|
|
152
|
+
value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.SUPERSEDED ||
|
|
153
|
+
value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.GUARD_MISMATCH ||
|
|
154
|
+
value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.REPAIR_REOBSERVE ||
|
|
155
|
+
value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.SCHEMA_ERROR ||
|
|
156
|
+
value === SYNC_GATEWAY_EFFECT_RESULT_STATUSES.RETRYABLE_ERROR;
|
|
148
157
|
}
|
|
149
158
|
function isPostconditionStatus(value) {
|
|
150
|
-
return
|
|
159
|
+
return value === SYNC_GATEWAY_POSTCONDITION_STATUSES.VERIFIED ||
|
|
160
|
+
value === SYNC_GATEWAY_POSTCONDITION_STATUSES.ACKNOWLEDGED ||
|
|
161
|
+
value === SYNC_GATEWAY_POSTCONDITION_STATUSES.UNAVAILABLE;
|
|
151
162
|
}
|
|
152
163
|
function isPostconditionDisposition(value) {
|
|
153
|
-
return
|
|
164
|
+
return value === SYNC_GATEWAY_POSTCONDITION_DISPOSITIONS.APPLIED ||
|
|
165
|
+
value === SYNC_GATEWAY_POSTCONDITION_DISPOSITIONS.UNAPPLIED ||
|
|
166
|
+
value === SYNC_GATEWAY_POSTCONDITION_DISPOSITIONS.CHANGED ||
|
|
167
|
+
value === SYNC_GATEWAY_POSTCONDITION_DISPOSITIONS.UNAVAILABLE;
|
|
154
168
|
}
|
|
155
169
|
function requireRecord(value, label) {
|
|
156
|
-
|
|
157
|
-
return invalidOperationResponse("Apps Script effect operation", label + " must be an object");
|
|
158
|
-
}
|
|
159
|
-
return value;
|
|
170
|
+
return requireOperationRecord(value, label, "Apps Script effect operation");
|
|
160
171
|
}
|
|
161
172
|
//# sourceMappingURL=effectOperation.js.map
|
package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectOperation.js","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAUjF,OAAO,EACL,mCAAmC,EACnC,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EACL,wBAAwB,GACzB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"effectOperation.js","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectOperationScript.d.ts","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"effectOperationScript.d.ts","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,eAAO,MAAM,uBAAuB,QAusBlC,CAAC"}
|
package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js
CHANGED
|
@@ -341,7 +341,16 @@ export const EFFECT_OPERATION_SOURCE = String.raw `function (spreadsheet, args)
|
|
|
341
341
|
|
|
342
342
|
function findRow_(targetContext, anchor, targetId) {
|
|
343
343
|
var row = targetContext.byAnchor[anchor] || null;
|
|
344
|
-
if (row === null && targetId !== null && targetId !== undefined)
|
|
344
|
+
if (row === null && targetId !== null && targetId !== undefined) {
|
|
345
|
+
row = targetContext.byIdentity[targetId] || null;
|
|
346
|
+
if (row === null && typeof targetId === "string") {
|
|
347
|
+
var separator = targetId.lastIndexOf(":");
|
|
348
|
+
var visibleIdentity = separator < 0 ? null : targetId.slice(separator + 1);
|
|
349
|
+
if (visibleIdentity !== null && visibleIdentity.length > 0) {
|
|
350
|
+
row = targetContext.byIdentity[visibleIdentity] || null;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
345
354
|
return row !== null && row.deleted ? null : row;
|
|
346
355
|
}
|
|
347
356
|
|
|
@@ -591,11 +600,17 @@ export const EFFECT_OPERATION_SOURCE = String.raw `function (spreadsheet, args)
|
|
|
591
600
|
return value;
|
|
592
601
|
}
|
|
593
602
|
|
|
603
|
+
function isCanonicalDate_(value) {
|
|
604
|
+
if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(value)) return false;
|
|
605
|
+
var parsed = new Date(value);
|
|
606
|
+
return !isNaN(parsed.getTime()) && parsed.toISOString() === value;
|
|
607
|
+
}
|
|
608
|
+
|
|
594
609
|
function normalizeCell_(value) {
|
|
595
610
|
if (value === null) return null;
|
|
596
611
|
requireObject_(value, "normalized cell");
|
|
597
612
|
if (value.kind === "string" && typeof value.value === "string") return { kind: "string", value: normalizeScalarString_(value.value) };
|
|
598
|
-
if (value.kind === "date" &&
|
|
613
|
+
if (value.kind === "date" && isCanonicalDate_(value.value)) return { kind: "date", value: value.value };
|
|
599
614
|
if (value.kind === "number" && typeof value.value === "number" && isFinite(value.value)) return { kind: "number", value: value.value };
|
|
600
615
|
if (value.kind === "boolean" && typeof value.value === "boolean") return { kind: "boolean", value: value.value };
|
|
601
616
|
throw new Error("normalized cell is invalid");
|
|
@@ -610,7 +625,10 @@ export const EFFECT_OPERATION_SOURCE = String.raw `function (spreadsheet, args)
|
|
|
610
625
|
throw new Error("Sheet cell cannot be normalized");
|
|
611
626
|
}
|
|
612
627
|
|
|
613
|
-
function toSheetValue_(value) {
|
|
628
|
+
function toSheetValue_(value) {
|
|
629
|
+
if (value === null) return "";
|
|
630
|
+
return value.kind === "date" ? new Date(value.value) : value.value;
|
|
631
|
+
}
|
|
614
632
|
function identityFromCell_(value) {
|
|
615
633
|
if (value === null || value === undefined) return null;
|
|
616
634
|
if (typeof value.value === "string" && value.value.length > 0) return value.value;
|
|
@@ -676,7 +694,7 @@ export const EFFECT_OPERATION_SOURCE = String.raw `function (spreadsheet, args)
|
|
|
676
694
|
if (value === false) return "b0";
|
|
677
695
|
if (typeof value === "number") return stableEncodeNumber_(value);
|
|
678
696
|
if (typeof value === "string") return stableEncodeString_(value);
|
|
679
|
-
if (isObject_(value) && value.kind === "date" &&
|
|
697
|
+
if (isObject_(value) && value.kind === "date" && isCanonicalDate_(value.value)) return "d24:" + value.value;
|
|
680
698
|
if (Array.isArray(value)) return "a" + value.length + "[" + value.map(stableEncode_).join("") + "]";
|
|
681
699
|
if (isObject_(value)) {
|
|
682
700
|
var entries = Object.keys(value).map(function (key) { var normalized = normalizeScalarString_(key); return { key: normalized, bytes: utf8Bytes_(normalized), value: value[key] }; });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectOperationScript.js","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"effectOperationScript.js","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAusB/C,CAAC"}
|
|
@@ -8,6 +8,8 @@ declare const OBSERVATION_OPERATION_MODES: {
|
|
|
8
8
|
};
|
|
9
9
|
interface ObservationOperationRouteOptions {
|
|
10
10
|
readonly checkboxHeaders?: readonly string[];
|
|
11
|
+
/** Local-only schema evidence used to validate decoded snapshot headers. */
|
|
12
|
+
readonly expectedHeaders?: readonly string[];
|
|
11
13
|
}
|
|
12
14
|
type ObservationOperationRequest = (EnsureSyncRowAnchorsRequest | ReadSyncSnapshotRequest) & ObservationOperationRouteOptions;
|
|
13
15
|
export type AppsScriptEnsureRowAnchorsOperationArgs = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observationOperation.d.ts","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,2DAA2D,CAAC;AAwBnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"observationOperation.d.ts","sourceRoot":"","sources":["../../../../../../../src/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,2DAA2D,CAAC;AAwBnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAQxF,QAAA,MAAM,2BAA2B;;;;CAIvB,CAAC;AAEX,UAAU,gCAAgC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,KAAK,2BAA2B,GAC9B,CAAC,2BAA2B,GAAG,uBAAuB,CAAC,GAAG,gCAAgC,CAAC;AAE7F,MAAM,MAAM,uCAAuC,GAAG;IACpD,QAAQ,CAAC,IAAI,EAAE,OAAO,2BAA2B,CAAC,cAAc,CAAC;CAClE,GAAG,2BAA2B,CAAC;AAEhC,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,2BAA2B,CAAC,aAAa,CAAC;CACjE,GAAG,2BAA2B,CAAC;AAEhC,MAAM,MAAM,sCAAsC,GAAG;IACnD,QAAQ,CAAC,IAAI,EAAE,OAAO,2BAA2B,CAAC,gBAAgB,CAAC;CACpE,GAAG,2BAA2B,CAAC;AAEhC,+EAA+E;AAC/E,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,2BAA2B,GAAG,gCAAgC,GACtE,6BAA6B,CAC9B,uCAAuC,EACvC,0BAA0B,CAC3B,CAQA;AAED,iEAAiE;AACjE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,uBAAuB,GAAG,gCAAgC,GAClE,6BAA6B,CAAC,mCAAmC,EAAE,mBAAmB,CAAC,CAQzF;AAED,uFAAuF;AACvF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,uBAAuB,GAAG,gCAAgC,GAClE,6BAA6B,CAC9B,sCAAsC,EACtC,oBAAoB,CACrB,CAQA"}
|