hikoutei 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +44 -21
- package/README.ko.md +43 -23
- package/README.md +49 -33
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts +3 -3
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmMappedTypedSheets.js +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.d.ts +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarEntityRuntime.js +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.js +3 -3
- package/dist/adapter/persistence/providers/mikro-orm/engine/MikroOrmScalarRuntime.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts +3 -3
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js +15 -15
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js +3 -3
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.d.ts +5 -5
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js +5 -5
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js +5 -5
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.js +3 -3
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingSql.js.map +1 -1
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts +156 -0
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js +1112 -0
- package/dist/adapter/sheets/providers/google-sheets-api/GoogleSheetsApiSyncProvider.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts +87 -0
- package/dist/adapter/sheets/providers/google-sheets-api/constants.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/constants.js +97 -0
- package/dist/adapter/sheets/providers/google-sheets-api/constants.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts +53 -0
- package/dist/adapter/sheets/providers/google-sheets-api/errors.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/errors.js +61 -0
- package/dist/adapter/sheets/providers/google-sheets-api/errors.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts +16 -0
- package/dist/adapter/sheets/providers/google-sheets-api/index.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/index.js +13 -0
- package/dist/adapter/sheets/providers/google-sheets-api/index.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.d.ts +83 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.js +413 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/batchBuilder.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts +86 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js +439 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/observation.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts +115 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js +522 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/planner.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.d.ts +17 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js +99 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/postcondition.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts +242 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js +707 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/preflight.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.d.ts +16 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.js +29 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/sheetIdAllocator.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts +26 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.js +57 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/tableRead.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.d.ts +102 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.js +375 -0
- package/dist/adapter/sheets/providers/google-sheets-api/model/valueNormalization.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts +168 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js +247 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts +47 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js +60 -0
- package/dist/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.js.map +1 -0
- package/dist/api/Hikoutei.d.ts +1 -1
- package/dist/api/Hikoutei.js +1 -1
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.js +2 -2
- package/dist/application/orm/mapping/contracts.d.ts +2 -2
- package/dist/application/orm/mapping/contracts.d.ts.map +1 -1
- package/dist/application/orm/mapping/definition.js +5 -5
- package/dist/application/orm/mapping/definition.js.map +1 -1
- package/dist/application/orm/mapping/projection.js +7 -7
- package/dist/application/orm/mapping/projection.js.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts +3 -3
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.js +2 -2
- package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.d.ts +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.js +6 -6
- package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
- package/dist/application/orm/persistence/support/contracts.d.ts +2 -2
- package/dist/application/orm/persistence/support/contracts.d.ts.map +1 -1
- package/dist/application/sync/inbound/autoSystemConflictResolution.js +7 -7
- package/dist/application/sync/inbound/autoSystemConflictResolution.js.map +1 -1
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts +3 -3
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.d.ts.map +1 -1
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.js +1 -1
- package/dist/application/sync/inbound/polling/SimpleSheetPolling.js.map +1 -1
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts +17 -1
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js +27 -1
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +2 -2
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +26 -6
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +24 -9
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js +128 -81
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +31 -14
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +32 -15
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +13 -9
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +53 -37
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerHelpers.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +29 -19
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +59 -41
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts +4 -4
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js +3 -3
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTiming.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts +3 -3
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +42 -46
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -1
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts +8 -8
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.d.ts.map +1 -1
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js +15 -15
- package/dist/application/sync/outbound/projection/ProjectionEffectFactory.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts +3 -3
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +10 -10
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
- package/dist/application/sync/service/SyncPollingSupervisor.d.ts +1 -1
- package/dist/application/sync/service/SyncPollingSupervisor.js +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts +29 -19
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.js +103 -78
- package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
- package/dist/application/sync/service/errors.d.ts +1 -1
- package/dist/application/sync/service/errors.js +1 -1
- package/dist/application/sync/service/errors.js.map +1 -1
- package/dist/application/sync/sheets/conflictProjection.d.ts.map +1 -0
- package/dist/application/sync/sheets/conflictProjection.js.map +1 -0
- package/dist/application/sync/{gateway → sheets}/conflictProjectionRegistration.d.ts +1 -1
- package/dist/application/sync/sheets/conflictProjectionRegistration.d.ts.map +1 -0
- package/dist/application/sync/{gateway → sheets}/conflictProjectionRegistration.js +3 -3
- package/dist/application/sync/sheets/conflictProjectionRegistration.js.map +1 -0
- package/dist/application/sync/sheets/constants.d.ts +66 -0
- package/dist/application/sync/sheets/constants.d.ts.map +1 -0
- package/dist/application/sync/{gateway → sheets}/constants.js +15 -15
- package/dist/application/sync/sheets/constants.js.map +1 -0
- package/dist/application/sync/sheets/errors.d.ts +15 -0
- package/dist/application/sync/sheets/errors.d.ts.map +1 -0
- package/dist/application/sync/sheets/errors.js +16 -0
- package/dist/application/sync/sheets/errors.js.map +1 -0
- package/dist/application/sync/{gateway/coordinator/CoordinatedSyncGateway.d.ts → sheets/mutationCoordinator/CoordinatedSheetsProvider.d.ts} +29 -28
- package/dist/application/sync/sheets/mutationCoordinator/CoordinatedSheetsProvider.d.ts.map +1 -0
- package/dist/application/sync/{gateway/coordinator/CoordinatedSyncGateway.js → sheets/mutationCoordinator/CoordinatedSheetsProvider.js} +27 -26
- package/dist/application/sync/sheets/mutationCoordinator/CoordinatedSheetsProvider.js.map +1 -0
- package/dist/application/sync/{gateway/coordinator → sheets/mutationCoordinator}/asyncMutex.d.ts +2 -3
- package/dist/application/sync/sheets/mutationCoordinator/asyncMutex.d.ts.map +1 -0
- package/dist/application/sync/sheets/mutationCoordinator/asyncMutex.js.map +1 -0
- package/dist/application/sync/{gateway/coordinator/coordinatorTelemetry.d.ts → sheets/mutationCoordinator/laneTelemetry.d.ts} +4 -4
- package/dist/application/sync/sheets/mutationCoordinator/laneTelemetry.d.ts.map +1 -0
- package/dist/application/sync/{gateway/coordinator/coordinatorTelemetry.js → sheets/mutationCoordinator/laneTelemetry.js} +5 -5
- package/dist/application/sync/sheets/mutationCoordinator/laneTelemetry.js.map +1 -0
- package/dist/application/sync/{gateway/SyncGatewayBootstrap.d.ts → sheets/sheetsProvisioning.d.ts} +14 -14
- package/dist/application/sync/sheets/sheetsProvisioning.d.ts.map +1 -0
- package/dist/application/sync/sheets/sheetsProvisioning.js +95 -0
- package/dist/application/sync/sheets/sheetsProvisioning.js.map +1 -0
- package/dist/application/sync/{gateway/syncGateway.d.ts → sheets/syncSheets.d.ts} +61 -117
- package/dist/application/sync/sheets/syncSheets.d.ts.map +1 -0
- package/dist/application/sync/sheets/syncSheets.js +144 -0
- package/dist/application/sync/sheets/syncSheets.js.map +1 -0
- package/dist/application/sync/{gateway/transportClassification.d.ts → sheets/transportOutcome.d.ts} +23 -22
- package/dist/application/sync/sheets/transportOutcome.d.ts.map +1 -0
- package/dist/application/sync/sheets/transportOutcome.js +97 -0
- package/dist/application/sync/sheets/transportOutcome.js.map +1 -0
- package/dist/application/sync/sheets/validation.d.ts +22 -0
- package/dist/application/sync/sheets/validation.d.ts.map +1 -0
- package/dist/application/sync/sheets/validation.js +79 -0
- package/dist/application/sync/sheets/validation.js.map +1 -0
- package/dist/application/sync/telemetry/syncTiming.d.ts +7 -7
- package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -1
- package/dist/application/sync/telemetry/syncTiming.js +2 -2
- package/dist/application/sync/telemetry/syncTiming.js.map +1 -1
- package/dist/domain/evaluate/contracts.d.ts +1 -1
- package/dist/domain/evaluate/contracts.js +1 -1
- package/dist/domain/model/constants.d.ts +1 -1
- package/dist/domain/model/constants.d.ts.map +1 -1
- package/dist/domain/model/types.d.ts +1 -1
- package/dist/domain/model/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/storage/index.d.ts +1 -1
- package/dist/infrastructure/storage/index.d.ts.map +1 -1
- package/dist/infrastructure/storage/index.js +1 -1
- package/dist/infrastructure/storage/index.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.d.ts +1 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.js +1 -1
- package/dist/infrastructure/storage/state/observation/observationTypes.d.ts +3 -3
- package/dist/infrastructure/storage/state/observation/observationTypes.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +13 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +23 -2
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +9 -3
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +7 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +11 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +44 -3
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts +4 -4
- package/dist/infrastructure/storage/sync/shared/syncRegistry.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/shared/syncRegistry.js +4 -4
- package/dist/infrastructure/storage/sync/shared/syncRegistry.js.map +1 -1
- package/dist/shared/encoding/types.d.ts +1 -1
- package/docs/architecture.md +52 -23
- package/docs/ci.md +31 -23
- package/docs/code-guidelines.md +10 -18
- package/docs/development.md +37 -11
- package/docs/gateway-removal-inventory.md +147 -0
- package/docs/quick-start.md +36 -26
- package/docs/sync-bulk-write-benchmark.md +561 -0
- package/docs/sync-observability.md +38 -45
- package/docs/write-and-synchronization-flow.md +56 -39
- package/package.json +5 -4
- package/apps-script/gateway/Code.gs +0 -447
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +0 -43
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +0 -52
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +0 -24
- package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/index.js +0 -13
- package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +0 -44
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +0 -181
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts +0 -3
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +0 -810
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts +0 -31
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +0 -560
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts +0 -12
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js +0 -166
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/read/tableReadOperation.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.d.ts +0 -8
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.js +0 -122
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/shared/appsScriptStableCodecSource.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts +0 -31
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js +0 -567
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +0 -19
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +0 -37
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts +0 -51
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js +0 -60
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/codeGsProtocol.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts +0 -44
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js +0 -40
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/constants.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts +0 -12
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js +0 -41
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/syncProtocol.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts +0 -5
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js +0 -53
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/timing.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts +0 -4
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js +0 -2
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/types.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts +0 -11
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js +0 -36
- package/dist/adapter/sheets/providers/apps-script-gateway/protocol/validation.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts +0 -68
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +0 -273
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +0 -73
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +0 -363
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts +0 -3
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.d.ts.map +0 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.js +0 -10
- package/dist/adapter/sheets/providers/apps-script-gateway/validation.js.map +0 -1
- package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +0 -1
- package/dist/application/sync/gateway/SyncGatewayBootstrap.js +0 -95
- package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +0 -1
- package/dist/application/sync/gateway/conflictProjection.d.ts.map +0 -1
- package/dist/application/sync/gateway/conflictProjection.js.map +0 -1
- package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts.map +0 -1
- package/dist/application/sync/gateway/conflictProjectionRegistration.js.map +0 -1
- package/dist/application/sync/gateway/constants.d.ts +0 -66
- package/dist/application/sync/gateway/constants.d.ts.map +0 -1
- package/dist/application/sync/gateway/constants.js.map +0 -1
- package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts.map +0 -1
- package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js.map +0 -1
- package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts.map +0 -1
- package/dist/application/sync/gateway/coordinator/asyncMutex.js.map +0 -1
- package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts.map +0 -1
- package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js.map +0 -1
- package/dist/application/sync/gateway/errors.d.ts +0 -15
- package/dist/application/sync/gateway/errors.d.ts.map +0 -1
- package/dist/application/sync/gateway/errors.js +0 -16
- package/dist/application/sync/gateway/errors.js.map +0 -1
- package/dist/application/sync/gateway/syncGateway.d.ts.map +0 -1
- package/dist/application/sync/gateway/syncGateway.js +0 -191
- package/dist/application/sync/gateway/syncGateway.js.map +0 -1
- package/dist/application/sync/gateway/transportClassification.d.ts.map +0 -1
- package/dist/application/sync/gateway/transportClassification.js +0 -133
- package/dist/application/sync/gateway/transportClassification.js.map +0 -1
- package/dist/application/sync/gateway/validation.d.ts +0 -22
- package/dist/application/sync/gateway/validation.d.ts.map +0 -1
- package/dist/application/sync/gateway/validation.js +0 -79
- package/dist/application/sync/gateway/validation.js.map +0 -1
- /package/dist/application/sync/{gateway → sheets}/conflictProjection.d.ts +0 -0
- /package/dist/application/sync/{gateway → sheets}/conflictProjection.js +0 -0
- /package/dist/application/sync/{gateway/coordinator → sheets/mutationCoordinator}/asyncMutex.js +0 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Narrow transport contract for the direct Google Sheets API provider.
|
|
3
|
+
*
|
|
4
|
+
* All Google SDK types stay behind this module: the rest of the provider
|
|
5
|
+
* works with a small discriminated union of write requests and treats every
|
|
6
|
+
* response as an untrusted `unknown` value that the preflight/reply modules
|
|
7
|
+
* validate with runtime guards. Tests implement the same interface with an
|
|
8
|
+
* in-memory spreadsheet model, so the planner and batch builder are exercised
|
|
9
|
+
* without credentials or network access.
|
|
10
|
+
*/
|
|
11
|
+
import { GoogleAuth } from "google-auth-library";
|
|
12
|
+
import { sheets } from "@googleapis/sheets";
|
|
13
|
+
import { presentValue, absentValue } from "../../../../../shared/state/index.js";
|
|
14
|
+
import { GOOGLE_SHEETS_API_SCOPES } from "../constants.js";
|
|
15
|
+
import { GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES, GoogleSheetsApiTransportError, } from "../errors.js";
|
|
16
|
+
/**
|
|
17
|
+
* Real transport over the Google Sheets REST API.
|
|
18
|
+
*
|
|
19
|
+
* gaxios auto-retry is disabled for every call: retries are the durable
|
|
20
|
+
* worker/recovery path's job, and a retried mutating request could replay an
|
|
21
|
+
* already committed batch. All errors are mapped to
|
|
22
|
+
* `GoogleSheetsApiTransportError` before leaving this module.
|
|
23
|
+
*/
|
|
24
|
+
export class GoogleSheetsApiHttpTransport {
|
|
25
|
+
client;
|
|
26
|
+
requestTimeoutMs;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
// google-auth-library may resolve to a version nested under googleapis-common
|
|
29
|
+
// that differs from the top-level one; the boundary cast keeps the SDK
|
|
30
|
+
// version mismatch contained in this module.
|
|
31
|
+
const auth = options.auth ??
|
|
32
|
+
new GoogleAuth({ scopes: [...GOOGLE_SHEETS_API_SCOPES] });
|
|
33
|
+
// The sheets factory accepts GoogleAuth; the narrow wrapper below owns the
|
|
34
|
+
// SDK boundary so no other provider code touches the client type.
|
|
35
|
+
this.client = sheets({ version: "v4", auth });
|
|
36
|
+
this.requestTimeoutMs = options.requestTimeoutMs;
|
|
37
|
+
}
|
|
38
|
+
async getSpreadsheet(request) {
|
|
39
|
+
try {
|
|
40
|
+
const response = await this.client.spreadsheets.get({
|
|
41
|
+
spreadsheetId: request.spreadsheetId,
|
|
42
|
+
ranges: [...request.ranges],
|
|
43
|
+
fields: request.fields,
|
|
44
|
+
}, { timeout: request.timeoutMs ?? this.requestTimeoutMs, retry: false });
|
|
45
|
+
return response.data;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw classifyGoogleSheetsApiError(error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async batchUpdate(request) {
|
|
52
|
+
try {
|
|
53
|
+
const response = await this.client.spreadsheets.batchUpdate({
|
|
54
|
+
spreadsheetId: request.spreadsheetId,
|
|
55
|
+
// The body comes from the same builder that
|
|
56
|
+
// `serializeBatchUpdateRequests` measures, so the batch builder's
|
|
57
|
+
// byte budget is exact for what gaxios sends on the wire.
|
|
58
|
+
requestBody: toSdkBatchUpdateBody(request.requests),
|
|
59
|
+
}, { timeout: this.requestTimeoutMs, retry: false });
|
|
60
|
+
return response.data;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
throw classifyGoogleSheetsApiError(error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Maps a thrown SDK/gaxios/network error to the provider transport error.
|
|
69
|
+
*
|
|
70
|
+
* Exported separately so tests can exercise the mapping with shaped fixtures
|
|
71
|
+
* instead of real network failures. Any error without a proven HTTP status is
|
|
72
|
+
* classified conservatively as delivery-uncertain material (network/timeout),
|
|
73
|
+
* never as a proven pre-mutation rejection.
|
|
74
|
+
*/
|
|
75
|
+
export function classifyGoogleSheetsApiError(error) {
|
|
76
|
+
const shape = extractGaxiosErrorShape(error);
|
|
77
|
+
if (shape.status !== undefined) {
|
|
78
|
+
const remoteCode = typeof shape.apiErrorStatus === "string" &&
|
|
79
|
+
shape.apiErrorStatus.length > 0
|
|
80
|
+
? shape.apiErrorStatus
|
|
81
|
+
: String(shape.status);
|
|
82
|
+
return new GoogleSheetsApiTransportError(GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.HTTP_ERROR, "Google Sheets API request failed", presentValue(shape.status), presentValue(remoteCode));
|
|
83
|
+
}
|
|
84
|
+
if (isTimeoutError(error, shape.code)) {
|
|
85
|
+
return new GoogleSheetsApiTransportError(GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.TIMEOUT, "Google Sheets API request timed out", absentValue(), shape.code === undefined
|
|
86
|
+
? absentValue()
|
|
87
|
+
: presentValue(shape.code));
|
|
88
|
+
}
|
|
89
|
+
return new GoogleSheetsApiTransportError(GOOGLE_SHEETS_API_TRANSPORT_ERROR_CODES.NETWORK_ERROR, "Google Sheets API transport failed", absentValue(), shape.code === undefined
|
|
90
|
+
? absentValue()
|
|
91
|
+
: presentValue(shape.code));
|
|
92
|
+
}
|
|
93
|
+
function extractGaxiosErrorShape(error) {
|
|
94
|
+
if (error === null || typeof error !== "object") {
|
|
95
|
+
return { code: undefined, status: undefined, apiErrorStatus: undefined };
|
|
96
|
+
}
|
|
97
|
+
const record = error;
|
|
98
|
+
const code = typeof record.code === "string" ? record.code : undefined;
|
|
99
|
+
const response = record.response;
|
|
100
|
+
const responseRecord = response !== null && typeof response === "object"
|
|
101
|
+
? response
|
|
102
|
+
: undefined;
|
|
103
|
+
const rawStatus = responseRecord?.status;
|
|
104
|
+
const status = typeof rawStatus === "number" && Number.isInteger(rawStatus)
|
|
105
|
+
? rawStatus
|
|
106
|
+
: typeof rawStatus === "string" && /^\d{3}$/.test(rawStatus)
|
|
107
|
+
? Number(rawStatus)
|
|
108
|
+
: undefined;
|
|
109
|
+
let apiErrorStatus;
|
|
110
|
+
const data = responseRecord?.data;
|
|
111
|
+
const dataRecord = data !== null && typeof data === "object"
|
|
112
|
+
? data
|
|
113
|
+
: undefined;
|
|
114
|
+
const errorBody = dataRecord?.error;
|
|
115
|
+
const errorRecord = errorBody !== null && typeof errorBody === "object"
|
|
116
|
+
? errorBody
|
|
117
|
+
: undefined;
|
|
118
|
+
const rawApiStatus = errorRecord?.status;
|
|
119
|
+
if (typeof rawApiStatus === "string" && rawApiStatus.length > 0) {
|
|
120
|
+
apiErrorStatus = rawApiStatus;
|
|
121
|
+
}
|
|
122
|
+
return { code, status, apiErrorStatus };
|
|
123
|
+
}
|
|
124
|
+
function isTimeoutError(error, code) {
|
|
125
|
+
if (code !== undefined && /TIMEOUT|TIMEDOUT|DEADLINE|ABORTED|ETIMEDOUT/i.test(code)) {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
return error instanceof Error && /timeout|timed out|deadline exceeded/i.test(error.message);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Builds the SDK batchUpdate body from provider write requests. The SDK
|
|
132
|
+
* request union is wider than the provider's narrow shapes; this boundary
|
|
133
|
+
* cast is the only place both types meet.
|
|
134
|
+
*/
|
|
135
|
+
export function toSdkBatchUpdateBody(requests) {
|
|
136
|
+
return {
|
|
137
|
+
requests: requests.map(toSdkRequest),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Serializes the batchUpdate body exactly as the transport sends it, so the
|
|
142
|
+
* batch builder's byte budget measures the real wire bytes (SDK-wrapped
|
|
143
|
+
* request shapes, not the internal request union).
|
|
144
|
+
*/
|
|
145
|
+
export function serializeBatchUpdateRequests(requests) {
|
|
146
|
+
return JSON.stringify(toSdkBatchUpdateBody(requests));
|
|
147
|
+
}
|
|
148
|
+
/** Maps one provider write request to the Google SDK request shape. */
|
|
149
|
+
function toSdkRequest(request) {
|
|
150
|
+
switch (request.kind) {
|
|
151
|
+
case "addSheet":
|
|
152
|
+
return { addSheet: { properties: { title: request.title, sheetId: request.sheetId } } };
|
|
153
|
+
case "updateSheetProperties":
|
|
154
|
+
return {
|
|
155
|
+
updateSheetProperties: {
|
|
156
|
+
properties: { sheetId: request.sheetId, hidden: request.hidden },
|
|
157
|
+
fields: "hidden",
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
case "updateCells":
|
|
161
|
+
return {
|
|
162
|
+
updateCells: {
|
|
163
|
+
start: {
|
|
164
|
+
sheetId: request.sheetId,
|
|
165
|
+
rowIndex: request.startRowIndex,
|
|
166
|
+
columnIndex: request.startColumnIndex,
|
|
167
|
+
},
|
|
168
|
+
rows: request.rows.map(toSdkRow),
|
|
169
|
+
fields: request.fields,
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
case "insertDimension":
|
|
173
|
+
return {
|
|
174
|
+
insertDimension: {
|
|
175
|
+
range: {
|
|
176
|
+
sheetId: request.sheetId,
|
|
177
|
+
dimension: request.dimension,
|
|
178
|
+
startIndex: request.startIndex,
|
|
179
|
+
endIndex: request.endIndex,
|
|
180
|
+
},
|
|
181
|
+
inheritFromBefore: request.inheritFromBefore,
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
case "deleteDimension":
|
|
185
|
+
return {
|
|
186
|
+
deleteDimension: {
|
|
187
|
+
range: {
|
|
188
|
+
sheetId: request.sheetId,
|
|
189
|
+
dimension: request.dimension,
|
|
190
|
+
startIndex: request.startIndex,
|
|
191
|
+
endIndex: request.endIndex,
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
case "setDataValidation":
|
|
196
|
+
return {
|
|
197
|
+
setDataValidation: {
|
|
198
|
+
range: {
|
|
199
|
+
sheetId: request.sheetId,
|
|
200
|
+
startRowIndex: request.startRowIndex,
|
|
201
|
+
endRowIndex: request.endRowIndex,
|
|
202
|
+
startColumnIndex: request.startColumnIndex,
|
|
203
|
+
endColumnIndex: request.endColumnIndex,
|
|
204
|
+
},
|
|
205
|
+
rule: {
|
|
206
|
+
condition: { type: "BOOLEAN" },
|
|
207
|
+
strict: request.strict,
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
case "createDeveloperMetadata":
|
|
212
|
+
return {
|
|
213
|
+
createDeveloperMetadata: {
|
|
214
|
+
developerMetadata: {
|
|
215
|
+
metadataKey: request.key,
|
|
216
|
+
metadataValue: request.value,
|
|
217
|
+
location: {
|
|
218
|
+
dimensionRange: {
|
|
219
|
+
sheetId: request.sheetId,
|
|
220
|
+
dimension: "ROWS",
|
|
221
|
+
startIndex: request.rowIndex,
|
|
222
|
+
endIndex: request.rowIndex + 1,
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
// DOCUMENT-scoped metadata is visible across Cloud projects, so
|
|
226
|
+
// anchors written by the service-account project stay findable by
|
|
227
|
+
// any other project (and vice versa) that shares the spreadsheet.
|
|
228
|
+
visibility: "DOCUMENT",
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
case "deleteSheet":
|
|
233
|
+
return { deleteSheet: { sheetId: request.sheetId } };
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
function toSdkRow(row) {
|
|
237
|
+
return { values: row.map(toSdkCell) };
|
|
238
|
+
}
|
|
239
|
+
function toSdkCell(cell) {
|
|
240
|
+
if (cell === null)
|
|
241
|
+
return {};
|
|
242
|
+
return {
|
|
243
|
+
...(cell.userEnteredValue === undefined ? {} : { userEnteredValue: cell.userEnteredValue }),
|
|
244
|
+
...(cell.userEnteredFormat === undefined ? {} : { userEnteredFormat: cell.userEnteredFormat }),
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=googleSheetsApiTransport.js.map
|
package/dist/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleSheetsApiTransport.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/googleSheetsApiTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request-start interval limiter used by the direct Sheets provider.
|
|
3
|
+
*
|
|
4
|
+
* Google Sheets quota windows are per 100 seconds, so bursty request starts
|
|
5
|
+
* can exhaust a class's budget before the worker's own latency/backoff reacts.
|
|
6
|
+
* The provider keeps two independent limiters (reads, writes) that only wait
|
|
7
|
+
* the time remaining since that class's last request START; an idle class is
|
|
8
|
+
* never throttled and concurrent classes never serialize against each other.
|
|
9
|
+
*/
|
|
10
|
+
export interface RequestStartLimiterOptions {
|
|
11
|
+
/** Minimum interval between two request starts of this limiter class. */
|
|
12
|
+
readonly intervalMs: number;
|
|
13
|
+
/** Injectable clock for deterministic tests; defaults to Date.now. */
|
|
14
|
+
readonly now?: () => number;
|
|
15
|
+
/** Injectable sleep used while waiting for the next slot. */
|
|
16
|
+
readonly sleep?: (ms: number) => Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Waits only the remaining interval since the previous request start.
|
|
20
|
+
*
|
|
21
|
+
* Returns the number of milliseconds actually waited. A limiter with a zero
|
|
22
|
+
* interval never waits and records every start.
|
|
23
|
+
*/
|
|
24
|
+
export declare class RequestStartLimiter {
|
|
25
|
+
private readonly intervalMs;
|
|
26
|
+
private readonly now;
|
|
27
|
+
private readonly sleep;
|
|
28
|
+
private lastStartAt;
|
|
29
|
+
constructor(options: RequestStartLimiterOptions);
|
|
30
|
+
/** Returns the last recorded request start, when one exists. */
|
|
31
|
+
lastStart(): number | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Waits for the next request-start slot and records the start time.
|
|
34
|
+
*
|
|
35
|
+
* Returns the number of milliseconds actually waited. A limiter with a zero
|
|
36
|
+
* interval never waits and records every start.
|
|
37
|
+
*
|
|
38
|
+
* The slot reservation happens SYNCHRONOUSLY before any await: each caller
|
|
39
|
+
* reserves the NEXT slot (`nextStart = max(now, lastStartAt + intervalMs)`)
|
|
40
|
+
* and records it immediately, so two concurrent waiters can never compute
|
|
41
|
+
* the same remaining time from the same `lastStartAt`, sleep together, and
|
|
42
|
+
* start at the same instant. A caller that arrives after its reserved slot
|
|
43
|
+
* has already passed waits zero (its reservation collapses to now).
|
|
44
|
+
*/
|
|
45
|
+
waitForSlot(): Promise<number>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=rateLimiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,WAAW,CAAqB;gBAErB,OAAO,EAAE,0BAA0B;IAStD,gEAAgE;IACzD,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;;;;;;;;;;;OAYG;IACU,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAY5C"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request-start interval limiter used by the direct Sheets provider.
|
|
3
|
+
*
|
|
4
|
+
* Google Sheets quota windows are per 100 seconds, so bursty request starts
|
|
5
|
+
* can exhaust a class's budget before the worker's own latency/backoff reacts.
|
|
6
|
+
* The provider keeps two independent limiters (reads, writes) that only wait
|
|
7
|
+
* the time remaining since that class's last request START; an idle class is
|
|
8
|
+
* never throttled and concurrent classes never serialize against each other.
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_SLEEP = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
11
|
+
/**
|
|
12
|
+
* Waits only the remaining interval since the previous request start.
|
|
13
|
+
*
|
|
14
|
+
* Returns the number of milliseconds actually waited. A limiter with a zero
|
|
15
|
+
* interval never waits and records every start.
|
|
16
|
+
*/
|
|
17
|
+
export class RequestStartLimiter {
|
|
18
|
+
intervalMs;
|
|
19
|
+
now;
|
|
20
|
+
sleep;
|
|
21
|
+
lastStartAt;
|
|
22
|
+
constructor(options) {
|
|
23
|
+
if (!Number.isSafeInteger(options.intervalMs) || options.intervalMs < 0) {
|
|
24
|
+
throw new RangeError("request-start interval must be a non-negative safe integer");
|
|
25
|
+
}
|
|
26
|
+
this.intervalMs = options.intervalMs;
|
|
27
|
+
this.now = options.now ?? Date.now;
|
|
28
|
+
this.sleep = options.sleep ?? DEFAULT_SLEEP;
|
|
29
|
+
}
|
|
30
|
+
/** Returns the last recorded request start, when one exists. */
|
|
31
|
+
lastStart() {
|
|
32
|
+
return this.lastStartAt;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Waits for the next request-start slot and records the start time.
|
|
36
|
+
*
|
|
37
|
+
* Returns the number of milliseconds actually waited. A limiter with a zero
|
|
38
|
+
* interval never waits and records every start.
|
|
39
|
+
*
|
|
40
|
+
* The slot reservation happens SYNCHRONOUSLY before any await: each caller
|
|
41
|
+
* reserves the NEXT slot (`nextStart = max(now, lastStartAt + intervalMs)`)
|
|
42
|
+
* and records it immediately, so two concurrent waiters can never compute
|
|
43
|
+
* the same remaining time from the same `lastStartAt`, sleep together, and
|
|
44
|
+
* start at the same instant. A caller that arrives after its reserved slot
|
|
45
|
+
* has already passed waits zero (its reservation collapses to now).
|
|
46
|
+
*/
|
|
47
|
+
async waitForSlot() {
|
|
48
|
+
const now = this.now();
|
|
49
|
+
const nextStart = this.lastStartAt === undefined
|
|
50
|
+
? now
|
|
51
|
+
: Math.max(now, this.lastStartAt + this.intervalMs);
|
|
52
|
+
this.lastStartAt = nextStart;
|
|
53
|
+
const waited = Math.max(0, nextStart - now);
|
|
54
|
+
if (waited > 0) {
|
|
55
|
+
await this.sleep(waited);
|
|
56
|
+
}
|
|
57
|
+
return waited;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=rateLimiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../../../../../src/adapter/sheets/providers/google-sheets-api/transport/rateLimiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,aAAa,GAAG,CAAC,EAAU,EAAiB,EAAE,CAClD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAW1D;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAS;IACnB,GAAG,CAAe;IAClB,KAAK,CAAgC;IAC9C,WAAW,CAAqB;IAExC,YAAmB,OAAmC;QACpD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,UAAU,CAAC,4DAA4D,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC9C,CAAC;IAED,gEAAgE;IACzD,SAAS;QACd,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,WAAW;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS;YAC9C,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/api/Hikoutei.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Public SQLite-authoritative Hikoutei runtime and the `createTypedSheets()` factory.
|
|
3
3
|
*
|
|
4
|
-
* This module intentionally knows nothing about Sheet routes or
|
|
4
|
+
* This module intentionally knows nothing about Sheet routes or provider
|
|
5
5
|
* provisioning. The internal sync service builds a mapped runtime separately
|
|
6
6
|
* and can reuse the internal construction hook below without expanding the
|
|
7
7
|
* application-facing contract.
|
package/dist/api/Hikoutei.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Public SQLite-authoritative Hikoutei runtime and the `createTypedSheets()` factory.
|
|
3
3
|
*
|
|
4
|
-
* This module intentionally knows nothing about Sheet routes or
|
|
4
|
+
* This module intentionally knows nothing about Sheet routes or provider
|
|
5
5
|
* provisioning. The internal sync service builds a mapped runtime separately
|
|
6
6
|
* and can reuse the internal construction hook below without expanding the
|
|
7
7
|
* application-facing contract.
|
package/dist/api/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This barrel is the only application-facing entrypoint. It exposes the stable
|
|
5
5
|
* entity-lifecycle API — `defineTypedSheetsEntity`, `createTypedSheets`, the
|
|
6
6
|
* `Hikoutei` runtime, the `EntityManager`, and the typed errors — and nothing
|
|
7
|
-
* else. Sheet synchronization, storage, provider, ORM,
|
|
8
|
-
*
|
|
7
|
+
* else. Sheet synchronization, storage, provider, ORM, and protocol types are
|
|
8
|
+
* internal service implementation details.
|
|
9
9
|
*/
|
|
10
10
|
export { defineTypedSheetsEntity, HIKOUTEI_SCALAR_TYPES, } from "./entity.js";
|
|
11
11
|
export type { HikouteiEntity, HikouteiEntityDescriptorInput, HikouteiPropertyOptions, HikouteiPropertyDescriptorMap, HikouteiScalarType, HikouteiScalarValueType, HikouteiPropertyValueType, HikouteiEntityInstance, } from "./entity.js";
|
package/dist/api/index.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This barrel is the only application-facing entrypoint. It exposes the stable
|
|
5
5
|
* entity-lifecycle API — `defineTypedSheetsEntity`, `createTypedSheets`, the
|
|
6
6
|
* `Hikoutei` runtime, the `EntityManager`, and the typed errors — and nothing
|
|
7
|
-
* else. Sheet synchronization, storage, provider, ORM,
|
|
8
|
-
*
|
|
7
|
+
* else. Sheet synchronization, storage, provider, ORM, and protocol types are
|
|
8
|
+
* internal service implementation details.
|
|
9
9
|
*/
|
|
10
10
|
export { defineTypedSheetsEntity, HIKOUTEI_SCALAR_TYPES, } from "./entity.js";
|
|
11
11
|
export { createTypedSheets } from "./Hikoutei.js";
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* registration, and value conversion live in their respective modules.
|
|
6
6
|
*/
|
|
7
7
|
import { type FieldOwnership, type NormalizedCell } from "../../../domain/index.js";
|
|
8
|
-
import {
|
|
8
|
+
import { SYNC_PROJECTIONS } from "../../sync/sheets/constants.js";
|
|
9
9
|
import type { RegisterSyncSheetInput } from "../../../infrastructure/storage/index.js";
|
|
10
10
|
import type { TypedSheetsEntityReference } from "../api/contracts.js";
|
|
11
11
|
import type { NormalizedCellKind } from "../../../shared/encoding/constants.js";
|
|
12
12
|
/** Physical projections supported by a mapped business entity. */
|
|
13
|
-
export type TypedSheetsEntityProjection = typeof
|
|
13
|
+
export type TypedSheetsEntityProjection = typeof SYNC_PROJECTIONS.USER_INPUT | typeof SYNC_PROJECTIONS.SYSTEM_STATE;
|
|
14
14
|
/** A string property name declared by one mapped entity. */
|
|
15
15
|
export type TypedSheetsEntityProperty<Entity extends object> = Extract<keyof Entity, string>;
|
|
16
16
|
/** Optional codec used when a TypeScript property needs custom cell conversion. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/contracts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/application/orm/mapping/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { EMPTY_STRING_LENGTH_ZERO, FIELD_OWNERSHIPS, } from "../../../domain/index.js";
|
|
8
8
|
import { NORMALIZED_CELL_KINDS, } from "../../../shared/encoding/constants.js";
|
|
9
9
|
import { isRecord } from "../../../shared/encoding/typeGuards.js";
|
|
10
|
-
import {
|
|
10
|
+
import { SYNC_PROJECTIONS } from "../../sync/sheets/constants.js";
|
|
11
11
|
import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
|
|
12
12
|
/**
|
|
13
13
|
* Validates and normalizes a single entity-to-Sheets mapping declaration.
|
|
@@ -53,7 +53,7 @@ export function defineTypedSheetsEntityMapping(input) {
|
|
|
53
53
|
}
|
|
54
54
|
assertDistinct(projections.map((projection) => projection.physicalSheetId), "physical sheet ID");
|
|
55
55
|
assertDistinct(projections.map((projection) => projection.projection), "projection kind");
|
|
56
|
-
if (!projections.some((projection) => projection.projection ===
|
|
56
|
+
if (!projections.some((projection) => projection.projection === SYNC_PROJECTIONS.SYSTEM_STATE)) {
|
|
57
57
|
throwInvalidMapping("an entity mapping must declare exactly one system_state projection");
|
|
58
58
|
}
|
|
59
59
|
const tombstoneFieldName = input.tombstoneFieldName ?? "__typed_sheets_deleted";
|
|
@@ -61,7 +61,7 @@ export function defineTypedSheetsEntityMapping(input) {
|
|
|
61
61
|
if (fields.some((field) => field.fieldName === tombstoneFieldName)) {
|
|
62
62
|
throwInvalidMapping("the tombstone field name cannot duplicate a mapped field");
|
|
63
63
|
}
|
|
64
|
-
const userInput = projections.find((projection) => projection.projection ===
|
|
64
|
+
const userInput = projections.find((projection) => projection.projection === SYNC_PROJECTIONS.USER_INPUT);
|
|
65
65
|
if (userInput !== undefined && fields.every((field) => field.ownership !== FIELD_OWNERSHIPS.USER)) {
|
|
66
66
|
throwInvalidMapping("a user_input projection requires at least one user-owned field");
|
|
67
67
|
}
|
|
@@ -141,8 +141,8 @@ function normalizeProjectionMapping(projection) {
|
|
|
141
141
|
requireText(projection.spreadsheetId, "spreadsheet ID");
|
|
142
142
|
requireText(projection.tabName, "tab name");
|
|
143
143
|
requireText(projection.registeredRange, "registered range");
|
|
144
|
-
if (projection.projection !==
|
|
145
|
-
projection.projection !==
|
|
144
|
+
if (projection.projection !== SYNC_PROJECTIONS.USER_INPUT &&
|
|
145
|
+
projection.projection !== SYNC_PROJECTIONS.SYSTEM_STATE) {
|
|
146
146
|
throwInvalidMapping("an entity mapping supports only user_input and system_state projections");
|
|
147
147
|
}
|
|
148
148
|
return { ...projection };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,GAEtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* payloads; it does not validate entity declarations or encode field values.
|
|
6
6
|
*/
|
|
7
7
|
import { FIELD_OWNERSHIPS, REGISTERED_PROJECTION_KINDS, } from "../../../domain/index.js";
|
|
8
|
-
import {
|
|
8
|
+
import { SYNC_PROJECTIONS } from "../../sync/sheets/constants.js";
|
|
9
9
|
import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../errors.js";
|
|
10
10
|
/** Returns the one physical route registered for the requested projection kind. */
|
|
11
11
|
export function requireTypedSheetsEntityProjection(mapping, projection) {
|
|
@@ -23,8 +23,8 @@ export function createTypedSheetsEntityOwnershipManifest(mapping) {
|
|
|
23
23
|
fieldName: field.fieldName,
|
|
24
24
|
ownership: field.ownership,
|
|
25
25
|
projection: field.ownership === FIELD_OWNERSHIPS.USER
|
|
26
|
-
?
|
|
27
|
-
:
|
|
26
|
+
? SYNC_PROJECTIONS.USER_INPUT
|
|
27
|
+
: SYNC_PROJECTIONS.SYSTEM_STATE,
|
|
28
28
|
type: field.cellKind,
|
|
29
29
|
required: field.required,
|
|
30
30
|
unique: field.unique,
|
|
@@ -39,12 +39,12 @@ export function serializeTypedSheetsEntityOwnershipManifest(mapping) {
|
|
|
39
39
|
}
|
|
40
40
|
/** Returns the headers that setup must materialize for one physical projection. */
|
|
41
41
|
export function typedSheetsEntityProjectionHeaders(mapping, projection) {
|
|
42
|
-
const fieldNames = projection ===
|
|
42
|
+
const fieldNames = projection === SYNC_PROJECTIONS.SYSTEM_STATE
|
|
43
43
|
? mapping.fields.map((field) => field.fieldName)
|
|
44
44
|
: mapping.fields
|
|
45
45
|
.filter((field) => field.ownership === FIELD_OWNERSHIPS.USER)
|
|
46
46
|
.map((field) => field.fieldName);
|
|
47
|
-
return projection ===
|
|
47
|
+
return projection === SYNC_PROJECTIONS.SYSTEM_STATE
|
|
48
48
|
? [...fieldNames, mapping.tombstoneFieldName]
|
|
49
49
|
: fieldNames;
|
|
50
50
|
}
|
|
@@ -64,9 +64,9 @@ export function createTypedSheetsEntityProjectionRegistration(mapping, projectio
|
|
|
64
64
|
}
|
|
65
65
|
function toRegisteredProjection(projection) {
|
|
66
66
|
switch (projection) {
|
|
67
|
-
case
|
|
67
|
+
case SYNC_PROJECTIONS.USER_INPUT:
|
|
68
68
|
return REGISTERED_PROJECTION_KINDS.USER_INPUT;
|
|
69
|
-
case
|
|
69
|
+
case SYNC_PROJECTIONS.SYSTEM_STATE:
|
|
70
70
|
return REGISTERED_PROJECTION_KINDS.SYSTEM_STATE;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/projection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,2BAA2B,GAG5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/application/orm/mapping/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This module collects entity changes, fences the flush with a writer lease,
|
|
5
5
|
* and delegates each lifecycle operation to the focused persistence helpers.
|
|
6
6
|
*/
|
|
7
|
-
import type { RegisteredSyncProjectionDefinition } from "../../../sync/
|
|
7
|
+
import type { RegisteredSyncProjectionDefinition } from "../../../sync/sheets/sheetsProvisioning.js";
|
|
8
8
|
import type { SqlStorageAdapter } from "../../../../adapter/persistence/contracts/sql.js";
|
|
9
9
|
import { type TypedSheetsFlushCoordinator } from "../../api/contracts.js";
|
|
10
10
|
import { type TypedSheetsEntityMapping, type TypedSheetsEntityMappingRegistry } from "../../mapping/entityMapping.js";
|
|
@@ -18,12 +18,12 @@ export declare function createMappedTypedSheetsFlushCoordinator(options: CreateM
|
|
|
18
18
|
/**
|
|
19
19
|
* Registers every mapping route under one writer fence.
|
|
20
20
|
*
|
|
21
|
-
* The return value can be passed directly to the existing
|
|
21
|
+
* The return value can be passed directly to the existing provider provisioning
|
|
22
22
|
* helper, so users never need to duplicate route names or header lists in Apps
|
|
23
23
|
* Script configuration.
|
|
24
24
|
*/
|
|
25
25
|
export declare function registerTypedSheetsEntityMappings(storage: SqlStorageAdapter, mappingsInput: TypedSheetsEntityMappingRegistry | readonly TypedSheetsEntityMapping[], writerInput: TypedSheetsEntityWriterOptions): Promise<readonly RegisteredTypedSheetsMappedProjection[]>;
|
|
26
|
-
/** Converts registered mapping routes into
|
|
26
|
+
/** Converts registered mapping routes into provider provisioning definitions. */
|
|
27
27
|
export declare function registeredTypedSheetsProjectionDefinitions(registrations: readonly RegisteredTypedSheetsMappedProjection[]): readonly RegisteredSyncProjectionDefinition[];
|
|
28
28
|
/** Normalizes writer identity and lease settings for internal observation workers. */
|
|
29
29
|
export declare function resolveTypedSheetsEntityWriterOptions(options: TypedSheetsEntityWriterOptions): ResolvedWriterOptions;
|