@opendatalabs/personal-server-ts-core 1.34.2 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/additions/durable.d.ts +32 -2
- package/dist/additions/durable.d.ts.map +1 -1
- package/dist/additions/durable.js +237 -88
- package/dist/additions/durable.js.map +1 -1
- package/dist/additions/version-inventory.d.ts +4 -0
- package/dist/additions/version-inventory.d.ts.map +1 -1
- package/dist/additions/version-inventory.js +11 -1
- package/dist/additions/version-inventory.js.map +1 -1
- package/dist/api/index.d.ts +18 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +172 -4
- package/dist/api/index.js.map +1 -1
- package/dist/api/oura-collection-requirements.d.ts +16 -0
- package/dist/api/oura-collection-requirements.d.ts.map +1 -0
- package/dist/api/oura-collection-requirements.js +70 -0
- package/dist/api/oura-collection-requirements.js.map +1 -0
- package/dist/api/scope-upload-batches.d.ts +18 -0
- package/dist/api/scope-upload-batches.d.ts.map +1 -0
- package/dist/api/scope-upload-batches.js +71 -0
- package/dist/api/scope-upload-batches.js.map +1 -0
- package/dist/api/scope-uploads.d.ts +112 -0
- package/dist/api/scope-uploads.d.ts.map +1 -0
- package/dist/api/scope-uploads.js +369 -0
- package/dist/api/scope-uploads.js.map +1 -0
- package/dist/client.d.ts +70 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -0
- package/dist/client.js.map +1 -1
- package/dist/contracts/data.d.ts +8 -0
- package/dist/contracts/data.d.ts.map +1 -1
- package/dist/contracts/data.js +31 -1
- package/dist/contracts/data.js.map +1 -1
- package/dist/contracts/grants.d.ts.map +1 -1
- package/dist/contracts/grants.js +3 -0
- package/dist/contracts/grants.js.map +1 -1
- package/dist/contracts/index.d.ts +3 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +3 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/oura-collection-requirements.d.ts +17 -0
- package/dist/contracts/oura-collection-requirements.d.ts.map +1 -0
- package/dist/contracts/oura-collection-requirements.js +49 -0
- package/dist/contracts/oura-collection-requirements.js.map +1 -0
- package/dist/legacy-projection/bindings.d.ts +1 -7
- package/dist/legacy-projection/bindings.d.ts.map +1 -1
- package/dist/legacy-projection/bindings.js +162 -28
- package/dist/legacy-projection/bindings.js.map +1 -1
- package/dist/legacy-projection/index.d.ts +6 -5
- package/dist/legacy-projection/index.d.ts.map +1 -1
- package/dist/legacy-projection/index.js +9 -21
- package/dist/legacy-projection/index.js.map +1 -1
- package/dist/legacy-projection/oura-browser-bindings.d.ts +2 -0
- package/dist/legacy-projection/oura-browser-bindings.d.ts.map +1 -1
- package/dist/legacy-projection/oura-browser-bindings.js +2 -0
- package/dist/legacy-projection/oura-browser-bindings.js.map +1 -1
- package/dist/legacy-projection/strava-browser-bindings.d.ts +3 -0
- package/dist/legacy-projection/strava-browser-bindings.d.ts.map +1 -0
- package/dist/legacy-projection/strava-browser-bindings.js +32 -0
- package/dist/legacy-projection/strava-browser-bindings.js.map +1 -0
- package/dist/legacy-projection/types.d.ts +44 -12
- package/dist/legacy-projection/types.d.ts.map +1 -1
- package/dist/mcp/connection-api.d.ts +11 -1
- package/dist/mcp/connection-api.d.ts.map +1 -1
- package/dist/mcp/connection-api.js +94 -9
- package/dist/mcp/connection-api.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +19 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/store.d.ts +10 -1
- package/dist/mcp/store.d.ts.map +1 -1
- package/dist/mcp/store.js +51 -0
- package/dist/mcp/store.js.map +1 -1
- package/dist/mcp/tools.d.ts +52 -2
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +395 -11
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/types.d.ts +36 -2
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js +12 -0
- package/dist/mcp/types.js.map +1 -1
- package/dist/mcp/write-client.d.ts +81 -0
- package/dist/mcp/write-client.d.ts.map +1 -0
- package/dist/mcp/write-client.js +140 -0
- package/dist/mcp/write-client.js.map +1 -0
- package/dist/oura/history-policy.d.ts +12 -0
- package/dist/oura/history-policy.d.ts.map +1 -0
- package/dist/oura/history-policy.js +54 -0
- package/dist/oura/history-policy.js.map +1 -0
- package/dist/oura/index.d.ts +51 -0
- package/dist/oura/index.d.ts.map +1 -0
- package/dist/oura/index.js +315 -0
- package/dist/oura/index.js.map +1 -0
- package/dist/pdpp/approval.d.ts +1 -1
- package/dist/pdpp/approval.d.ts.map +1 -1
- package/dist/pdpp/approval.js +29 -10
- package/dist/pdpp/approval.js.map +1 -1
- package/dist/pdpp/declaration-limits.d.ts +7 -0
- package/dist/pdpp/declaration-limits.d.ts.map +1 -0
- package/dist/pdpp/declaration-limits.js +7 -0
- package/dist/pdpp/declaration-limits.js.map +1 -0
- package/dist/pdpp/declaration.d.ts +2 -1
- package/dist/pdpp/declaration.d.ts.map +1 -1
- package/dist/pdpp/declaration.js +2 -1
- package/dist/pdpp/declaration.js.map +1 -1
- package/dist/pdpp/index.d.ts +3 -2
- package/dist/pdpp/index.d.ts.map +1 -1
- package/dist/pdpp/index.js +3 -2
- package/dist/pdpp/index.js.map +1 -1
- package/dist/pdpp/issuance.d.ts.map +1 -1
- package/dist/pdpp/issuance.js +6 -2
- package/dist/pdpp/issuance.js.map +1 -1
- package/dist/pdpp/resolve.d.ts +12 -1
- package/dist/pdpp/resolve.d.ts.map +1 -1
- package/dist/pdpp/resolve.js +156 -58
- package/dist/pdpp/resolve.js.map +1 -1
- package/dist/pdpp/selection.d.ts +30 -1
- package/dist/pdpp/selection.d.ts.map +1 -1
- package/dist/pdpp/selection.js +77 -26
- package/dist/pdpp/selection.js.map +1 -1
- package/dist/pdpp/time.d.ts +39 -0
- package/dist/pdpp/time.d.ts.map +1 -0
- package/dist/pdpp/time.js +173 -0
- package/dist/pdpp/time.js.map +1 -0
- package/dist/pdpp/tokens.d.ts.map +1 -1
- package/dist/pdpp/tokens.js +4 -2
- package/dist/pdpp/tokens.js.map +1 -1
- package/dist/pdpp/types.d.ts +18 -2
- package/dist/pdpp/types.d.ts.map +1 -1
- package/dist/pdpp/types.js +7 -0
- package/dist/pdpp/types.js.map +1 -1
- package/dist/policy/reserved-scopes.d.ts +7 -0
- package/dist/policy/reserved-scopes.d.ts.map +1 -1
- package/dist/policy/reserved-scopes.js +12 -1
- package/dist/policy/reserved-scopes.js.map +1 -1
- package/dist/ports/index.d.ts +85 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/pdpp-auth.d.ts +17 -27
- package/dist/ports/pdpp-auth.d.ts.map +1 -1
- package/dist/ports/pdpp-auth.js +14 -28
- package/dist/ports/pdpp-auth.js.map +1 -1
- package/dist/publication/publish.d.ts +96 -0
- package/dist/publication/publish.d.ts.map +1 -0
- package/dist/publication/publish.js +261 -0
- package/dist/publication/publish.js.map +1 -0
- package/dist/replication/completion.d.ts +20 -0
- package/dist/replication/completion.d.ts.map +1 -0
- package/dist/replication/completion.js +73 -0
- package/dist/replication/completion.js.map +1 -0
- package/dist/replication/coordinator-state.d.ts +29 -0
- package/dist/replication/coordinator-state.d.ts.map +1 -0
- package/dist/replication/coordinator-state.js +88 -0
- package/dist/replication/coordinator-state.js.map +1 -0
- package/dist/replication/coordinator-state.test-utils.d.ts +32 -0
- package/dist/replication/coordinator-state.test-utils.d.ts.map +1 -0
- package/dist/replication/coordinator-state.test-utils.js +113 -0
- package/dist/replication/coordinator-state.test-utils.js.map +1 -0
- package/dist/replication/coordinator.d.ts +264 -0
- package/dist/replication/coordinator.d.ts.map +1 -0
- package/dist/replication/coordinator.js +499 -0
- package/dist/replication/coordinator.js.map +1 -0
- package/dist/replication/copies.d.ts +126 -0
- package/dist/replication/copies.d.ts.map +1 -0
- package/dist/replication/copies.js +437 -0
- package/dist/replication/copies.js.map +1 -0
- package/dist/replication/copy-promotion.d.ts +132 -0
- package/dist/replication/copy-promotion.d.ts.map +1 -0
- package/dist/replication/copy-promotion.js +126 -0
- package/dist/replication/copy-promotion.js.map +1 -0
- package/dist/replication/door.d.ts +33 -0
- package/dist/replication/door.d.ts.map +1 -0
- package/dist/replication/door.js +10 -0
- package/dist/replication/door.js.map +1 -0
- package/dist/replication/dpv2.d.ts +141 -0
- package/dist/replication/dpv2.d.ts.map +1 -0
- package/dist/replication/dpv2.js +320 -0
- package/dist/replication/dpv2.js.map +1 -0
- package/dist/replication/effects.d.ts +68 -0
- package/dist/replication/effects.d.ts.map +1 -0
- package/dist/replication/effects.js +89 -0
- package/dist/replication/effects.js.map +1 -0
- package/dist/replication/engine.d.ts +378 -0
- package/dist/replication/engine.d.ts.map +1 -0
- package/dist/replication/engine.js +3197 -0
- package/dist/replication/engine.js.map +1 -0
- package/dist/replication/envelope.d.ts +481 -0
- package/dist/replication/envelope.d.ts.map +1 -0
- package/dist/replication/envelope.js +192 -0
- package/dist/replication/envelope.js.map +1 -0
- package/dist/replication/evidence.d.ts +118 -0
- package/dist/replication/evidence.d.ts.map +1 -0
- package/dist/replication/evidence.js +198 -0
- package/dist/replication/evidence.js.map +1 -0
- package/dist/replication/finality.d.ts +16 -0
- package/dist/replication/finality.d.ts.map +1 -0
- package/dist/replication/finality.js +11 -0
- package/dist/replication/finality.js.map +1 -0
- package/dist/replication/fixtures.d.ts +16 -0
- package/dist/replication/fixtures.d.ts.map +1 -0
- package/dist/replication/fixtures.js +47 -0
- package/dist/replication/fixtures.js.map +1 -0
- package/dist/replication/host-config.d.ts +52 -0
- package/dist/replication/host-config.d.ts.map +1 -0
- package/dist/replication/host-config.js +111 -0
- package/dist/replication/host-config.js.map +1 -0
- package/dist/replication/host-driver.d.ts +95 -0
- package/dist/replication/host-driver.d.ts.map +1 -0
- package/dist/replication/host-driver.js +202 -0
- package/dist/replication/host-driver.js.map +1 -0
- package/dist/replication/host-ports.d.ts +48 -0
- package/dist/replication/host-ports.d.ts.map +1 -0
- package/dist/replication/host-ports.js +69 -0
- package/dist/replication/host-ports.js.map +1 -0
- package/dist/replication/identity.d.ts +13 -0
- package/dist/replication/identity.d.ts.map +1 -0
- package/dist/replication/identity.js +22 -0
- package/dist/replication/identity.js.map +1 -0
- package/dist/replication/limits.d.ts +124 -0
- package/dist/replication/limits.d.ts.map +1 -0
- package/dist/replication/limits.js +182 -0
- package/dist/replication/limits.js.map +1 -0
- package/dist/replication/merge-plan.d.ts +92 -0
- package/dist/replication/merge-plan.d.ts.map +1 -0
- package/dist/replication/merge-plan.js +229 -0
- package/dist/replication/merge-plan.js.map +1 -0
- package/dist/replication/namespace.d.ts +4 -0
- package/dist/replication/namespace.d.ts.map +1 -0
- package/dist/replication/namespace.js +7 -0
- package/dist/replication/namespace.js.map +1 -0
- package/dist/replication/outcome.d.ts +178 -0
- package/dist/replication/outcome.d.ts.map +1 -0
- package/dist/replication/outcome.js +83 -0
- package/dist/replication/outcome.js.map +1 -0
- package/dist/replication/payload.d.ts +39 -0
- package/dist/replication/payload.d.ts.map +1 -0
- package/dist/replication/payload.js +137 -0
- package/dist/replication/payload.js.map +1 -0
- package/dist/replication/preparation.d.ts +42 -0
- package/dist/replication/preparation.d.ts.map +1 -0
- package/dist/replication/preparation.js +118 -0
- package/dist/replication/preparation.js.map +1 -0
- package/dist/replication/rebaseline.d.ts +33 -0
- package/dist/replication/rebaseline.d.ts.map +1 -0
- package/dist/replication/rebaseline.js +40 -0
- package/dist/replication/rebaseline.js.map +1 -0
- package/dist/replication/rebinding.d.ts +43 -0
- package/dist/replication/rebinding.d.ts.map +1 -0
- package/dist/replication/rebinding.js +52 -0
- package/dist/replication/rebinding.js.map +1 -0
- package/dist/replication/receive.d.ts +57 -0
- package/dist/replication/receive.d.ts.map +1 -0
- package/dist/replication/receive.js +114 -0
- package/dist/replication/receive.js.map +1 -0
- package/dist/replication/record-reducer.d.ts +16 -0
- package/dist/replication/record-reducer.d.ts.map +1 -0
- package/dist/replication/record-reducer.js +52 -0
- package/dist/replication/record-reducer.js.map +1 -0
- package/dist/replication/revision.d.ts +24 -0
- package/dist/replication/revision.d.ts.map +1 -0
- package/dist/replication/revision.js +35 -0
- package/dist/replication/revision.js.map +1 -0
- package/dist/replication/roster.d.ts +53 -0
- package/dist/replication/roster.d.ts.map +1 -0
- package/dist/replication/roster.js +115 -0
- package/dist/replication/roster.js.map +1 -0
- package/dist/replication/schedule.d.ts +73 -0
- package/dist/replication/schedule.d.ts.map +1 -0
- package/dist/replication/schedule.js +182 -0
- package/dist/replication/schedule.js.map +1 -0
- package/dist/replication/stream.d.ts +73 -0
- package/dist/replication/stream.d.ts.map +1 -0
- package/dist/replication/stream.js +542 -0
- package/dist/replication/stream.js.map +1 -0
- package/dist/replication/transport.d.ts +236 -0
- package/dist/replication/transport.d.ts.map +1 -0
- package/dist/replication/transport.js +440 -0
- package/dist/replication/transport.js.map +1 -0
- package/dist/replication/visibility-engine.d.ts +337 -0
- package/dist/replication/visibility-engine.d.ts.map +1 -0
- package/dist/replication/visibility-engine.js +602 -0
- package/dist/replication/visibility-engine.js.map +1 -0
- package/dist/replication/visibility-policy.d.ts +26 -0
- package/dist/replication/visibility-policy.d.ts.map +1 -0
- package/dist/replication/visibility-policy.js +33 -0
- package/dist/replication/visibility-policy.js.map +1 -0
- package/dist/replication/writer-identity-store.d.ts +100 -0
- package/dist/replication/writer-identity-store.d.ts.map +1 -0
- package/dist/replication/writer-identity-store.js +218 -0
- package/dist/replication/writer-identity-store.js.map +1 -0
- package/dist/replication/writer-identity.d.ts +252 -0
- package/dist/replication/writer-identity.d.ts.map +1 -0
- package/dist/replication/writer-identity.js +281 -0
- package/dist/replication/writer-identity.js.map +1 -0
- package/dist/replication/writer-identity.test-utils.d.ts +24 -0
- package/dist/replication/writer-identity.test-utils.d.ts.map +1 -0
- package/dist/replication/writer-identity.test-utils.js +86 -0
- package/dist/replication/writer-identity.test-utils.js.map +1 -0
- package/dist/schemas/server-config.d.ts +13 -0
- package/dist/schemas/server-config.d.ts.map +1 -1
- package/dist/schemas/server-config.js +24 -0
- package/dist/schemas/server-config.js.map +1 -1
- package/dist/storage/adapters/index.d.ts +3 -1
- package/dist/storage/adapters/index.d.ts.map +1 -1
- package/dist/storage/adapters/index.js +2 -0
- package/dist/storage/adapters/index.js.map +1 -1
- package/dist/storage/adapters/interface.d.ts +18 -1
- package/dist/storage/adapters/interface.d.ts.map +1 -1
- package/dist/storage/adapters/interface.js +13 -1
- package/dist/storage/adapters/interface.js.map +1 -1
- package/dist/storage/adapters/sdk.d.ts +2 -1
- package/dist/storage/adapters/sdk.d.ts.map +1 -1
- package/dist/storage/adapters/sdk.js +21 -3
- package/dist/storage/adapters/sdk.js.map +1 -1
- package/dist/storage/adapters/vana-audience.d.ts +17 -5
- package/dist/storage/adapters/vana-audience.d.ts.map +1 -1
- package/dist/storage/adapters/vana-audience.js +24 -9
- package/dist/storage/adapters/vana-audience.js.map +1 -1
- package/dist/storage/adapters/vana.d.ts +2 -2
- package/dist/storage/adapters/vana.d.ts.map +1 -1
- package/dist/storage/adapters/vana.js +30 -22
- package/dist/storage/adapters/vana.js.map +1 -1
- package/dist/storage/canonical-legacy-projection.d.ts +1 -1
- package/dist/storage/canonical-legacy-projection.d.ts.map +1 -1
- package/dist/storage/canonical-legacy-projection.js +13 -15
- package/dist/storage/canonical-legacy-projection.js.map +1 -1
- package/dist/storage/legacy-projection.d.ts.map +1 -1
- package/dist/storage/legacy-projection.js +16 -1
- package/dist/storage/legacy-projection.js.map +1 -1
- package/dist/storage/legacy-scope-coverage-exceptions.d.ts +5 -0
- package/dist/storage/legacy-scope-coverage-exceptions.d.ts.map +1 -1
- package/dist/storage/legacy-scope-coverage-exceptions.js +4 -0
- package/dist/storage/legacy-scope-coverage-exceptions.js.map +1 -1
- package/dist/storage/legacy-scope-coverage.d.ts.map +1 -1
- package/dist/storage/legacy-scope-coverage.js +14 -1
- package/dist/storage/legacy-scope-coverage.js.map +1 -1
- package/dist/storage/legacy-scope-entity-keys.d.ts +14 -1
- package/dist/storage/legacy-scope-entity-keys.d.ts.map +1 -1
- package/dist/storage/legacy-scope-entity-keys.js +18 -1
- package/dist/storage/legacy-scope-entity-keys.js.map +1 -1
- package/dist/storage/legacy-scope-view.d.ts +57 -5
- package/dist/storage/legacy-scope-view.d.ts.map +1 -1
- package/dist/storage/legacy-scope-view.js +644 -318
- package/dist/storage/legacy-scope-view.js.map +1 -1
- package/dist/storage/pdpp-records/cursor.d.ts +47 -2
- package/dist/storage/pdpp-records/cursor.d.ts.map +1 -1
- package/dist/storage/pdpp-records/cursor.js +7 -0
- package/dist/storage/pdpp-records/cursor.js.map +1 -1
- package/dist/storage/pdpp-records/enforcement.d.ts +3 -16
- package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -1
- package/dist/storage/pdpp-records/enforcement.js +40 -13
- package/dist/storage/pdpp-records/enforcement.js.map +1 -1
- package/dist/storage/pdpp-records/index.d.ts +2 -0
- package/dist/storage/pdpp-records/index.d.ts.map +1 -1
- package/dist/storage/pdpp-records/index.js +1 -0
- package/dist/storage/pdpp-records/index.js.map +1 -1
- package/dist/storage/pdpp-records/interface.d.ts +8 -1
- package/dist/storage/pdpp-records/interface.d.ts.map +1 -1
- package/dist/storage/pdpp-records/list-page.d.ts +35 -0
- package/dist/storage/pdpp-records/list-page.d.ts.map +1 -0
- package/dist/storage/pdpp-records/list-page.js +106 -0
- package/dist/storage/pdpp-records/list-page.js.map +1 -0
- package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -1
- package/dist/storage/pdpp-records/memory-store.js +95 -99
- package/dist/storage/pdpp-records/memory-store.js.map +1 -1
- package/dist/storage/pdpp-records/portable.d.ts +3 -0
- package/dist/storage/pdpp-records/portable.d.ts.map +1 -1
- package/dist/storage/pdpp-records/portable.js +3 -0
- package/dist/storage/pdpp-records/portable.js.map +1 -1
- package/dist/storage/pdpp-records/replication-journal.d.ts +20 -0
- package/dist/storage/pdpp-records/replication-journal.d.ts.map +1 -0
- package/dist/storage/pdpp-records/replication-journal.js +2 -0
- package/dist/storage/pdpp-records/replication-journal.js.map +1 -0
- package/dist/storage/pdpp-records/stream-declaration.d.ts +0 -2
- package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -1
- package/dist/storage/pdpp-records/stream-declaration.js +0 -9
- package/dist/storage/pdpp-records/stream-declaration.js.map +1 -1
- package/dist/storage/pdpp-records/sync-selection.d.ts +4 -0
- package/dist/storage/pdpp-records/sync-selection.d.ts.map +1 -0
- package/dist/storage/pdpp-records/sync-selection.js +37 -0
- package/dist/storage/pdpp-records/sync-selection.js.map +1 -0
- package/dist/storage/pdpp-records/types.d.ts +64 -0
- package/dist/storage/pdpp-records/types.d.ts.map +1 -1
- package/dist/storage/pdpp-records/types.js.map +1 -1
- package/dist/sync/delete-data-port.d.ts +15 -0
- package/dist/sync/delete-data-port.d.ts.map +1 -1
- package/dist/sync/delete-data-port.js +19 -7
- package/dist/sync/delete-data-port.js.map +1 -1
- package/dist/sync/index.d.ts +2 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +2 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/pending-blob-deletions.d.ts +18 -2
- package/dist/sync/pending-blob-deletions.d.ts.map +1 -1
- package/dist/sync/pending-blob-deletions.js +69 -23
- package/dist/sync/pending-blob-deletions.js.map +1 -1
- package/dist/sync/workers/delete.d.ts.map +1 -1
- package/dist/sync/workers/delete.js +316 -142
- package/dist/sync/workers/delete.js.map +1 -1
- package/dist/sync/workers/download.d.ts.map +1 -1
- package/dist/sync/workers/download.js +53 -5
- package/dist/sync/workers/download.js.map +1 -1
- package/dist/sync/workers/upload.d.ts +24 -5
- package/dist/sync/workers/upload.d.ts.map +1 -1
- package/dist/sync/workers/upload.js +160 -275
- package/dist/sync/workers/upload.js.map +1 -1
- package/dist/test-utils/memory-storage.d.ts.map +1 -1
- package/dist/test-utils/memory-storage.js +17 -2
- package/dist/test-utils/memory-storage.js.map +1 -1
- package/package.json +24 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dpv2.js","sourceRoot":"","sources":["../../src/replication/dpv2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage effects: phase logic written once, run by a synchronous host
|
|
3
|
+
* (Node, better-sqlite3) and by an asynchronous one (PS-Lite, a native
|
|
4
|
+
* transaction over a bridge).
|
|
5
|
+
*
|
|
6
|
+
* An effect is a generator. Each value it yields is one storage operation,
|
|
7
|
+
* a function of the host's transaction context. A runner calls the
|
|
8
|
+
* operation and resumes the generator with its result, or throws its error
|
|
9
|
+
* into the generator, so `try`/`catch` inside phase logic works the same on
|
|
10
|
+
* both hosts. The synchronous runner refuses an operation that returns a
|
|
11
|
+
* promise: Node's transactions cannot span an `await`, so a synchronous
|
|
12
|
+
* host must never be handed asynchronous work.
|
|
13
|
+
*
|
|
14
|
+
* Phase logic composes effects with `yield*`. It never awaits inside an
|
|
15
|
+
* effect; I/O happens outside transactions, between effects.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* One storage operation, run by the host against its transaction context.
|
|
19
|
+
* Contravariant in its context, so an effect over the base context composes
|
|
20
|
+
* into any richer host context.
|
|
21
|
+
*/
|
|
22
|
+
export type ReplicaOp<C = ReplicaEffectContext> = (context: C) => unknown;
|
|
23
|
+
/** A computation over host storage that returns `T`. */
|
|
24
|
+
export type ReplicaEffect<T, C = ReplicaEffectContext> = Generator<ReplicaOp<C>, T, unknown>;
|
|
25
|
+
/** The SQLite dialect both hosts run. Parameters never carry large bytes. */
|
|
26
|
+
export type ReplicaSqlValue = string | number | bigint | null | Uint8Array;
|
|
27
|
+
export type ReplicaSqlRow = Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Statement execution in the host's current transaction. Node answers
|
|
30
|
+
* synchronously (better-sqlite3); PS-Lite answers with promises (native
|
|
31
|
+
* SQLite over the bridge). Statements are PS constants, never user input.
|
|
32
|
+
*/
|
|
33
|
+
export interface ReplicaSql {
|
|
34
|
+
get(sql: string, params: readonly ReplicaSqlValue[]): ReplicaSqlRow | undefined | Promise<ReplicaSqlRow | undefined>;
|
|
35
|
+
all(sql: string, params: readonly ReplicaSqlValue[]): ReplicaSqlRow[] | Promise<ReplicaSqlRow[]>;
|
|
36
|
+
run(sql: string, params: readonly ReplicaSqlValue[]): {
|
|
37
|
+
changes: number;
|
|
38
|
+
} | Promise<{
|
|
39
|
+
changes: number;
|
|
40
|
+
}>;
|
|
41
|
+
/** Run a parameterless script: schema migrations only. */
|
|
42
|
+
exec(sql: string): void | Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
/** What every host context offers. Hosts extend it with their own handles. */
|
|
45
|
+
export interface ReplicaEffectContext {
|
|
46
|
+
readonly sql: ReplicaSql;
|
|
47
|
+
}
|
|
48
|
+
/** Yield one operation and return its result. */
|
|
49
|
+
export declare function perform<T, C = ReplicaEffectContext>(op: (context: C) => T | Promise<T>): ReplicaEffect<T, C>;
|
|
50
|
+
/** Thrown when a synchronous host is handed asynchronous storage work. */
|
|
51
|
+
export declare class ReplicaAsyncEffectError extends Error {
|
|
52
|
+
constructor();
|
|
53
|
+
}
|
|
54
|
+
/** Run an effect to completion inside the caller's synchronous transaction. */
|
|
55
|
+
export declare function runEffectSync<T, C>(effect: ReplicaEffect<T, C>, context: C): T;
|
|
56
|
+
/** Run an effect to completion inside the caller's asynchronous transaction. */
|
|
57
|
+
export declare function runEffectAsync<T, C>(effect: ReplicaEffect<T, C>, context: C): Promise<T>;
|
|
58
|
+
/** Statement helpers. Every call is one yielded operation. */
|
|
59
|
+
export declare const sql: {
|
|
60
|
+
/** A missing row is `undefined` on every host, also when a bridge sends `null`. */
|
|
61
|
+
get<R = ReplicaSqlRow>(text: string, ...params: ReplicaSqlValue[]): ReplicaEffect<R | undefined, ReplicaEffectContext>;
|
|
62
|
+
all<R = ReplicaSqlRow>(text: string, ...params: ReplicaSqlValue[]): ReplicaEffect<R[], ReplicaEffectContext>;
|
|
63
|
+
run(text: string, ...params: ReplicaSqlValue[]): ReplicaEffect<{
|
|
64
|
+
changes: number;
|
|
65
|
+
}, ReplicaEffectContext>;
|
|
66
|
+
exec(text: string): ReplicaEffect<void, ReplicaEffectContext>;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/replication/effects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC;AAE1E,wDAAwD;AACxD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAChE,SAAS,CAAC,CAAC,CAAC,EACZ,CAAC,EACD,OAAO,CACR,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC;AAC3E,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CACD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAClE,GAAG,CACD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,GAAG,CACD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,eAAe,EAAE,GACjC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,0DAA0D;IAC1D,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B;AAED,iDAAiD;AACjD,wBAAiB,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAClD,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACjC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAErB;AAOD,0EAA0E;AAC1E,qBAAa,uBAAwB,SAAQ,KAAK;;CAKjD;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAChC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,EAAE,CAAC,GACT,CAAC,CAkBH;AAED,gFAAgF;AAChF,wBAAsB,cAAc,CAAC,CAAC,EAAE,CAAC,EACvC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,CAAC,CAAC,CAaZ;AAED,8DAA8D;AAC9D,eAAO,MAAM,GAAG;IACd,mFAAmF;QAC/E,CAAC,wBAAwB,MAAM,aAAa,eAAe,EAAE;QAQ7D,CAAC,wBAAwB,MAAM,aAAa,eAAe,EAAE;cAKvD,MAAM,aAAa,eAAe,EAAE;iBAClB,MAAM;;eAIvB,MAAM;CAGlB,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage effects: phase logic written once, run by a synchronous host
|
|
3
|
+
* (Node, better-sqlite3) and by an asynchronous one (PS-Lite, a native
|
|
4
|
+
* transaction over a bridge).
|
|
5
|
+
*
|
|
6
|
+
* An effect is a generator. Each value it yields is one storage operation,
|
|
7
|
+
* a function of the host's transaction context. A runner calls the
|
|
8
|
+
* operation and resumes the generator with its result, or throws its error
|
|
9
|
+
* into the generator, so `try`/`catch` inside phase logic works the same on
|
|
10
|
+
* both hosts. The synchronous runner refuses an operation that returns a
|
|
11
|
+
* promise: Node's transactions cannot span an `await`, so a synchronous
|
|
12
|
+
* host must never be handed asynchronous work.
|
|
13
|
+
*
|
|
14
|
+
* Phase logic composes effects with `yield*`. It never awaits inside an
|
|
15
|
+
* effect; I/O happens outside transactions, between effects.
|
|
16
|
+
*/
|
|
17
|
+
/** Yield one operation and return its result. */
|
|
18
|
+
export function* perform(op) {
|
|
19
|
+
return (yield op);
|
|
20
|
+
}
|
|
21
|
+
const thenable = (value) => typeof value === "object" &&
|
|
22
|
+
value !== null &&
|
|
23
|
+
typeof value.then === "function";
|
|
24
|
+
/** Thrown when a synchronous host is handed asynchronous storage work. */
|
|
25
|
+
export class ReplicaAsyncEffectError extends Error {
|
|
26
|
+
constructor() {
|
|
27
|
+
super("replica effect returned a promise in a synchronous host");
|
|
28
|
+
this.name = "ReplicaAsyncEffectError";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** Run an effect to completion inside the caller's synchronous transaction. */
|
|
32
|
+
export function runEffectSync(effect, context) {
|
|
33
|
+
let step = effect.next();
|
|
34
|
+
while (!step.done) {
|
|
35
|
+
let value;
|
|
36
|
+
try {
|
|
37
|
+
value = step.value(context);
|
|
38
|
+
if (thenable(value)) {
|
|
39
|
+
// Never leave the operation's rejection unobserved.
|
|
40
|
+
Promise.resolve(value).catch(() => undefined);
|
|
41
|
+
throw new ReplicaAsyncEffectError();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
step = effect.throw(error);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
step = effect.next(value);
|
|
49
|
+
}
|
|
50
|
+
return step.value;
|
|
51
|
+
}
|
|
52
|
+
/** Run an effect to completion inside the caller's asynchronous transaction. */
|
|
53
|
+
export async function runEffectAsync(effect, context) {
|
|
54
|
+
let step = effect.next();
|
|
55
|
+
while (!step.done) {
|
|
56
|
+
let value;
|
|
57
|
+
try {
|
|
58
|
+
value = await step.value(context);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
step = effect.throw(error);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
step = effect.next(value);
|
|
65
|
+
}
|
|
66
|
+
return step.value;
|
|
67
|
+
}
|
|
68
|
+
/** Statement helpers. Every call is one yielded operation. */
|
|
69
|
+
export const sql = {
|
|
70
|
+
/** A missing row is `undefined` on every host, also when a bridge sends `null`. */
|
|
71
|
+
get(text, ...params) {
|
|
72
|
+
return perform((context) => {
|
|
73
|
+
const row = context.sql.get(text, params);
|
|
74
|
+
return thenable(row)
|
|
75
|
+
? Promise.resolve(row).then((value) => (value ?? undefined))
|
|
76
|
+
: (row ?? undefined);
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
all(text, ...params) {
|
|
80
|
+
return perform((context) => context.sql.all(text, params));
|
|
81
|
+
},
|
|
82
|
+
run(text, ...params) {
|
|
83
|
+
return perform((context) => context.sql.run(text, params));
|
|
84
|
+
},
|
|
85
|
+
exec(text) {
|
|
86
|
+
return perform((context) => context.sql.exec(text));
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../src/replication/effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { ReplicaByteBudget, type Admission, type ReplicaResourceLimits } from "./limits.js";
|
|
2
|
+
import { type EnvelopeExpectation, type ReplicaEnvelope, type ReplicaOperation } from "./envelope.js";
|
|
3
|
+
import { type Predecessor } from "./transport.js";
|
|
4
|
+
import { type ReplicaTransportPort } from "./dpv2.js";
|
|
5
|
+
import { type AsyncReplicaCoordinatorStatePort, type ReplicaCoordinatorStatePort, type ProgressReport, type ReplicaBudget } from "./coordinator.js";
|
|
6
|
+
import { type ReplicaPhase } from "./outcome.js";
|
|
7
|
+
import { type CopyDecision, type FinalizedFact } from "./copy-promotion.js";
|
|
8
|
+
import { type ReplicaRosterPort } from "./roster.js";
|
|
9
|
+
import { type ReplicaBatchSigner, type ReplicaEnvironment, type ReplicaWriterSeed } from "./writer-identity.js";
|
|
10
|
+
import type { ReplicationRefusal } from "./door.js";
|
|
11
|
+
import { type ReplicaMergePlan } from "./merge-plan.js";
|
|
12
|
+
import { type ReplicaEffect, type ReplicaEffectContext } from "./effects.js";
|
|
13
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
14
|
+
/**
|
|
15
|
+
* One reconcile attempt's work: retained operations it may load, and their
|
|
16
|
+
* JSON bytes. The attempt reserves the bytes, times the live-copy factor,
|
|
17
|
+
* from the process byte budget. A single key larger than a page still runs
|
|
18
|
+
* alone.
|
|
19
|
+
*/
|
|
20
|
+
export declare const REPLICA_RECONCILE_PAGE: {
|
|
21
|
+
readonly operations: 2000;
|
|
22
|
+
readonly bytes: number;
|
|
23
|
+
};
|
|
24
|
+
/** Default bound on the operations one batch (one registration) covers. */
|
|
25
|
+
export declare const REPLICA_BATCH_OPERATIONS = 10000;
|
|
26
|
+
/**
|
|
27
|
+
* Default bound on the estimated payload bytes of one batch. One operation
|
|
28
|
+
* always fits, so a single larger blob makes a larger batch.
|
|
29
|
+
*/
|
|
30
|
+
export declare const REPLICA_BATCH_BYTES: number;
|
|
31
|
+
/** An unresolved AddData intent is retried only after this bounded window. */
|
|
32
|
+
export declare const REPLICA_REGISTRATION_INTENT_TIMEOUT_MS: number;
|
|
33
|
+
/** Per-writer recovery budget; only explicit owner acknowledgement resumes an exhausted writer. */
|
|
34
|
+
export declare const REPLICA_VERSION_SQUAT_ATTEMPTS = 8;
|
|
35
|
+
export declare const REPLICA_VERSION_SQUAT_WINDOW_MS: number;
|
|
36
|
+
export declare const REPLICA_ENGINE_MIGRATION = "\nCREATE TABLE IF NOT EXISTS pdpp_transport_lock (id INTEGER PRIMARY KEY CHECK(id=1), pid INTEGER NOT NULL, token TEXT NOT NULL);\nCREATE TABLE IF NOT EXISTS pdpp_transport_state (\n id INTEGER PRIMARY KEY CHECK(id=1), owner TEXT NOT NULL, writer TEXT NOT NULL,\n baseline_cursor INTEGER NOT NULL DEFAULT 0, baseline_done INTEGER NOT NULL DEFAULT 0,\n tail_cursor INTEGER, sequence INTEGER NOT NULL DEFAULT 0, previous_json TEXT, scan_cursor TEXT);\nCREATE TABLE IF NOT EXISTS pdpp_transport_batches (\n batch TEXT PRIMARY KEY, sequence INTEGER UNIQUE NOT NULL, previous_json TEXT,\n collected_at TEXT NOT NULL, digest TEXT NOT NULL, total_bytes INTEGER NOT NULL,\n prepared INTEGER NOT NULL DEFAULT 0, admission_json TEXT, outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT);\nCREATE TABLE IF NOT EXISTS pdpp_transport_staged_fragments (\n token TEXT NOT NULL, position INTEGER NOT NULL, digest TEXT NOT NULL, encrypted BLOB NOT NULL,\n PRIMARY KEY(token,position));\nCREATE TABLE IF NOT EXISTS pdpp_transport_fragments_out (\n batch TEXT NOT NULL, position INTEGER NOT NULL, digest TEXT NOT NULL, encrypted BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'ready', outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT, PRIMARY KEY(batch,position));\nCREATE TABLE IF NOT EXISTS pdpp_transport_preparation_progress (\n batch TEXT PRIMARY KEY, statement TEXT NOT NULL, chunk_bytes INTEGER NOT NULL,\n next_index INTEGER NOT NULL, source_position INTEGER NOT NULL, source_offset INTEGER NOT NULL);\nCREATE TABLE IF NOT EXISTS pdpp_transport_manifests_out (\n batch TEXT PRIMARY KEY, scope TEXT NOT NULL, version INTEGER NOT NULL,\n plaintext BLOB NOT NULL, encrypted BLOB NOT NULL, data_hash TEXT NOT NULL, metadata_hash TEXT NOT NULL,\n state TEXT NOT NULL DEFAULT 'ready', outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT, UNIQUE(scope,version));\nCREATE TABLE IF NOT EXISTS pdpp_transport_registration_intents (\n scope TEXT NOT NULL, version INTEGER NOT NULL, owner TEXT NOT NULL,\n manifest_hash TEXT NOT NULL, request_id TEXT NOT NULL UNIQUE,\n created_at INTEGER NOT NULL, attempted_at INTEGER NOT NULL,\n attempts INTEGER NOT NULL DEFAULT 1, status TEXT NOT NULL DEFAULT 'unresolved',\n PRIMARY KEY(scope,version));\nCREATE TABLE IF NOT EXISTS pdpp_transport_manifests_in (\n slot TEXT PRIMARY KEY, scope TEXT NOT NULL, version INTEGER NOT NULL, writer TEXT NOT NULL,\n manifest_json TEXT, data_hash TEXT, metadata_hash TEXT, batch TEXT, sequence INTEGER,\n state TEXT NOT NULL DEFAULT 'ready', evidence_checked INTEGER NOT NULL DEFAULT 0, outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT,\n UNIQUE(scope,version));\nCREATE TABLE IF NOT EXISTS pdpp_transport_fragments_in (\n slot TEXT NOT NULL, position INTEGER NOT NULL, digest TEXT NOT NULL, bytes INTEGER NOT NULL,\n fragment_json TEXT, state TEXT NOT NULL DEFAULT 'ready', outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT, PRIMARY KEY(slot,position));\nCREATE TABLE IF NOT EXISTS pdpp_transport_fragment_parts (\n slot TEXT NOT NULL, position INTEGER NOT NULL, part INTEGER NOT NULL, json TEXT NOT NULL,\n PRIMARY KEY(slot,position,part));\nCREATE TABLE IF NOT EXISTS pdpp_transport_discover_floor (scope TEXT PRIMARY KEY, version INTEGER NOT NULL);\nCREATE INDEX IF NOT EXISTS pdpp_manifests_in_batch ON pdpp_transport_manifests_in(writer,batch);\nCREATE INDEX IF NOT EXISTS pdpp_manifests_in_checked ON pdpp_transport_manifests_in(evidence_checked) WHERE state='imported';\nCREATE TABLE IF NOT EXISTS pdpp_transport_imported (\n writer TEXT NOT NULL, batch TEXT NOT NULL, sequence INTEGER NOT NULL, digest TEXT NOT NULL,\n PRIMARY KEY(writer,batch), UNIQUE(writer,sequence));\nCREATE TABLE IF NOT EXISTS pdpp_transport_import_work (\n writer TEXT NOT NULL, batch TEXT NOT NULL, sequence INTEGER NOT NULL,\n outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT, refetch_attempts INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(writer,batch));\nCREATE INDEX IF NOT EXISTS pdpp_import_work_dependency ON pdpp_transport_import_work(dependency) WHERE outcome='wait';\nCREATE TABLE IF NOT EXISTS pdpp_transport_phase_state (\n phase TEXT PRIMARY KEY, outcome TEXT, reason TEXT, cause_json TEXT, dependency TEXT, error TEXT,\n attempts INTEGER NOT NULL DEFAULT 0, next_attempt INTEGER NOT NULL DEFAULT 0,\n wait_since INTEGER, checked_block TEXT, fingerprint TEXT);\nCREATE TABLE IF NOT EXISTS pdpp_transport_reconcile_pass (\n id INTEGER PRIMARY KEY CHECK(id=1), dependency_json TEXT);\n";
|
|
37
|
+
/** Column reset that makes a receiver row fresh work again. */
|
|
38
|
+
export declare const REPLICA_RESET_WORK = "outcome=NULL,reason=NULL,cause_json=NULL,dependency=NULL,error=NULL,attempts=0,wait_since=NULL,checked_block=NULL";
|
|
39
|
+
/** The owner binding every phase runs under, validated before any phase. */
|
|
40
|
+
export declare class ReplicaAuthorityError extends Error {
|
|
41
|
+
readonly code = "replica_authority_mismatch";
|
|
42
|
+
constructor();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The database holds state of the earlier carrier (one registration per
|
|
46
|
+
* fragment). This worker cannot read it, and mixing the two layouts would
|
|
47
|
+
* corrupt both. Testers start such a database fresh.
|
|
48
|
+
*/
|
|
49
|
+
export declare class ReplicaCarrierMismatchError extends Error {
|
|
50
|
+
readonly code = "replica_carrier_mismatch";
|
|
51
|
+
constructor();
|
|
52
|
+
}
|
|
53
|
+
/** The engine's writer identity (host contract §3.2). */
|
|
54
|
+
export interface ReplicaEngineIdentity {
|
|
55
|
+
incarnation: number;
|
|
56
|
+
seed: ReplicaWriterSeed;
|
|
57
|
+
transportWriter: string;
|
|
58
|
+
operationWriter: string;
|
|
59
|
+
}
|
|
60
|
+
export type ReplicaEngineIdentityState = {
|
|
61
|
+
tag: "ready";
|
|
62
|
+
identity: ReplicaEngineIdentity;
|
|
63
|
+
} | {
|
|
64
|
+
tag: "waiting";
|
|
65
|
+
reason: "server_not_registered" | "roster_unavailable";
|
|
66
|
+
} | {
|
|
67
|
+
tag: "refused";
|
|
68
|
+
reason: ReplicationRefusal;
|
|
69
|
+
};
|
|
70
|
+
/** A page of local operations, from the baseline or the tail. */
|
|
71
|
+
export interface ReplicaExportPage {
|
|
72
|
+
operations: ReplicaOperation[];
|
|
73
|
+
nextAfterSequence: number;
|
|
74
|
+
hasMore: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface ReplicaExportPageOptions {
|
|
77
|
+
afterSequence?: number;
|
|
78
|
+
limit: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The local operations a writer publishes. Storage reads and writes are
|
|
82
|
+
* effects in the engine's transaction; blob bytes stream outside it.
|
|
83
|
+
*/
|
|
84
|
+
export interface ReplicaEngineExporter<C> {
|
|
85
|
+
readBaselinePage(options: ReplicaExportPageOptions): ReplicaEffect<ReplicaExportPage, C>;
|
|
86
|
+
readTailPage(options: ReplicaExportPageOptions): ReplicaEffect<ReplicaExportPage, C>;
|
|
87
|
+
getBaselineCheckpoint(): ReplicaEffect<number, C>;
|
|
88
|
+
acknowledgeBaselinePage(expected: number, next: number): ReplicaEffect<void, C>;
|
|
89
|
+
/** A new writer re-captures current state as its baseline. */
|
|
90
|
+
rebaseline(): ReplicaEffect<{
|
|
91
|
+
after: number;
|
|
92
|
+
} | undefined, C>;
|
|
93
|
+
/**
|
|
94
|
+
* Every binding this host retained for its own operations, beyond the
|
|
95
|
+
* current expected set (Node: `pdpp_replica_declaration_history`). An
|
|
96
|
+
* operation captured before a rebinding keeps its binding and still
|
|
97
|
+
* publishes. A host without binding history returns none.
|
|
98
|
+
*/
|
|
99
|
+
declarationHistory(): ReplicaEffect<readonly EnvelopeExpectation["declarations"][number][], C>;
|
|
100
|
+
/**
|
|
101
|
+
* The gateway confirmed the registration of a tail batch: every local
|
|
102
|
+
* operation up to `next` (a tail cursor) is published. A host with an
|
|
103
|
+
* outbox moves past them; called in order, possibly more than once.
|
|
104
|
+
*/
|
|
105
|
+
acknowledgePublished(next: number): ReplicaEffect<void, C>;
|
|
106
|
+
readPinnedBlobChunks(blobId: string): Iterable<Uint8Array> | AsyncIterable<Uint8Array>;
|
|
107
|
+
}
|
|
108
|
+
/** Outcome of promoting a retained copy (contract v3.1). */
|
|
109
|
+
export type ReplicaEngineCopyPromotion = {
|
|
110
|
+
kind: "promoted";
|
|
111
|
+
} | {
|
|
112
|
+
kind: "wait_predecessor";
|
|
113
|
+
} | {
|
|
114
|
+
kind: "terminal";
|
|
115
|
+
reason: string;
|
|
116
|
+
};
|
|
117
|
+
/** A copy of a batch as the import phase stages it. */
|
|
118
|
+
export interface ReplicaEngineStagedCopy {
|
|
119
|
+
id: string;
|
|
120
|
+
writer: string;
|
|
121
|
+
batch: string;
|
|
122
|
+
sequence: number;
|
|
123
|
+
previous: Predecessor | null;
|
|
124
|
+
envelopeDigest: string;
|
|
125
|
+
envelope: ReplicaEnvelope;
|
|
126
|
+
fragments: readonly {
|
|
127
|
+
dataHash: string;
|
|
128
|
+
metadataHash: string;
|
|
129
|
+
}[];
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Retained copies, finalized facts and canonical import (contract v3.1).
|
|
133
|
+
* Every method is an effect in the engine's outcome transaction, except
|
|
134
|
+
* `setPendingEnabled`.
|
|
135
|
+
*/
|
|
136
|
+
export interface ReplicaEngineReceiver<C> {
|
|
137
|
+
setPendingEnabled(enabled: boolean): void;
|
|
138
|
+
quarantine(input: {
|
|
139
|
+
credential: unknown;
|
|
140
|
+
id: string;
|
|
141
|
+
reason: string;
|
|
142
|
+
}): ReplicaEffect<void, C>;
|
|
143
|
+
/**
|
|
144
|
+
* Reconcile one page of retained history; `restart` begins a new pass.
|
|
145
|
+
* `complete` is true when the pass has no queued work left.
|
|
146
|
+
*/
|
|
147
|
+
reconcileStep(input: {
|
|
148
|
+
credential: unknown;
|
|
149
|
+
page: {
|
|
150
|
+
operations: number;
|
|
151
|
+
bytes: number;
|
|
152
|
+
};
|
|
153
|
+
restart: boolean;
|
|
154
|
+
}): ReplicaEffect<{
|
|
155
|
+
plan: Pick<ReplicaMergePlan, "pending">;
|
|
156
|
+
complete: boolean;
|
|
157
|
+
}, C>;
|
|
158
|
+
/** Whether an open pass still has queued pages. */
|
|
159
|
+
reconcileQueued(): ReplicaEffect<boolean, C>;
|
|
160
|
+
copies: {
|
|
161
|
+
list(id: string): ReplicaEffect<readonly {
|
|
162
|
+
copyKey: string;
|
|
163
|
+
}[], C>;
|
|
164
|
+
decide(id: string, refetch: {
|
|
165
|
+
attempts: number;
|
|
166
|
+
budget: number;
|
|
167
|
+
}): ReplicaEffect<CopyDecision, C>;
|
|
168
|
+
apply(input: {
|
|
169
|
+
credential: unknown;
|
|
170
|
+
id: string;
|
|
171
|
+
decision: CopyDecision;
|
|
172
|
+
}): ReplicaEffect<void, C>;
|
|
173
|
+
stage(input: {
|
|
174
|
+
credential: unknown;
|
|
175
|
+
copy: ReplicaEngineStagedCopy;
|
|
176
|
+
/** Attached staging, by the key `ReplicaEngineStaging.attach` returned. */
|
|
177
|
+
stagedBlobs: {
|
|
178
|
+
blobId: string;
|
|
179
|
+
key: string;
|
|
180
|
+
sizeBytes: number;
|
|
181
|
+
}[];
|
|
182
|
+
refetch: {
|
|
183
|
+
attempts: number;
|
|
184
|
+
budget: number;
|
|
185
|
+
};
|
|
186
|
+
}): ReplicaEffect<unknown, C>;
|
|
187
|
+
recordFact(input: {
|
|
188
|
+
credential: unknown;
|
|
189
|
+
id: string;
|
|
190
|
+
scope: string;
|
|
191
|
+
fragmentIndex: number;
|
|
192
|
+
fact: FinalizedFact;
|
|
193
|
+
}): ReplicaEffect<boolean, C>;
|
|
194
|
+
promote(input: {
|
|
195
|
+
credential: unknown;
|
|
196
|
+
id: string;
|
|
197
|
+
copyKey?: string;
|
|
198
|
+
}): ReplicaEffect<ReplicaEngineCopyPromotion, C>;
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/** One staged object being written. */
|
|
202
|
+
export interface ReplicaEngineStagedWriter<H> {
|
|
203
|
+
write(bytes: Uint8Array): MaybePromise<void>;
|
|
204
|
+
complete(): MaybePromise<H>;
|
|
205
|
+
}
|
|
206
|
+
type ExpectedObject = {
|
|
207
|
+
blobId: string;
|
|
208
|
+
sha256: string;
|
|
209
|
+
sizeBytes: number;
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Received blob bytes, staged outside any transaction and attached to the
|
|
213
|
+
* import's outcome transaction (Node: `pdpp-replica-staging.ts`; PS-Lite:
|
|
214
|
+
* native blob staging).
|
|
215
|
+
*/
|
|
216
|
+
export interface ReplicaEngineStaging<C, H = unknown> {
|
|
217
|
+
begin(admission: Admission): ReplicaEngineStagedWriter<H>;
|
|
218
|
+
verify(handle: H, expected: ExpectedObject): MaybePromise<void>;
|
|
219
|
+
/** In the outcome transaction; returns the key the receiver copies from. */
|
|
220
|
+
attach(handle: H, expected: ExpectedObject): ReplicaEffect<string, C>;
|
|
221
|
+
abort(admission: Admission): MaybePromise<void>;
|
|
222
|
+
reclaimAdmission(admission: Admission): MaybePromise<number>;
|
|
223
|
+
cleanup(): MaybePromise<number>;
|
|
224
|
+
cleanupAttachedTemporaryBytes(): MaybePromise<number>;
|
|
225
|
+
}
|
|
226
|
+
/** The replication door (core `door.ts`) as the host enforces it. */
|
|
227
|
+
export interface ReplicaEngineDoor {
|
|
228
|
+
admitted(): boolean;
|
|
229
|
+
beginStep(signal: AbortSignal | undefined): {
|
|
230
|
+
signal: AbortSignal;
|
|
231
|
+
close(): void;
|
|
232
|
+
};
|
|
233
|
+
assertStepOpen(signal: AbortSignal): void;
|
|
234
|
+
assertTransactionOpen(signal: AbortSignal): void;
|
|
235
|
+
}
|
|
236
|
+
/** What a host gives the engine. `C` is its storage transaction context. */
|
|
237
|
+
export interface ReplicaEngineHost<C extends ReplicaEffectContext> {
|
|
238
|
+
/**
|
|
239
|
+
* Run one effect now. Node answers synchronously, outside a transaction
|
|
240
|
+
* unless the effect opens one; PS-Lite runs it as one native transaction.
|
|
241
|
+
*/
|
|
242
|
+
run<T>(effect: ReplicaEffect<T, C>): MaybePromise<T>;
|
|
243
|
+
/** One immediate write transaction around `effect` (Node `BEGIN IMMEDIATE`). */
|
|
244
|
+
immediate<T>(effect: ReplicaEffect<T, C>): ReplicaEffect<T, C>;
|
|
245
|
+
/** One deferred transaction around `effect` (Node `BEGIN`). */
|
|
246
|
+
transaction<T>(effect: ReplicaEffect<T, C>): ReplicaEffect<T, C>;
|
|
247
|
+
/**
|
|
248
|
+
* Run an attempt's commit inside the coordinator's checkpoint, whose
|
|
249
|
+
* transaction is `context`, at the receiver's atomic boundary.
|
|
250
|
+
*/
|
|
251
|
+
commit<T>(effect: ReplicaEffect<T, C>, context: unknown, signal: AbortSignal): MaybePromise<T>;
|
|
252
|
+
/** Best-effort cleanup after an attempt; never awaited by the coordinator. */
|
|
253
|
+
cleanup(effect: ReplicaEffect<unknown, C>): void;
|
|
254
|
+
/** Writes the door's capture fence counts as captures, not bypasses. */
|
|
255
|
+
captureWrites<T>(effect: ReplicaEffect<T, C>): ReplicaEffect<T, C>;
|
|
256
|
+
door: ReplicaEngineDoor;
|
|
257
|
+
/** A fresh UUID (Node: `node:crypto`, which seeded tests replace). */
|
|
258
|
+
randomId(): string;
|
|
259
|
+
/** One writer per database. */
|
|
260
|
+
lock: {
|
|
261
|
+
busy(): boolean;
|
|
262
|
+
acquire(token: string): MaybePromise<void>;
|
|
263
|
+
release(token: string): MaybePromise<void>;
|
|
264
|
+
};
|
|
265
|
+
identity: {
|
|
266
|
+
current(): ReplicaEffect<ReplicaEngineIdentity | undefined, C>;
|
|
267
|
+
enable(input: {
|
|
268
|
+
owner: string;
|
|
269
|
+
server: string;
|
|
270
|
+
roster: ReplicaRosterPort;
|
|
271
|
+
signal: AbortSignal;
|
|
272
|
+
}): Promise<ReplicaEngineIdentityState>;
|
|
273
|
+
};
|
|
274
|
+
/** The coordinator's durable rotation, fenced by the writer lock. */
|
|
275
|
+
coordinatorState(input: {
|
|
276
|
+
owner: () => string | undefined;
|
|
277
|
+
signal: () => AbortSignal | undefined;
|
|
278
|
+
enabled: () => boolean;
|
|
279
|
+
}): ReplicaCoordinatorStatePort | AsyncReplicaCoordinatorStatePort<C>;
|
|
280
|
+
staging(input: {
|
|
281
|
+
/** False for the host's own cleanup, never a test's injected store. */
|
|
282
|
+
injected: boolean;
|
|
283
|
+
repositoryId: string;
|
|
284
|
+
owner: string;
|
|
285
|
+
now: () => number;
|
|
286
|
+
assertOpen: () => void;
|
|
287
|
+
}): ReplicaEngineStaging<C>;
|
|
288
|
+
/**
|
|
289
|
+
* At step start, inside the transaction that drops staged fragments:
|
|
290
|
+
* delete staged bytes that no staged-object row tracks.
|
|
291
|
+
*/
|
|
292
|
+
sweepStages(): ReplicaEffect<void, C>;
|
|
293
|
+
/** Reclaim redundant host-specific canonical copies within the byte budget. */
|
|
294
|
+
compactCanonical?(bytes: number): ReplicaEffect<void, C>;
|
|
295
|
+
exporter: ReplicaEngineExporter<C>;
|
|
296
|
+
receiver: ReplicaEngineReceiver<C>;
|
|
297
|
+
/**
|
|
298
|
+
* Local connection bindings for the reconcile fingerprint: any JSON value
|
|
299
|
+
* that changes when a mapping does.
|
|
300
|
+
*/
|
|
301
|
+
bindings(): ReplicaEffect<unknown, C>;
|
|
302
|
+
}
|
|
303
|
+
/** Engine configuration that does not depend on the host. */
|
|
304
|
+
export interface ReplicaEngineConfig {
|
|
305
|
+
enabled?: boolean;
|
|
306
|
+
expected: () => EnvelopeExpectation;
|
|
307
|
+
credential: unknown;
|
|
308
|
+
transport: ReplicaTransportPort;
|
|
309
|
+
/** Who may write (host contract §3). */
|
|
310
|
+
authority: {
|
|
311
|
+
/**
|
|
312
|
+
* The registered PS server key: Node `key.json`, or the Lite server
|
|
313
|
+
* identity. Never the owner wallet or the Lite owner sync signer.
|
|
314
|
+
*/
|
|
315
|
+
signer: ReplicaBatchSigner;
|
|
316
|
+
/**
|
|
317
|
+
* The gateway roster, uncached. The worker caches each answer for at most
|
|
318
|
+
* REPLICA_ROSTER_MAX_AGE_MS on its own clock.
|
|
319
|
+
*/
|
|
320
|
+
roster: ReplicaRosterPort;
|
|
321
|
+
/** EIP-712 domain chain and environment of this owner's partition. */
|
|
322
|
+
chainId: number;
|
|
323
|
+
environment: ReplicaEnvironment;
|
|
324
|
+
};
|
|
325
|
+
now?: () => number;
|
|
326
|
+
maxBlobBytes?: number;
|
|
327
|
+
targetChunkBytes?: number;
|
|
328
|
+
/**
|
|
329
|
+
* Bounds on one batch, so on what one registration covers. A batch closes
|
|
330
|
+
* at whichever bound it reaches first; it always takes one operation.
|
|
331
|
+
*/
|
|
332
|
+
maxBatchOperations?: number;
|
|
333
|
+
maxBatchBytes?: number;
|
|
334
|
+
/** Units per phase per step. Defaults keep today's per-cycle limits. */
|
|
335
|
+
quantum?: Partial<Record<ReplicaPhase, number>>;
|
|
336
|
+
/** Items per writer per step. */
|
|
337
|
+
perWriter?: number;
|
|
338
|
+
/** Per-run deadline; a late result is discarded. */
|
|
339
|
+
deadlineMs?: number;
|
|
340
|
+
/**
|
|
341
|
+
* Delay after a successful revalidation of one imported slot. The default 0
|
|
342
|
+
* rechecks every imported slot round-robin on every step, so a finalized
|
|
343
|
+
* conflict retracts data on the next step.
|
|
344
|
+
*/
|
|
345
|
+
revalidateIntervalMs?: number;
|
|
346
|
+
/** Completed non-matching re-downloads of a batch before the owner decides. */
|
|
347
|
+
refetchBudget?: number;
|
|
348
|
+
/** Maximum age before a slot with authoritative absence may be resubmitted. */
|
|
349
|
+
registrationIntentTimeoutMs?: number;
|
|
350
|
+
/** Tests can share a smaller ledger to prove concurrent admission behavior. */
|
|
351
|
+
resourceBudget?: ReplicaByteBudget;
|
|
352
|
+
/** Test-scaled bounds; production uses the shared source-derived defaults. */
|
|
353
|
+
resourceLimits?: Partial<ReplicaResourceLimits>;
|
|
354
|
+
/** Test-scaled reconcile page; production uses `REPLICA_RECONCILE_PAGE`. */
|
|
355
|
+
reconcilePage?: {
|
|
356
|
+
operations: number;
|
|
357
|
+
bytes: number;
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
/** What the engine gives a host: the worker's public operations. */
|
|
361
|
+
export interface ReplicaEngine {
|
|
362
|
+
step(input?: {
|
|
363
|
+
now?: number;
|
|
364
|
+
budget?: ReplicaBudget;
|
|
365
|
+
signal?: AbortSignal;
|
|
366
|
+
}): Promise<ProgressReport>;
|
|
367
|
+
retryVersionSquats(): MaybePromise<number>;
|
|
368
|
+
cycle(): Promise<void>;
|
|
369
|
+
readmitUnsupported(): MaybePromise<number>;
|
|
370
|
+
readmitFragments(): MaybePromise<number>;
|
|
371
|
+
onDependencyChanged(key: string): MaybePromise<number>;
|
|
372
|
+
/** Settles when construction-time storage work is done (PS-Lite). */
|
|
373
|
+
ready: MaybePromise<void>;
|
|
374
|
+
}
|
|
375
|
+
/** Internal experiment only. No bootstrap wiring; false by default. */
|
|
376
|
+
export declare function createReplicaEngine<C extends ReplicaEffectContext>(host: ReplicaEngineHost<C>, deps: ReplicaEngineConfig): ReplicaEngine;
|
|
377
|
+
export {};
|
|
378
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/replication/engine.ts"],"names":[],"mappings":"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"}
|