@qlever-llc/trellis 0.10.22 → 0.11.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/auth/mod.d.ts +1 -1
- package/esm/auth/mod.d.ts.map +1 -1
- package/esm/auth/mod.js +1 -1
- package/esm/auth/protocol.d.ts +55 -0
- package/esm/auth/protocol.d.ts.map +1 -1
- package/esm/browser.d.ts +3 -3
- package/esm/browser.d.ts.map +1 -1
- package/esm/browser.js +1 -1
- package/esm/client_connect.d.ts +12 -3
- package/esm/client_connect.d.ts.map +1 -1
- package/esm/client_connect.js +112 -7
- package/esm/codec.d.ts +7 -6
- package/esm/codec.d.ts.map +1 -1
- package/esm/codec.js +125 -6
- package/esm/contract_support/canonical.d.ts +3 -0
- package/esm/contract_support/canonical.d.ts.map +1 -1
- package/esm/contract_support/canonical.js +3 -0
- package/esm/contract_support/mod.d.ts +125 -10
- package/esm/contract_support/mod.d.ts.map +1 -1
- package/esm/contract_support/mod.js +159 -5
- package/esm/contract_support/protocol.d.ts +92 -7
- package/esm/contract_support/protocol.d.ts.map +1 -1
- package/esm/contract_support/protocol.js +41 -7
- package/esm/contract_support/runtime.d.ts +4 -1
- package/esm/contract_support/runtime.d.ts.map +1 -1
- package/esm/errors/SchemaValidationError.d.ts +49 -0
- package/esm/errors/SchemaValidationError.d.ts.map +1 -0
- package/esm/errors/SchemaValidationError.js +67 -0
- package/esm/errors/index.d.ts +38 -9
- package/esm/errors/index.d.ts.map +1 -1
- package/esm/errors/index.js +16 -0
- package/esm/generated-sdk/auth/api.d.ts +33 -605
- package/esm/generated-sdk/auth/api.d.ts.map +1 -1
- package/esm/generated-sdk/auth/api.js +6 -1
- package/esm/generated-sdk/auth/client.d.ts +129 -134
- package/esm/generated-sdk/auth/client.d.ts.map +1 -1
- package/esm/generated-sdk/auth/contract.d.ts +2 -601
- package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
- package/esm/generated-sdk/auth/contract.js +310 -93
- package/esm/generated-sdk/auth/mod.d.ts +1 -1
- package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
- package/esm/generated-sdk/auth/owned_api.d.ts +88 -86
- package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/auth/owned_api.js +6 -0
- package/esm/generated-sdk/auth/schemas.d.ts +284 -136
- package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/auth/schemas.js +231 -92
- package/esm/generated-sdk/auth/types.d.ts +565 -89
- package/esm/generated-sdk/auth/types.d.ts.map +1 -1
- package/esm/generated-sdk/auth/types.js +1 -1
- package/esm/generated-sdk/health/api.d.ts +29 -18
- package/esm/generated-sdk/health/api.d.ts.map +1 -1
- package/esm/generated-sdk/health/client.d.ts +7 -21
- package/esm/generated-sdk/health/client.d.ts.map +1 -1
- package/esm/generated-sdk/health/contract.d.ts +2 -15
- package/esm/generated-sdk/health/contract.d.ts.map +1 -1
- package/esm/generated-sdk/health/contract.js +2 -10
- package/esm/generated-sdk/health/mod.d.ts +1 -1
- package/esm/generated-sdk/health/mod.d.ts.map +1 -1
- package/esm/generated-sdk/health/owned_api.d.ts +2 -2
- package/esm/generated-sdk/health/schemas.d.ts +1 -14
- package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/health/schemas.js +1 -9
- package/esm/generated-sdk/health/types.d.ts +10 -5
- package/esm/generated-sdk/health/types.d.ts.map +1 -1
- package/esm/generated-sdk/health/types.js +1 -2
- package/esm/generated-sdk/jobs/api.d.ts +29 -109
- package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/client.d.ts +21 -33
- package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/contract.d.ts +2 -106
- package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/contract.js +268 -1
- package/esm/generated-sdk/jobs/mod.d.ts +1 -1
- package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/owned_api.d.ts +22 -9
- package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/owned_api.js +20 -1
- package/esm/generated-sdk/jobs/schemas.d.ts +437 -0
- package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/schemas.js +211 -0
- package/esm/generated-sdk/jobs/types.d.ts +195 -12
- package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/types.js +1 -1
- package/esm/generated-sdk/state/api.d.ts +29 -68
- package/esm/generated-sdk/state/api.d.ts.map +1 -1
- package/esm/generated-sdk/state/client.d.ts +17 -31
- package/esm/generated-sdk/state/client.d.ts.map +1 -1
- package/esm/generated-sdk/state/contract.d.ts +1 -64
- package/esm/generated-sdk/state/contract.d.ts.map +1 -1
- package/esm/generated-sdk/state/mod.d.ts +1 -1
- package/esm/generated-sdk/state/mod.d.ts.map +1 -1
- package/esm/generated-sdk/state/owned_api.d.ts +7 -7
- package/esm/generated-sdk/state/types.d.ts +52 -9
- package/esm/generated-sdk/state/types.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/api.d.ts +33 -45
- package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/api.js +6 -1
- package/esm/generated-sdk/trellis-core/client.d.ts +31 -20
- package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/contract.d.ts +2 -41
- package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/contract.js +91 -1
- package/esm/generated-sdk/trellis-core/mod.d.ts +1 -1
- package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/owned_api.d.ts +4 -4
- package/esm/generated-sdk/trellis-core/schemas.d.ts +113 -0
- package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/schemas.js +81 -0
- package/esm/generated-sdk/trellis-core/types.d.ts +54 -7
- package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/types.js +1 -1
- package/esm/health.d.ts +1 -1
- package/esm/health.d.ts.map +1 -1
- package/esm/health.js +1 -1
- package/esm/index.d.ts +4 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -2
- package/esm/jobs.d.ts +69 -3
- package/esm/jobs.d.ts.map +1 -1
- package/esm/jobs.js +92 -3
- package/esm/server/health.d.ts +2 -6
- package/esm/server/health.d.ts.map +1 -1
- package/esm/server/health_schemas.d.ts +0 -8
- package/esm/server/health_schemas.d.ts.map +1 -1
- package/esm/server/health_schemas.js +0 -5
- package/esm/server/internal_jobs/bindings.d.ts +11 -0
- package/esm/server/internal_jobs/bindings.d.ts.map +1 -1
- package/esm/server/internal_jobs/job-manager.d.ts +58 -2
- package/esm/server/internal_jobs/job-manager.d.ts.map +1 -1
- package/esm/server/internal_jobs/job-manager.js +429 -55
- package/esm/server/internal_jobs/key-coordinator.d.ts +269 -0
- package/esm/server/internal_jobs/key-coordinator.d.ts.map +1 -0
- package/esm/server/internal_jobs/key-coordinator.js +677 -0
- package/esm/server/internal_jobs/projection.d.ts.map +1 -1
- package/esm/server/internal_jobs/projection.js +2 -0
- package/esm/server/internal_jobs/runtime-worker.d.ts +5 -1
- package/esm/server/internal_jobs/runtime-worker.d.ts.map +1 -1
- package/esm/server/internal_jobs/runtime-worker.js +14 -2
- package/esm/server/internal_jobs/types.d.ts +5 -5
- package/esm/server/internal_jobs/types.d.ts.map +1 -1
- package/esm/server/internal_jobs/types.js +6 -0
- package/esm/server/runtime.d.ts.map +1 -1
- package/esm/server/service.d.ts +81 -112
- package/esm/server/service.d.ts.map +1 -1
- package/esm/server/service.js +372 -130
- package/esm/server.d.ts +3 -3
- package/esm/server.d.ts.map +1 -1
- package/esm/service/deno.d.ts +1 -1
- package/esm/service/deno.d.ts.map +1 -1
- package/esm/service/drizzle.d.ts +52 -0
- package/esm/service/drizzle.d.ts.map +1 -0
- package/esm/service/drizzle.js +108 -0
- package/esm/service/mod.d.ts +3 -3
- package/esm/service/mod.d.ts.map +1 -1
- package/esm/service/mod.js +2 -2
- package/esm/service/node.d.ts +1 -1
- package/esm/service/node.d.ts.map +1 -1
- package/esm/service/outbox_inbox.d.ts +76 -22
- package/esm/service/outbox_inbox.d.ts.map +1 -1
- package/esm/service/outbox_inbox.js +231 -70
- package/esm/telemetry/metrics.d.ts +55 -0
- package/esm/telemetry/metrics.d.ts.map +1 -1
- package/esm/telemetry/metrics.js +86 -0
- package/esm/telemetry/mod.d.ts +2 -1
- package/esm/telemetry/mod.d.ts.map +1 -1
- package/esm/telemetry/mod.js +1 -1
- package/esm/trellis.d.ts +62 -30
- package/esm/trellis.d.ts.map +1 -1
- package/esm/trellis.js +125 -42
- package/package.json +14 -2
- package/script/auth/mod.d.ts +1 -1
- package/script/auth/mod.d.ts.map +1 -1
- package/script/auth/mod.js +11 -4
- package/script/auth/protocol.d.ts +55 -0
- package/script/auth/protocol.d.ts.map +1 -1
- package/script/browser.d.ts +3 -3
- package/script/browser.d.ts.map +1 -1
- package/script/browser.js +3 -2
- package/script/client_connect.d.ts +12 -3
- package/script/client_connect.d.ts.map +1 -1
- package/script/client_connect.js +111 -6
- package/script/codec.d.ts +7 -6
- package/script/codec.d.ts.map +1 -1
- package/script/codec.js +124 -5
- package/script/contract_support/canonical.d.ts +3 -0
- package/script/contract_support/canonical.d.ts.map +1 -1
- package/script/contract_support/canonical.js +3 -0
- package/script/contract_support/mod.d.ts +125 -10
- package/script/contract_support/mod.d.ts.map +1 -1
- package/script/contract_support/mod.js +165 -5
- package/script/contract_support/protocol.d.ts +92 -7
- package/script/contract_support/protocol.d.ts.map +1 -1
- package/script/contract_support/protocol.js +42 -8
- package/script/contract_support/runtime.d.ts +4 -1
- package/script/contract_support/runtime.d.ts.map +1 -1
- package/script/errors/SchemaValidationError.d.ts +49 -0
- package/script/errors/SchemaValidationError.d.ts.map +1 -0
- package/script/errors/SchemaValidationError.js +74 -0
- package/script/errors/index.d.ts +38 -9
- package/script/errors/index.d.ts.map +1 -1
- package/script/errors/index.js +20 -1
- package/script/generated-sdk/auth/api.d.ts +33 -605
- package/script/generated-sdk/auth/api.d.ts.map +1 -1
- package/script/generated-sdk/auth/api.js +6 -1
- package/script/generated-sdk/auth/client.d.ts +129 -134
- package/script/generated-sdk/auth/client.d.ts.map +1 -1
- package/script/generated-sdk/auth/contract.d.ts +2 -601
- package/script/generated-sdk/auth/contract.d.ts.map +1 -1
- package/script/generated-sdk/auth/contract.js +310 -93
- package/script/generated-sdk/auth/mod.d.ts +1 -1
- package/script/generated-sdk/auth/mod.d.ts.map +1 -1
- package/script/generated-sdk/auth/owned_api.d.ts +88 -86
- package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/auth/owned_api.js +6 -0
- package/script/generated-sdk/auth/schemas.d.ts +284 -136
- package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
- package/script/generated-sdk/auth/schemas.js +231 -92
- package/script/generated-sdk/auth/types.d.ts +565 -89
- package/script/generated-sdk/auth/types.d.ts.map +1 -1
- package/script/generated-sdk/auth/types.js +1 -1
- package/script/generated-sdk/health/api.d.ts +29 -18
- package/script/generated-sdk/health/api.d.ts.map +1 -1
- package/script/generated-sdk/health/client.d.ts +7 -21
- package/script/generated-sdk/health/client.d.ts.map +1 -1
- package/script/generated-sdk/health/contract.d.ts +2 -15
- package/script/generated-sdk/health/contract.d.ts.map +1 -1
- package/script/generated-sdk/health/contract.js +2 -10
- package/script/generated-sdk/health/mod.d.ts +1 -1
- package/script/generated-sdk/health/mod.d.ts.map +1 -1
- package/script/generated-sdk/health/owned_api.d.ts +2 -2
- package/script/generated-sdk/health/schemas.d.ts +1 -14
- package/script/generated-sdk/health/schemas.d.ts.map +1 -1
- package/script/generated-sdk/health/schemas.js +1 -9
- package/script/generated-sdk/health/types.d.ts +10 -5
- package/script/generated-sdk/health/types.d.ts.map +1 -1
- package/script/generated-sdk/health/types.js +1 -2
- package/script/generated-sdk/jobs/api.d.ts +29 -109
- package/script/generated-sdk/jobs/api.d.ts.map +1 -1
- package/script/generated-sdk/jobs/client.d.ts +21 -33
- package/script/generated-sdk/jobs/client.d.ts.map +1 -1
- package/script/generated-sdk/jobs/contract.d.ts +2 -106
- package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
- package/script/generated-sdk/jobs/contract.js +268 -1
- package/script/generated-sdk/jobs/mod.d.ts +1 -1
- package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
- package/script/generated-sdk/jobs/owned_api.d.ts +22 -9
- package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/jobs/owned_api.js +19 -0
- package/script/generated-sdk/jobs/schemas.d.ts +437 -0
- package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
- package/script/generated-sdk/jobs/schemas.js +212 -1
- package/script/generated-sdk/jobs/types.d.ts +195 -12
- package/script/generated-sdk/jobs/types.d.ts.map +1 -1
- package/script/generated-sdk/jobs/types.js +1 -1
- package/script/generated-sdk/state/api.d.ts +29 -68
- package/script/generated-sdk/state/api.d.ts.map +1 -1
- package/script/generated-sdk/state/client.d.ts +17 -31
- package/script/generated-sdk/state/client.d.ts.map +1 -1
- package/script/generated-sdk/state/contract.d.ts +1 -64
- package/script/generated-sdk/state/contract.d.ts.map +1 -1
- package/script/generated-sdk/state/mod.d.ts +1 -1
- package/script/generated-sdk/state/mod.d.ts.map +1 -1
- package/script/generated-sdk/state/owned_api.d.ts +7 -7
- package/script/generated-sdk/state/types.d.ts +52 -9
- package/script/generated-sdk/state/types.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/api.d.ts +33 -45
- package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/api.js +6 -1
- package/script/generated-sdk/trellis-core/client.d.ts +31 -20
- package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/contract.d.ts +2 -41
- package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/contract.js +91 -1
- package/script/generated-sdk/trellis-core/mod.d.ts +1 -1
- package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/owned_api.d.ts +4 -4
- package/script/generated-sdk/trellis-core/schemas.d.ts +113 -0
- package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/schemas.js +81 -0
- package/script/generated-sdk/trellis-core/types.d.ts +54 -7
- package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/types.js +1 -1
- package/script/health.d.ts +1 -1
- package/script/health.d.ts.map +1 -1
- package/script/health.js +1 -2
- package/script/index.d.ts +4 -4
- package/script/index.d.ts.map +1 -1
- package/script/index.js +2 -2
- package/script/jobs.d.ts +69 -3
- package/script/jobs.d.ts.map +1 -1
- package/script/jobs.js +93 -3
- package/script/server/health.d.ts +2 -6
- package/script/server/health.d.ts.map +1 -1
- package/script/server/health_schemas.d.ts +0 -8
- package/script/server/health_schemas.d.ts.map +1 -1
- package/script/server/health_schemas.js +1 -6
- package/script/server/internal_jobs/bindings.d.ts +11 -0
- package/script/server/internal_jobs/bindings.d.ts.map +1 -1
- package/script/server/internal_jobs/job-manager.d.ts +58 -2
- package/script/server/internal_jobs/job-manager.d.ts.map +1 -1
- package/script/server/internal_jobs/job-manager.js +429 -54
- package/script/server/internal_jobs/key-coordinator.d.ts +269 -0
- package/script/server/internal_jobs/key-coordinator.d.ts.map +1 -0
- package/script/server/internal_jobs/key-coordinator.js +690 -0
- package/script/server/internal_jobs/projection.d.ts.map +1 -1
- package/script/server/internal_jobs/projection.js +2 -0
- package/script/server/internal_jobs/runtime-worker.d.ts +5 -1
- package/script/server/internal_jobs/runtime-worker.d.ts.map +1 -1
- package/script/server/internal_jobs/runtime-worker.js +14 -2
- package/script/server/internal_jobs/types.d.ts +5 -5
- package/script/server/internal_jobs/types.d.ts.map +1 -1
- package/script/server/internal_jobs/types.js +6 -0
- package/script/server/runtime.d.ts.map +1 -1
- package/script/server/service.d.ts +81 -112
- package/script/server/service.d.ts.map +1 -1
- package/script/server/service.js +369 -127
- package/script/server.d.ts +3 -3
- package/script/server.d.ts.map +1 -1
- package/script/service/deno.d.ts +1 -1
- package/script/service/deno.d.ts.map +1 -1
- package/script/service/drizzle.d.ts +52 -0
- package/script/service/drizzle.d.ts.map +1 -0
- package/script/service/drizzle.js +113 -0
- package/script/service/mod.d.ts +3 -3
- package/script/service/mod.d.ts.map +1 -1
- package/script/service/mod.js +4 -3
- package/script/service/node.d.ts +1 -1
- package/script/service/node.d.ts.map +1 -1
- package/script/service/outbox_inbox.d.ts +76 -22
- package/script/service/outbox_inbox.d.ts.map +1 -1
- package/script/service/outbox_inbox.js +233 -70
- package/script/telemetry/metrics.d.ts +55 -0
- package/script/telemetry/metrics.d.ts.map +1 -1
- package/script/telemetry/metrics.js +88 -0
- package/script/telemetry/mod.d.ts +2 -1
- package/script/telemetry/mod.d.ts.map +1 -1
- package/script/telemetry/mod.js +3 -1
- package/script/trellis.d.ts +62 -30
- package/script/trellis.d.ts.map +1 -1
- package/script/trellis.js +124 -41
- package/src/auth/mod.ts +7 -0
- package/src/browser.ts +5 -7
- package/src/client_connect.ts +200 -12
- package/src/codec.ts +186 -11
- package/src/contract_support/canonical.ts +3 -0
- package/src/contract_support/mod.ts +380 -9
- package/src/contract_support/protocol.ts +57 -10
- package/src/contract_support/runtime.ts +7 -0
- package/src/errors/SchemaValidationError.ts +67 -0
- package/src/errors/index.ts +28 -0
- package/src/health.ts +0 -1
- package/src/index.ts +7 -8
- package/src/jobs.ts +138 -1
- package/src/sdk/_generated/auth/api.ts +38 -7
- package/src/sdk/_generated/auth/client.ts +168 -530
- package/src/sdk/_generated/auth/contract.ts +310 -93
- package/src/sdk/_generated/auth/mod.ts +0 -1
- package/src/sdk/_generated/auth/owned_api.ts +92 -86
- package/src/sdk/_generated/auth/schemas.ts +231 -92
- package/src/sdk/_generated/auth/types.ts +1069 -273
- package/src/sdk/_generated/core/api.ts +38 -7
- package/src/sdk/_generated/core/client.ts +47 -73
- package/src/sdk/_generated/core/contract.ts +91 -1
- package/src/sdk/_generated/core/mod.ts +0 -1
- package/src/sdk/_generated/core/owned_api.ts +4 -4
- package/src/sdk/_generated/core/schemas.ts +81 -0
- package/src/sdk/_generated/core/types.ts +79 -15
- package/src/sdk/_generated/health/api.ts +29 -5
- package/src/sdk/_generated/health/client.ts +11 -58
- package/src/sdk/_generated/health/contract.ts +2 -10
- package/src/sdk/_generated/health/mod.ts +0 -1
- package/src/sdk/_generated/health/owned_api.ts +2 -2
- package/src/sdk/_generated/health/schemas.ts +1 -9
- package/src/sdk/_generated/health/types.ts +23 -2
- package/src/sdk/_generated/jobs/api.ts +29 -5
- package/src/sdk/_generated/jobs/client.ts +25 -109
- package/src/sdk/_generated/jobs/contract.ts +269 -1
- package/src/sdk/_generated/jobs/mod.ts +0 -1
- package/src/sdk/_generated/jobs/owned_api.ts +30 -9
- package/src/sdk/_generated/jobs/schemas.ts +213 -0
- package/src/sdk/_generated/jobs/types.ts +252 -18
- package/src/sdk/_generated/state/api.ts +29 -5
- package/src/sdk/_generated/state/client.ts +18 -95
- package/src/sdk/_generated/state/mod.ts +0 -1
- package/src/sdk/_generated/state/owned_api.ts +7 -7
- package/src/sdk/_generated/state/types.ts +91 -15
- package/src/server/health.ts +2 -6
- package/src/server/health_schemas.ts +0 -6
- package/src/server/internal_jobs/bindings.ts +11 -0
- package/src/server/internal_jobs/job-manager.ts +553 -24
- package/src/server/internal_jobs/key-coordinator.ts +1080 -0
- package/src/server/internal_jobs/projection.ts +2 -0
- package/src/server/internal_jobs/runtime-worker.ts +17 -1
- package/src/server/internal_jobs/types.ts +6 -0
- package/src/server/runtime.ts +4 -0
- package/src/server/service.ts +645 -625
- package/src/server.ts +14 -7
- package/src/service/deno.ts +0 -5
- package/src/service/drizzle.ts +184 -0
- package/src/service/mod.ts +17 -7
- package/src/service/node.ts +0 -5
- package/src/service/outbox_inbox.ts +354 -88
- package/src/telemetry/metrics.ts +198 -1
- package/src/telemetry/mod.ts +6 -0
- package/src/trellis.ts +286 -105
|
@@ -117,6 +117,8 @@ type StartQueueWorkerLoopOptions<TResult> = {
|
|
|
117
117
|
resultSchema?: SchemaRef;
|
|
118
118
|
validateResult?: (args: ResultValidationArgs<TResult>) => Promise<void> | void;
|
|
119
119
|
handler: (job: ActiveJob<unknown, TResult>) => Promise<TResult>;
|
|
120
|
+
instanceId?: string;
|
|
121
|
+
deferralBackoffMs?: number;
|
|
120
122
|
};
|
|
121
123
|
type StartNatsQueueWorkerOptions<TResult> = StartNatsRuntimeDeps & {
|
|
122
124
|
manager: JobManager<unknown, TResult>;
|
|
@@ -128,6 +130,7 @@ type StartNatsQueueWorkerOptions<TResult> = StartNatsRuntimeDeps & {
|
|
|
128
130
|
validatePayload?: (args: PayloadValidationArgs<TResult>) => Promise<void> | void;
|
|
129
131
|
validateResult?: (args: ResultValidationArgs<TResult>) => Promise<void> | void;
|
|
130
132
|
handler: (job: ActiveJob<unknown, TResult>) => Promise<TResult>;
|
|
133
|
+
instanceId?: string;
|
|
131
134
|
};
|
|
132
135
|
export declare function processWorkPayloadWithContextAndHeartbeat<TResult>(manager: JobManager<unknown, TResult>, payload: Uint8Array, cancellation: JobCancellationToken, heartbeat: () => Promise<void>, handler: (job: ActiveJob<unknown, TResult>) => Promise<TResult>, validation?: {
|
|
133
136
|
payloadSchema?: SchemaRef;
|
|
@@ -135,8 +138,9 @@ export declare function processWorkPayloadWithContextAndHeartbeat<TResult>(manag
|
|
|
135
138
|
resultSchema?: SchemaRef;
|
|
136
139
|
validateResult?: (args: ResultValidationArgs<TResult>) => Promise<void> | void;
|
|
137
140
|
}, runtime?: {
|
|
141
|
+
latestState?: Job["state"];
|
|
138
142
|
redeliveryCount?: number;
|
|
139
|
-
}): Promise<JobProcessOutcome<TResult> | undefined>;
|
|
143
|
+
}, instanceId?: string): Promise<JobProcessOutcome<TResult> | undefined>;
|
|
140
144
|
export declare function projectedWorkDecision(projected: Job | undefined, _work: Job): ProjectedWorkDecision;
|
|
141
145
|
export declare function lifecycleWorkDecision(latest: JobEvent | undefined): ProjectedWorkDecision;
|
|
142
146
|
export declare function ackActionForOutcome(outcome: JobProcessOutcome<unknown> | undefined): WorkerAckAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-worker.d.ts","sourceRoot":"","sources":["../../../src/server/internal_jobs/runtime-worker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime-worker.d.ts","sourceRoot":"","sources":["../../../src/server/internal_jobs/runtime-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ function toWorkerConsumer(consumer) {
|
|
|
65
65
|
},
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
-
async function processWorkPayloadWithContextAndHeartbeat(manager, payload, cancellation, heartbeat, handler, validation, runtime) {
|
|
68
|
+
async function processWorkPayloadWithContextAndHeartbeat(manager, payload, cancellation, heartbeat, handler, validation, runtime, instanceId) {
|
|
69
69
|
const event = parseWorkPayloadEvent(payload);
|
|
70
70
|
if (!event) {
|
|
71
71
|
return undefined;
|
|
@@ -86,7 +86,9 @@ async function processWorkPayloadWithContextAndHeartbeat(manager, payload, cance
|
|
|
86
86
|
}
|
|
87
87
|
return await handler(activeJob);
|
|
88
88
|
}, {
|
|
89
|
+
latestState: runtime?.latestState,
|
|
89
90
|
redeliveryCount: runtime?.redeliveryCount,
|
|
91
|
+
instanceId,
|
|
90
92
|
}, {
|
|
91
93
|
validateResult: validation?.validateResult
|
|
92
94
|
? (result, resultJob) => validation.validateResult({
|
|
@@ -116,6 +118,7 @@ function ackActionForOutcome(outcome) {
|
|
|
116
118
|
switch (outcome.outcome) {
|
|
117
119
|
case "retry":
|
|
118
120
|
case "interrupted":
|
|
121
|
+
case "deferred":
|
|
119
122
|
return "nak";
|
|
120
123
|
default:
|
|
121
124
|
return "ack";
|
|
@@ -170,6 +173,7 @@ async function startQueueWorkerLoop(options) {
|
|
|
170
173
|
continue;
|
|
171
174
|
}
|
|
172
175
|
if (lifecycleWorkDecision(latestLifecycle) === "skip-ack") {
|
|
176
|
+
await options.manager.cleanupQueuedKeyedJob(job);
|
|
173
177
|
registry.clearPending(key);
|
|
174
178
|
await msg.ack();
|
|
175
179
|
continue;
|
|
@@ -183,6 +187,7 @@ async function startQueueWorkerLoop(options) {
|
|
|
183
187
|
continue;
|
|
184
188
|
}
|
|
185
189
|
if (projectedWorkDecision(projected, job) === "skip-ack") {
|
|
190
|
+
await options.manager.cleanupQueuedKeyedJob(job);
|
|
186
191
|
registry.clearPending(key);
|
|
187
192
|
await msg.ack();
|
|
188
193
|
continue;
|
|
@@ -203,11 +208,15 @@ async function startQueueWorkerLoop(options) {
|
|
|
203
208
|
resultSchema: options.resultSchema,
|
|
204
209
|
validateResult: options.validateResult,
|
|
205
210
|
}, {
|
|
211
|
+
latestState: latestLifecycle?.state,
|
|
206
212
|
redeliveryCount: msg.info?.redeliveryCount,
|
|
207
|
-
});
|
|
213
|
+
}, options.instanceId);
|
|
208
214
|
if (ackActionForOutcome(outcome) === "ack") {
|
|
209
215
|
await msg.ack();
|
|
210
216
|
}
|
|
217
|
+
else if (outcome?.outcome === "deferred") {
|
|
218
|
+
await msg.nak(options.deferralBackoffMs ?? 1_000);
|
|
219
|
+
}
|
|
211
220
|
else {
|
|
212
221
|
await msg.nak();
|
|
213
222
|
}
|
|
@@ -280,6 +289,8 @@ async function startNatsQueueWorker(options) {
|
|
|
280
289
|
resultSchema: queue.result,
|
|
281
290
|
validateResult: options.validateResult,
|
|
282
291
|
handler: options.handler,
|
|
292
|
+
instanceId: options.instanceId,
|
|
293
|
+
deferralBackoffMs: queue.backoffMs[0] ?? 1_000,
|
|
283
294
|
});
|
|
284
295
|
}
|
|
285
296
|
async function startWorkerHostFromBinding(binding, options) {
|
|
@@ -369,6 +380,7 @@ async function startNatsWorkerHostFromBinding(binding, options) {
|
|
|
369
380
|
validatePayload: options.validatePayload,
|
|
370
381
|
validateResult: options.validateResult,
|
|
371
382
|
handler: options.handler,
|
|
383
|
+
instanceId: options.instanceId,
|
|
372
384
|
};
|
|
373
385
|
return await (isCustomNatsRuntimeDeps(options)
|
|
374
386
|
? startNatsQueueWorker({
|
|
@@ -6,7 +6,7 @@ export declare const JobContextSchema: Type.TObject<{
|
|
|
6
6
|
tracestate: Type.TOptional<Type.TString>;
|
|
7
7
|
}>;
|
|
8
8
|
export type JobContext = StaticDecode<typeof JobContextSchema>;
|
|
9
|
-
export declare const JobStateSchema: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
9
|
+
export declare const JobStateSchema: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
10
10
|
export type JobState = StaticDecode<typeof JobStateSchema>;
|
|
11
11
|
export declare const JobLogEntrySchema: Type.TObject<{
|
|
12
12
|
timestamp: Type.TString;
|
|
@@ -25,7 +25,7 @@ export declare const JobSchema: Type.TObject<{
|
|
|
25
25
|
id: Type.TString;
|
|
26
26
|
service: Type.TString;
|
|
27
27
|
type: Type.TString;
|
|
28
|
-
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
28
|
+
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
29
29
|
context: Type.TObject<{
|
|
30
30
|
requestId: Type.TString;
|
|
31
31
|
traceId: Type.TString;
|
|
@@ -62,9 +62,9 @@ export declare const JobEventSchema: Type.TObject<{
|
|
|
62
62
|
jobId: Type.TString;
|
|
63
63
|
service: Type.TString;
|
|
64
64
|
jobType: Type.TString;
|
|
65
|
-
eventType: Type.TUnion<[Type.TLiteral<"created">, Type.TLiteral<"started">, Type.TLiteral<"retry">, Type.TLiteral<"progress">, Type.TLiteral<"logged">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"retried">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
66
|
-
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
67
|
-
previousState: Type.TOptional<Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>>;
|
|
65
|
+
eventType: Type.TUnion<[Type.TLiteral<"created">, Type.TLiteral<"started">, Type.TLiteral<"retry">, Type.TLiteral<"progress">, Type.TLiteral<"logged">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"heartbeat">, Type.TLiteral<"staleCompletionIgnored">, Type.TLiteral<"retried">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
66
|
+
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
|
|
67
|
+
previousState: Type.TOptional<Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>>;
|
|
68
68
|
context: Type.TObject<{
|
|
69
69
|
requestId: Type.TString;
|
|
70
70
|
traceId: Type.TString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/internal_jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,gBAAgB;;;;;EAO3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/internal_jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,gBAAgB;;;;;EAO3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,cAAc,0SAYzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;EAQ5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBpB,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IACjD,IAAI,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAC1D;IACA,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCzB,CAAC;AAEH,MAAM,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IACtD,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAC/D;IACA,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -18,6 +18,8 @@ exports.JobStateSchema = typebox_1.Type.Union([
|
|
|
18
18
|
typebox_1.Type.Literal("failed"),
|
|
19
19
|
typebox_1.Type.Literal("cancelled"),
|
|
20
20
|
typebox_1.Type.Literal("expired"),
|
|
21
|
+
typebox_1.Type.Literal("skipped"),
|
|
22
|
+
typebox_1.Type.Literal("stale"),
|
|
21
23
|
typebox_1.Type.Literal("dead"),
|
|
22
24
|
typebox_1.Type.Literal("dismissed"),
|
|
23
25
|
]);
|
|
@@ -69,6 +71,10 @@ exports.JobEventSchema = typebox_1.Type.Object({
|
|
|
69
71
|
typebox_1.Type.Literal("failed"),
|
|
70
72
|
typebox_1.Type.Literal("cancelled"),
|
|
71
73
|
typebox_1.Type.Literal("expired"),
|
|
74
|
+
typebox_1.Type.Literal("skipped"),
|
|
75
|
+
typebox_1.Type.Literal("stale"),
|
|
76
|
+
typebox_1.Type.Literal("heartbeat"),
|
|
77
|
+
typebox_1.Type.Literal("staleCompletionIgnored"),
|
|
72
78
|
typebox_1.Type.Literal("retried"),
|
|
73
79
|
typebox_1.Type.Literal("dead"),
|
|
74
80
|
typebox_1.Type.Literal("dismissed"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQzD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAE/E,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;AAE1D,mDAAmD;AACnD,MAAM,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,aAAa,CAAC,EAAE,eAAe,CAAC;CAIjC,CAAC"}
|
|
@@ -8,15 +8,17 @@ import type { TrellisContractV1 } from "../contract_support/mod.js";
|
|
|
8
8
|
import type { ContractJobsMetadata, ContractKvMetadata } from "../contract_support/mod.js";
|
|
9
9
|
import { CONTRACT_JOBS_METADATA, CONTRACT_KV_METADATA } from "../contract_support/mod.js";
|
|
10
10
|
import { AsyncResult, type BaseError, type MaybeAsync, Result } from "@qlever-llc/result";
|
|
11
|
-
import { type HealthCheckFn, ServiceHealth, type
|
|
11
|
+
import { type HealthCheckFn, ServiceHealth, type ServiceHealthCheckFn, type ServiceHealthInfoFn } from "./health.js";
|
|
12
12
|
import type { EventDesc } from "../contracts.js";
|
|
13
|
-
import type { AcceptedOperation, ActiveEventFacade, EventListenerContext,
|
|
13
|
+
import type { AcceptedOperation, ActiveEventFacade, EventListenerContext, FeedEventOf, FeedInputOf, FeedRegistration as RootFeedRegistration, HandlerTrellis, OperationHandlerContext, OperationHandlerErrorOf, OperationOutputOf, OperationProgressOf, OperationRuntimeHandle, OperationTransferContextOf, PreparedTrellisEvent, RpcHandlerContext, RpcHandlerErrorOf } from "../trellis.js";
|
|
14
14
|
import type { NatsConnectOpts } from "./runtime.js";
|
|
15
15
|
import { type LoggerLike } from "../globals.js";
|
|
16
16
|
import { TransferError, TransportError, UnexpectedError, ValidationError } from "../errors/index.js";
|
|
17
17
|
import type { ReceiveTransferGrant } from "../transfer.js";
|
|
18
|
-
import { ActiveJob as PublicActiveJob, JobRef } from "../jobs.js";
|
|
18
|
+
import { ActiveJob as PublicActiveJob, JobRef, type JobSubmitOutcome } from "../jobs.js";
|
|
19
|
+
import type { JobKeyConcurrencyBinding, JobQueuePolicyBinding } from "./internal_jobs/key-coordinator.js";
|
|
19
20
|
import { type TrellisConnection } from "../connection.js";
|
|
21
|
+
import { type OutboxDispatcherOptions, type OutboxMessage, type SqlDialect, type SqlExecutor, type SqlOutboxTables } from "../service/outbox_inbox.js";
|
|
20
22
|
type ExtraNatsConnectOpts = Omit<NatsConnectOpts, "servers" | "token" | "inboxPrefix" | "authenticator">;
|
|
21
23
|
type ResourceBindingJobsQueue = {
|
|
22
24
|
queueType: string;
|
|
@@ -37,6 +39,8 @@ type ResourceBindingJobsQueue = {
|
|
|
37
39
|
logs: boolean;
|
|
38
40
|
dlq: boolean;
|
|
39
41
|
concurrency: number;
|
|
42
|
+
keyConcurrency?: JobKeyConcurrencyBinding;
|
|
43
|
+
queue?: JobQueuePolicyBinding;
|
|
40
44
|
};
|
|
41
45
|
type ResourceBindingJobs = {
|
|
42
46
|
namespace: string;
|
|
@@ -187,54 +191,31 @@ type ContractOwnedApi<TContract extends ServiceContract<TrellisAPI, TrellisAPI |
|
|
|
187
191
|
type ContractTrellisApi<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>> = NonNullable<TContract["API"]["trellis"]> extends TrellisAPI ? NonNullable<TContract["API"]["trellis"]> : ContractOwnedApi<TContract>;
|
|
188
192
|
type ContractJobsOf<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>> = NonNullable<TContract[typeof CONTRACT_JOBS_METADATA]>;
|
|
189
193
|
type ContractKvOf<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>> = NonNullable<TContract[typeof CONTRACT_KV_METADATA]>;
|
|
190
|
-
type ContractJobName<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>> = keyof ContractJobsOf<TContract> & string;
|
|
191
194
|
type ContractEventName<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>> = ServiceEventName<ContractTrellisApi<TContract>>;
|
|
192
|
-
type ContractFeedName<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>> = keyof ContractOwnedApi<TContract>["feeds"] & string;
|
|
193
195
|
type ContractOperationName<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>> = keyof ContractOwnedApi<TContract>["operations"] & string;
|
|
194
|
-
type ContractJobPayload<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>, TJob extends ContractJobName<TContract>> = ContractJobsOf<TContract>[TJob]["payload"];
|
|
195
|
-
type ContractJobResult<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata>, TJob extends ContractJobName<TContract>> = ContractJobsOf<TContract>[TJob]["result"];
|
|
196
|
-
/** Arguments passed to a typed Trellis service job handler. */
|
|
197
|
-
export type JobArgs<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, TJob extends ContractJobName<TContract>, TDeps = undefined> = {
|
|
198
|
-
job: PublicActiveJob<ContractJobPayload<TContract, TJob>, ContractJobResult<TContract, TJob>>;
|
|
199
|
-
client: Trellis<ContractTrellisApi<TContract>, ContractKvOf<TContract>, ContractJobsOf<TContract>>;
|
|
200
|
-
} & WithDeps<TDeps>;
|
|
201
|
-
/** Result returned by a typed Trellis service job handler. */
|
|
202
|
-
export type JobResult<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, TJob extends ContractJobName<TContract>> = Result<ContractJobResult<TContract, TJob>, BaseError>;
|
|
203
|
-
type WithDeps<TDeps> = [TDeps] extends [undefined] ? {} : {
|
|
204
|
-
deps: TDeps;
|
|
205
|
-
};
|
|
206
196
|
/** Typed RPC handler function for an extracted Trellis service handler. */
|
|
207
|
-
export type RpcHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, M extends RpcMethodName<ContractOwnedApi<TContract
|
|
197
|
+
export type RpcHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, M extends RpcMethodName<ContractOwnedApi<TContract>>> = ({ input, context, client, }: {
|
|
208
198
|
input: RpcMethodInput<ContractOwnedApi<TContract>, M>;
|
|
209
199
|
context: RpcHandlerContext;
|
|
210
200
|
client: Trellis<ContractTrellisApi<TContract>, ContractKvOf<TContract>, ContractJobsOf<TContract>>;
|
|
211
|
-
}
|
|
201
|
+
}) => Promise<Result<RpcMethodOutput<ContractOwnedApi<TContract>, M>, RpcHandlerErrorOf<ContractOwnedApi<TContract>, M>>> | Result<RpcMethodOutput<ContractOwnedApi<TContract>, M>, RpcHandlerErrorOf<ContractOwnedApi<TContract>, M>>;
|
|
212
202
|
/** Typed event listener function for an extracted Trellis service listener. */
|
|
213
|
-
export type ServiceEventHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, E extends ContractEventName<TContract
|
|
203
|
+
export type ServiceEventHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, E extends ContractEventName<TContract>> = (args: {
|
|
214
204
|
event: ServiceEventOf<ContractTrellisApi<TContract>, E>;
|
|
215
205
|
context: EventListenerContext;
|
|
216
206
|
client: Trellis<ContractTrellisApi<TContract>, ContractKvOf<TContract>, ContractJobsOf<TContract>>;
|
|
217
|
-
}
|
|
218
|
-
/** Typed feed handler function for an extracted Trellis service handler. */
|
|
219
|
-
export type FeedHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, F extends ContractFeedName<TContract>, TDeps = undefined> = (context: {
|
|
220
|
-
input: FeedInputOf<ContractOwnedApi<TContract>, F>;
|
|
221
|
-
caller: unknown;
|
|
222
|
-
signal: AbortSignal;
|
|
223
|
-
emit(event: FeedEventOf<ContractOwnedApi<TContract>, F>): AsyncResult<void, ValidationError | UnexpectedError>;
|
|
224
|
-
client: Trellis<ContractTrellisApi<TContract>, ContractKvOf<TContract>, ContractJobsOf<TContract>>;
|
|
225
|
-
} & WithDeps<TDeps>) => unknown | Promise<unknown>;
|
|
226
|
-
/** Typed job handler function for an extracted Trellis service job handler. */
|
|
227
|
-
export type JobHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, TJob extends ContractJobName<TContract>, TDeps = undefined> = (args: JobArgs<TContract, TJob, TDeps>) => Promise<JobResult<TContract, TJob>>;
|
|
207
|
+
}) => MaybeAsync<void, BaseError>;
|
|
228
208
|
/** Typed operation handler function for an extracted Trellis service handler. */
|
|
229
|
-
export type OperationHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, O extends ContractOperationName<TContract
|
|
209
|
+
export type OperationHandler<TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>, O extends ContractOperationName<TContract>> = (args: OperationHandlerContext<InferSchemaType<ContractOwnedApi<TContract>["operations"][O]["input"]>, OperationProgressOf<ContractOwnedApi<TContract>, O>, OperationOutputOf<ContractOwnedApi<TContract>, O>, OperationTransferContextOf<ContractOwnedApi<TContract>, O>, OperationHandlerErrorOf<ContractOwnedApi<TContract>, O>> & {
|
|
230
210
|
client: Trellis<ContractTrellisApi<TContract>, ContractKvOf<TContract>, ContractJobsOf<TContract>>;
|
|
231
|
-
}
|
|
232
|
-
/** Typed health info function for an extracted
|
|
233
|
-
export type HealthInfoHandler
|
|
234
|
-
/** Typed health check function for an extracted
|
|
235
|
-
export type HealthCheckHandler
|
|
211
|
+
}) => unknown | Promise<unknown>;
|
|
212
|
+
/** Typed health info function for an extracted service health handler. */
|
|
213
|
+
export type HealthInfoHandler = ServiceHealthInfoFn;
|
|
214
|
+
/** Typed health check function for an extracted service health handler. */
|
|
215
|
+
export type HealthCheckHandler = ServiceHealthCheckFn;
|
|
236
216
|
export type JobQueue<TPayload, TResult, TTrellisApi extends TrellisAPI, TKv extends ContractKvMetadata = ContractKvMetadata, TJobs extends ContractJobsMetadata = {}> = {
|
|
237
217
|
create(payload: TPayload): AsyncResult<JobRef<TPayload, TResult>, BaseError>;
|
|
218
|
+
submit(payload: TPayload): AsyncResult<JobSubmitOutcome<TPayload, TResult>, BaseError>;
|
|
238
219
|
handle(handler: (args: {
|
|
239
220
|
job: PublicActiveJob<TPayload, TResult>;
|
|
240
221
|
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
@@ -245,80 +226,68 @@ export type JobsFacadeOf<TJobs extends ContractJobsMetadata, TTrellisApi extends
|
|
|
245
226
|
};
|
|
246
227
|
type ServiceEventName<TA extends TrellisAPI> = keyof TA["events"] & string;
|
|
247
228
|
type ServiceEventOf<TA extends TrellisAPI, E extends ServiceEventName<TA>> = TA["events"][E] extends EventDesc<infer TEvent> ? InferSchemaType<TEvent> : never;
|
|
248
|
-
type ServiceEventPayloadOf<TA extends TrellisAPI, E extends ServiceEventName<TA>> =
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
type
|
|
229
|
+
type ServiceEventPayloadOf<TA extends TrellisAPI, E extends ServiceEventName<TA>> = ServiceEventOf<TA, E> & Record<string, unknown>;
|
|
230
|
+
/** Runs SQL outbox work inside a caller-owned service database transaction. */
|
|
231
|
+
export type SqlOutboxTransactionRunner<TTx> = <TResult>(work: (context: {
|
|
232
|
+
tx: TTx;
|
|
233
|
+
executor: SqlExecutor;
|
|
234
|
+
}) => Promise<TResult> | TResult) => Promise<TResult>;
|
|
235
|
+
/** Options shared by all Trellis SQL outbox service bindings. */
|
|
236
|
+
export type TrellisServiceSqlOutboxCommonOptions = {
|
|
237
|
+
/** SQL dialect used by the Trellis helper tables. */
|
|
238
|
+
readonly dialect: SqlDialect;
|
|
239
|
+
/** Optional Trellis helper-table names; omitted names use Trellis defaults. */
|
|
240
|
+
readonly tables?: Partial<SqlOutboxTables>;
|
|
241
|
+
/** Optional process-local dispatcher tuning. */
|
|
242
|
+
readonly dispatcher?: OutboxDispatcherOptions;
|
|
243
|
+
};
|
|
244
|
+
/** Options for binding a Trellis service to generic caller-owned SQL storage. */
|
|
245
|
+
export type TrellisServiceSqlOutboxExecutorOptions<TTx> = TrellisServiceSqlOutboxCommonOptions & {
|
|
246
|
+
/** Non-transactional executor used by the process-local dispatcher. */
|
|
247
|
+
readonly executor: SqlExecutor;
|
|
248
|
+
/** Service-owned transaction runner for handler-scoped work. */
|
|
249
|
+
readonly transaction: SqlOutboxTransactionRunner<TTx>;
|
|
250
|
+
};
|
|
251
|
+
/** Options for binding a Trellis service to caller-owned SQL outbox storage. */
|
|
252
|
+
export type TrellisServiceSqlOutboxOptions<TTx> = TrellisServiceSqlOutboxExecutorOptions<TTx>;
|
|
253
|
+
/** Typed transaction-scoped event facade that enqueues prepared events. */
|
|
254
|
+
export type SqlOutboxEventEnqueueFacade<TEventApi extends TrellisAPI = TrellisAPI> = {
|
|
256
255
|
readonly [TGroup in SurfaceGroupName<ServiceEventName<TEventApi>>]: {
|
|
257
256
|
readonly [E in SurfaceKeysForGroup<ServiceEventName<TEventApi>, TGroup> as SurfaceLeafName<E>]: {
|
|
258
|
-
|
|
259
|
-
publish(event: ServiceEventPayloadOf<TEventApi, E>): AsyncResult<void, ValidationError | UnexpectedError>;
|
|
260
|
-
listen(handler: BoundEventHandleFn<TEventApi, TTrellisApi, E, TKv, TJobs, TDeps>, subjectData?: Record<string, unknown>, opts?: EventOpts): AsyncResult<void, ValidationError | UnexpectedError>;
|
|
261
|
-
};
|
|
262
|
-
};
|
|
263
|
-
};
|
|
264
|
-
type BoundRpcHandleFn<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, M extends RpcMethodName<TOwnedApi>, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata, TDeps> = (args: {
|
|
265
|
-
input: RpcMethodInput<TOwnedApi, M>;
|
|
266
|
-
context: RpcHandlerContext;
|
|
267
|
-
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
268
|
-
deps: TDeps;
|
|
269
|
-
}) => Promise<Result<RpcMethodOutput<TOwnedApi, M>, RpcHandlerErrorOf<TOwnedApi, M>>> | Result<RpcMethodOutput<TOwnedApi, M>, RpcHandlerErrorOf<TOwnedApi, M>>;
|
|
270
|
-
type BoundFeedHandleFn<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, F extends keyof TOwnedApi["feeds"] & string, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata, TDeps> = (context: {
|
|
271
|
-
input: FeedInputOf<TOwnedApi, F>;
|
|
272
|
-
caller: unknown;
|
|
273
|
-
signal: AbortSignal;
|
|
274
|
-
emit(event: FeedEventOf<TOwnedApi, F>): AsyncResult<void, ValidationError | UnexpectedError>;
|
|
275
|
-
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
276
|
-
deps: TDeps;
|
|
277
|
-
}) => unknown | Promise<unknown>;
|
|
278
|
-
type BoundOperationHandleFn<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, O extends keyof TOwnedApi["operations"] & string, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata, TDeps> = ((handler: (context: OperationHandlerContext<InferSchemaType<TOwnedApi["operations"][O]["input"]>, OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationTransferContextOf<TOwnedApi, O>> & {
|
|
279
|
-
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
280
|
-
deps: TDeps;
|
|
281
|
-
}) => unknown | Promise<unknown>) => Promise<void>) & Pick<OperationHandleFn<TOwnedApi, TTrellisApi, O, TKv, TJobs>, "accept" | "control">;
|
|
282
|
-
type BoundTypedServiceHandleFacade<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata, TDeps> = {
|
|
283
|
-
readonly rpc: {
|
|
284
|
-
readonly [TGroup in SurfaceGroupName<RpcMethodName<TOwnedApi>>]: {
|
|
285
|
-
readonly [M in SurfaceKeysForGroup<RpcMethodName<TOwnedApi>, TGroup> as SurfaceLeafName<M>]: (handler: BoundRpcHandleFn<TOwnedApi, TTrellisApi, M, TKv, TJobs, TDeps>) => Promise<void>;
|
|
286
|
-
};
|
|
287
|
-
};
|
|
288
|
-
readonly feed: {
|
|
289
|
-
readonly [TGroup in SurfaceGroupName<keyof TOwnedApi["feeds"] & string>]: {
|
|
290
|
-
readonly [F in SurfaceKeysForGroup<keyof TOwnedApi["feeds"] & string, TGroup> as SurfaceLeafName<F>]: (handler: BoundFeedHandleFn<TOwnedApi, TTrellisApi, F, TKv, TJobs, TDeps>) => Promise<void>;
|
|
291
|
-
};
|
|
292
|
-
};
|
|
293
|
-
readonly operation: {
|
|
294
|
-
readonly [TGroup in SurfaceGroupName<keyof TOwnedApi["operations"] & string>]: {
|
|
295
|
-
readonly [O in SurfaceKeysForGroup<keyof TOwnedApi["operations"] & string, TGroup> as SurfaceLeafName<O>]: BoundOperationHandleFn<TOwnedApi, TTrellisApi, O, TKv, TJobs, TDeps>;
|
|
257
|
+
enqueue(event: ServiceEventPayloadOf<TEventApi, E>): AsyncResult<OutboxMessage, ValidationError | UnexpectedError>;
|
|
296
258
|
};
|
|
297
259
|
};
|
|
298
260
|
};
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
}) => Promise<Result<TResult, BaseError>>): void;
|
|
261
|
+
/** Returned by outbox.job.<queue>.create/submit inside a transaction. */
|
|
262
|
+
export type SqlOutboxJobSubmission = {
|
|
263
|
+
readonly submissionId: string;
|
|
264
|
+
readonly jobId: string;
|
|
265
|
+
readonly queue: string;
|
|
266
|
+
readonly mode: "create" | "submit";
|
|
306
267
|
};
|
|
307
|
-
|
|
308
|
-
|
|
268
|
+
/** Transaction-scoped facade for enqueuing job creation/submission intents. */
|
|
269
|
+
export type SqlOutboxJobEnqueueFacade<TJobs extends ContractJobsMetadata> = {
|
|
270
|
+
readonly [K in keyof TJobs]: {
|
|
271
|
+
create(payload: TJobs[K]["payload"]): AsyncResult<SqlOutboxJobSubmission, ValidationError | UnexpectedError>;
|
|
272
|
+
submit(payload: TJobs[K]["payload"]): AsyncResult<SqlOutboxJobSubmission, ValidationError | UnexpectedError>;
|
|
273
|
+
};
|
|
309
274
|
};
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
275
|
+
/** Context supplied to `outbox.transaction(...)` work callbacks. */
|
|
276
|
+
export type SqlOutboxTransactionContext<TTx, TEventApi extends TrellisAPI = TrellisAPI, TJobs extends ContractJobsMetadata = ContractJobsMetadata> = {
|
|
277
|
+
/** Service-owned transaction object supplied by the configured runner. */
|
|
278
|
+
readonly tx: TTx;
|
|
279
|
+
/** Transaction-scoped typed event enqueue facade. */
|
|
280
|
+
readonly event: SqlOutboxEventEnqueueFacade<TEventApi>;
|
|
281
|
+
/** Transaction-scoped typed job enqueue facade. */
|
|
282
|
+
readonly job: SqlOutboxJobEnqueueFacade<TJobs>;
|
|
313
283
|
};
|
|
314
|
-
/**
|
|
315
|
-
export type
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
with<TNextDeps>(deps: TNextDeps): BoundTrellisService<TOwnedApi, TTrellisApi, TJobs, TKv, TNextDeps>;
|
|
284
|
+
/** Startup-created SQL outbox dependency for transactional event/job enqueue. */
|
|
285
|
+
export type SqlOutbox<TTx, TEventApi extends TrellisAPI = TrellisAPI, TJobs extends ContractJobsMetadata = ContractJobsMetadata> = {
|
|
286
|
+
/**
|
|
287
|
+
* Runs service DB work and typed event/job enqueue operations in one SQL
|
|
288
|
+
* transaction, notifying the dispatcher once after a successful commit.
|
|
289
|
+
*/
|
|
290
|
+
transaction<TResult>(work: (context: SqlOutboxTransactionContext<TTx, TEventApi, TJobs>) => Promise<TResult> | TResult): AsyncResult<TResult, ValidationError | UnexpectedError>;
|
|
322
291
|
};
|
|
323
292
|
type PascalSurfaceName<T extends string> = T extends `${infer Head}.${infer Tail}` ? `${Capitalize<Head>}${PascalSurfaceName<Tail>}` : Capitalize<T>;
|
|
324
293
|
type LowerCamelSurfaceName<T extends string> = Uncapitalize<PascalSurfaceName<T>>;
|
|
@@ -354,24 +323,24 @@ type FeedHandleFn<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI,
|
|
|
354
323
|
emit(event: FeedEventOf<TOwnedApi, F>): AsyncResult<void, ValidationError | UnexpectedError>;
|
|
355
324
|
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
356
325
|
}) => unknown | Promise<unknown>;
|
|
357
|
-
type OperationHandleFn<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, O extends keyof TOwnedApi["operations"] & string, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata> = ((handler: (context: OperationHandlerContext<InferSchemaType<TOwnedApi["operations"][O]["input"]>, OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationTransferContextOf<TOwnedApi, O>> & {
|
|
326
|
+
type OperationHandleFn<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, O extends keyof TOwnedApi["operations"] & string, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata> = ((handler: (context: OperationHandlerContext<InferSchemaType<TOwnedApi["operations"][O]["input"]>, OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationTransferContextOf<TOwnedApi, O>, OperationHandlerErrorOf<TOwnedApi, O>> & {
|
|
358
327
|
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
359
328
|
}) => unknown | Promise<unknown>) => Promise<void>) & {
|
|
360
329
|
accept(args: {
|
|
361
330
|
sessionKey: string;
|
|
362
|
-
}): AsyncResult<AcceptedOperation<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>>, UnexpectedError>;
|
|
363
|
-
control(operationId: string): AsyncResult<OperationRuntimeHandle<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>>, BaseError>;
|
|
331
|
+
}): AsyncResult<AcceptedOperation<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationHandlerErrorOf<TOwnedApi, O>>, UnexpectedError>;
|
|
332
|
+
control(operationId: string): AsyncResult<OperationRuntimeHandle<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationHandlerErrorOf<TOwnedApi, O>>, BaseError>;
|
|
364
333
|
};
|
|
365
334
|
export type OperationRegistration<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, O extends keyof TOwnedApi["operations"] & string, TKv extends ContractKvMetadata = ContractKvMetadata, TJobs extends ContractJobsMetadata = {}> = {
|
|
366
335
|
accept(args: {
|
|
367
336
|
sessionKey: string;
|
|
368
|
-
}): AsyncResult<AcceptedOperation<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>>, UnexpectedError>;
|
|
337
|
+
}): AsyncResult<AcceptedOperation<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationHandlerErrorOf<TOwnedApi, O>>, UnexpectedError>;
|
|
369
338
|
/**
|
|
370
339
|
* Loads an existing operation by id and returns a service-side control handle.
|
|
371
340
|
* The operation must belong to this service and registration name.
|
|
372
341
|
*/
|
|
373
|
-
control(operationId: string): AsyncResult<OperationRuntimeHandle<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>>, BaseError>;
|
|
374
|
-
handle(handler: (args: OperationHandlerContext<InferSchemaType<TOwnedApi["operations"][O]["input"]>, OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationTransferContextOf<TOwnedApi, O>> & {
|
|
342
|
+
control(operationId: string): AsyncResult<OperationRuntimeHandle<OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationHandlerErrorOf<TOwnedApi, O>>, BaseError>;
|
|
343
|
+
handle(handler: (args: OperationHandlerContext<InferSchemaType<TOwnedApi["operations"][O]["input"]>, OperationProgressOf<TOwnedApi, O>, OperationOutputOf<TOwnedApi, O>, OperationTransferContextOf<TOwnedApi, O>, OperationHandlerErrorOf<TOwnedApi, O>> & {
|
|
375
344
|
client: Trellis<TTrellisApi, TKv, TJobs>;
|
|
376
345
|
}) => unknown | Promise<unknown>): Promise<void>;
|
|
377
346
|
};
|
|
@@ -408,10 +377,10 @@ export declare class TrellisService<TOwnedApi extends TrellisAPI = TrellisAPI, T
|
|
|
408
377
|
readonly connection: TrellisConnection;
|
|
409
378
|
private constructor();
|
|
410
379
|
/**
|
|
411
|
-
*
|
|
412
|
-
*
|
|
380
|
+
* Creates an explicit SQL outbox helper for service-owned transactions.
|
|
381
|
+
* Services should create this at startup and close over it in handlers.
|
|
413
382
|
*/
|
|
414
|
-
|
|
383
|
+
createSqlOutbox<TTx>(options: TrellisServiceSqlOutboxExecutorOptions<TTx>): SqlOutbox<TTx, TTrellisApi, TJobs>;
|
|
415
384
|
/** Publishes a prepared event through the service runtime connection. */
|
|
416
385
|
publishPrepared(event: PreparedTrellisEvent): AsyncResult<void, UnexpectedError>;
|
|
417
386
|
/**
|