@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
package/src/server.ts
CHANGED
|
@@ -91,7 +91,8 @@ export type TrellisServiceRuntimeFor<TA extends AnyTrellisAPI = TrellisAPI> =
|
|
|
91
91
|
OperationInputOf<TA, O>,
|
|
92
92
|
OperationProgressOf<TA, O>,
|
|
93
93
|
OperationOutputOf<TA, O>,
|
|
94
|
-
OperationTransferContextOf<TA, O
|
|
94
|
+
OperationTransferContextOf<TA, O>,
|
|
95
|
+
BaseError
|
|
95
96
|
>;
|
|
96
97
|
};
|
|
97
98
|
|
|
@@ -505,7 +506,10 @@ export class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMode> {
|
|
|
505
506
|
operation: string,
|
|
506
507
|
ctx: RegisteredRuntimeOperationDesc,
|
|
507
508
|
operationId: string,
|
|
508
|
-
): AsyncResult<
|
|
509
|
+
): AsyncResult<
|
|
510
|
+
OperationRuntimeHandle<unknown, unknown, BaseError>,
|
|
511
|
+
BaseError
|
|
512
|
+
> {
|
|
509
513
|
return AsyncResult.from((async () => {
|
|
510
514
|
const runtime = await this.#resolveOperation(operationId);
|
|
511
515
|
if (!runtime) {
|
|
@@ -524,7 +528,7 @@ export class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMode> {
|
|
|
524
528
|
#makeControlledOperation(
|
|
525
529
|
runtime: RuntimeOperationRecord,
|
|
526
530
|
ctx: RegisteredRuntimeOperationDesc,
|
|
527
|
-
): OperationRuntimeHandle<unknown, unknown> {
|
|
531
|
+
): OperationRuntimeHandle<unknown, unknown, BaseError> {
|
|
528
532
|
return {
|
|
529
533
|
id: runtime.id,
|
|
530
534
|
started: () =>
|
|
@@ -586,7 +590,7 @@ export class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMode> {
|
|
|
586
590
|
#makeAcceptedOperation(
|
|
587
591
|
runtime: RuntimeOperationRecord,
|
|
588
592
|
ctx: RegisteredRuntimeOperationDesc,
|
|
589
|
-
): AcceptedOperation<unknown, unknown> {
|
|
593
|
+
): AcceptedOperation<unknown, unknown, BaseError> {
|
|
590
594
|
return {
|
|
591
595
|
id: runtime.id,
|
|
592
596
|
ref: {
|
|
@@ -763,7 +767,9 @@ export class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMode> {
|
|
|
763
767
|
operation: string,
|
|
764
768
|
ctx: RegisteredRuntimeOperationDesc,
|
|
765
769
|
sessionKey: string,
|
|
766
|
-
): Promise<
|
|
770
|
+
): Promise<
|
|
771
|
+
Result<AcceptedOperation<unknown, unknown, BaseError>, UnexpectedError>
|
|
772
|
+
> {
|
|
767
773
|
const createdAt = new Date().toISOString();
|
|
768
774
|
const operationId = ulid();
|
|
769
775
|
const runtime: RuntimeOperationRecord = {
|
|
@@ -1176,7 +1182,7 @@ export class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMode> {
|
|
|
1176
1182
|
|
|
1177
1183
|
override operationHandle(
|
|
1178
1184
|
operation: string,
|
|
1179
|
-
): OperationRegistration<unknown, unknown, unknown> {
|
|
1185
|
+
): OperationRegistration<unknown, unknown, unknown, undefined, BaseError> {
|
|
1180
1186
|
const ctx = this.api["operations"]
|
|
1181
1187
|
?.[operation as keyof typeof this.api.operations] as
|
|
1182
1188
|
| RegisteredRuntimeOperationDesc
|
|
@@ -1215,7 +1221,8 @@ export class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMode> {
|
|
|
1215
1221
|
unknown,
|
|
1216
1222
|
unknown,
|
|
1217
1223
|
unknown,
|
|
1218
|
-
OperationTransferHandle | undefined
|
|
1224
|
+
OperationTransferHandle | undefined,
|
|
1225
|
+
BaseError
|
|
1219
1226
|
>,
|
|
1220
1227
|
) => unknown | Promise<unknown>,
|
|
1221
1228
|
) => {
|
package/src/service/deno.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import "../_dnt.polyfills.js";
|
|
2
2
|
export {
|
|
3
|
-
type BoundTrellisService,
|
|
4
|
-
type FeedHandler,
|
|
5
3
|
type HealthCheckHandler,
|
|
6
4
|
type HealthInfoHandler,
|
|
7
|
-
type JobArgs,
|
|
8
|
-
type JobHandler,
|
|
9
5
|
type JobQueue,
|
|
10
|
-
type JobResult,
|
|
11
6
|
type JobsFacadeOf,
|
|
12
7
|
type OperationHandler,
|
|
13
8
|
type OperationRegistration,
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import "../_dnt.polyfills.js";
|
|
2
|
+
import { type SQL, sql } from "drizzle-orm";
|
|
3
|
+
import type { SqlExecutor, SqlRow } from "./outbox_inbox.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Structural Drizzle database or transaction shape accepted by Trellis SQL
|
|
7
|
+
* outbox helpers.
|
|
8
|
+
*/
|
|
9
|
+
export type DrizzleSqlDatabase = {
|
|
10
|
+
/** Runs a SQL statement that returns rows. */
|
|
11
|
+
all(query: SQL): Promise<readonly SqlRow[]>;
|
|
12
|
+
/** Runs a SQL statement that does not return rows. */
|
|
13
|
+
run(query: SQL): Promise<unknown>;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Structural transaction runner used by Drizzle-backed Trellis SQL outbox
|
|
18
|
+
* integrations.
|
|
19
|
+
*/
|
|
20
|
+
export type DrizzleSqlTransactionRunner<
|
|
21
|
+
TDb extends DrizzleSqlDatabase,
|
|
22
|
+
TTx extends DrizzleSqlDatabase,
|
|
23
|
+
> = (
|
|
24
|
+
database: TDb,
|
|
25
|
+
work: (transaction: TTx) => Promise<unknown>,
|
|
26
|
+
) => Promise<unknown>;
|
|
27
|
+
|
|
28
|
+
/** Options for Drizzle-backed Trellis SQL outbox integration. */
|
|
29
|
+
export type DrizzleSqlOutboxOptions<
|
|
30
|
+
TDb extends DrizzleSqlDatabase,
|
|
31
|
+
TTx extends DrizzleSqlDatabase,
|
|
32
|
+
> = {
|
|
33
|
+
/** Caller-owned base Drizzle database used for non-transactional outbox work. */
|
|
34
|
+
readonly db: TDb;
|
|
35
|
+
/** Caller-owned transaction runner used to scope service work and enqueues. */
|
|
36
|
+
readonly transaction: DrizzleSqlTransactionRunner<TDb, TTx>;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Adapts a caller-owned Drizzle database or transaction to Trellis'
|
|
41
|
+
* generic `SqlExecutor` interface.
|
|
42
|
+
*
|
|
43
|
+
* This helper is cheap: it creates a small closure object only. It does not open
|
|
44
|
+
* connections, prepare statements, or inspect schema. Service authors can use it
|
|
45
|
+
* when adapting Drizzle databases or transactions to the generic
|
|
46
|
+
* `withSqlOutbox(...)` SQL executor options.
|
|
47
|
+
*/
|
|
48
|
+
export function createDrizzleSqlExecutor(
|
|
49
|
+
database: DrizzleSqlDatabase,
|
|
50
|
+
): SqlExecutor {
|
|
51
|
+
return {
|
|
52
|
+
query(statement, params) {
|
|
53
|
+
return database.all(bindDrizzleSqlStatement(statement, params));
|
|
54
|
+
},
|
|
55
|
+
async execute(statement, params) {
|
|
56
|
+
await database.run(bindDrizzleSqlStatement(statement, params));
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Runs work inside a caller-owned Drizzle transaction and provides the
|
|
63
|
+
* transaction plus a Trellis SQL executor bound to that transaction.
|
|
64
|
+
*/
|
|
65
|
+
export async function runDrizzleSqlTransaction<
|
|
66
|
+
TDb extends DrizzleSqlDatabase,
|
|
67
|
+
TTx extends DrizzleSqlDatabase,
|
|
68
|
+
TResult,
|
|
69
|
+
>(
|
|
70
|
+
options: DrizzleSqlOutboxOptions<TDb, TTx>,
|
|
71
|
+
work: (
|
|
72
|
+
context: { tx: TTx; executor: SqlExecutor },
|
|
73
|
+
) => Promise<TResult> | TResult,
|
|
74
|
+
): Promise<TResult> {
|
|
75
|
+
let result: { value: TResult } | undefined;
|
|
76
|
+
await options.transaction(options.db, async (tx) => {
|
|
77
|
+
const value = await work({
|
|
78
|
+
tx,
|
|
79
|
+
executor: createDrizzleSqlExecutor(tx),
|
|
80
|
+
});
|
|
81
|
+
result = { value };
|
|
82
|
+
return value;
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
if (result === undefined) {
|
|
86
|
+
throw new Error("Drizzle SQL transaction runner did not invoke work");
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return result.value;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Converts a Trellis SQL statement with positional placeholders into a Drizzle
|
|
94
|
+
* `SQL` object with parameters bound in order.
|
|
95
|
+
*
|
|
96
|
+
* Supports SQLite-style `?` placeholders and PostgreSQL-style `$1`, `$2`, ...
|
|
97
|
+
* placeholders. A single statement must not mix both styles.
|
|
98
|
+
*/
|
|
99
|
+
export function bindDrizzleSqlStatement(
|
|
100
|
+
statement: string,
|
|
101
|
+
params: readonly unknown[],
|
|
102
|
+
): SQL {
|
|
103
|
+
const matches = [...statement.matchAll(/\?|\$(\d+)/g)];
|
|
104
|
+
const hasQuestionPlaceholders = matches.some((match) => match[0] === "?");
|
|
105
|
+
const hasNumberedPlaceholders = matches.some((match) =>
|
|
106
|
+
match[1] !== undefined
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
if (hasQuestionPlaceholders && hasNumberedPlaceholders) {
|
|
110
|
+
throw new Error(
|
|
111
|
+
"SQL statement cannot mix ? and $n placeholders for Drizzle binding",
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (hasQuestionPlaceholders) {
|
|
116
|
+
validateQuestionPlaceholders(matches.length, params.length);
|
|
117
|
+
} else if (hasNumberedPlaceholders) {
|
|
118
|
+
validateNumberedPlaceholders(matches, params.length);
|
|
119
|
+
} else if (params.length !== 0) {
|
|
120
|
+
throw new Error(
|
|
121
|
+
`SQL statement has no placeholders but received ${params.length} parameters`,
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const chunks: SQL[] = [];
|
|
126
|
+
let cursor = 0;
|
|
127
|
+
let nextQuestionParam = 0;
|
|
128
|
+
for (const match of matches) {
|
|
129
|
+
const matchIndex = match.index;
|
|
130
|
+
chunks.push(sql.raw(statement.slice(cursor, matchIndex)));
|
|
131
|
+
if (match[0] === "?") {
|
|
132
|
+
chunks.push(sql`${params[nextQuestionParam]}`);
|
|
133
|
+
nextQuestionParam += 1;
|
|
134
|
+
} else {
|
|
135
|
+
const index = Number(match[1]) - 1;
|
|
136
|
+
chunks.push(sql`${params[index]}`);
|
|
137
|
+
}
|
|
138
|
+
cursor = matchIndex + match[0].length;
|
|
139
|
+
}
|
|
140
|
+
chunks.push(sql.raw(statement.slice(cursor)));
|
|
141
|
+
|
|
142
|
+
return sql.join(chunks);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function validateQuestionPlaceholders(
|
|
146
|
+
placeholders: number,
|
|
147
|
+
paramCount: number,
|
|
148
|
+
): void {
|
|
149
|
+
if (placeholders !== paramCount) {
|
|
150
|
+
throw new Error(
|
|
151
|
+
`SQL statement expected ${placeholders} parameters for ? placeholders, received ${paramCount}`,
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function validateNumberedPlaceholders(
|
|
157
|
+
matches: RegExpMatchArray[],
|
|
158
|
+
paramCount: number,
|
|
159
|
+
): void {
|
|
160
|
+
const referenced = new Set<number>();
|
|
161
|
+
for (const match of matches) {
|
|
162
|
+
if (match[1] === undefined) continue;
|
|
163
|
+
const index = Number(match[1]);
|
|
164
|
+
if (index < 1) {
|
|
165
|
+
throw new Error("PostgreSQL SQL placeholder indexes must start at $1");
|
|
166
|
+
}
|
|
167
|
+
referenced.add(index);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const maxIndex = Math.max(...referenced);
|
|
171
|
+
if (maxIndex !== paramCount) {
|
|
172
|
+
throw new Error(
|
|
173
|
+
`SQL statement expected ${maxIndex} parameters for $n placeholders, received ${paramCount}`,
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
for (let index = 1; index <= maxIndex; index += 1) {
|
|
178
|
+
if (!referenced.has(index)) {
|
|
179
|
+
throw new Error(
|
|
180
|
+
`SQL statement is missing PostgreSQL placeholder $${index}`,
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
package/src/service/mod.ts
CHANGED
|
@@ -28,7 +28,6 @@ export {
|
|
|
28
28
|
export { mountStandardHealthRpc } from "../server/health_rpc.js";
|
|
29
29
|
export {
|
|
30
30
|
HealthCheckResultSchema,
|
|
31
|
-
HealthHeartbeatHeaderSchema,
|
|
32
31
|
HealthHeartbeatSchema,
|
|
33
32
|
HealthHeartbeatServiceSchema,
|
|
34
33
|
HealthInfoSchema,
|
|
@@ -36,25 +35,29 @@ export {
|
|
|
36
35
|
HealthRpcSchema,
|
|
37
36
|
} from "../server/health_schemas.js";
|
|
38
37
|
export {
|
|
39
|
-
type BoundTrellisService,
|
|
40
|
-
type FeedHandler,
|
|
41
38
|
type HealthCheckHandler,
|
|
42
39
|
type HealthInfoHandler,
|
|
43
|
-
type JobArgs,
|
|
44
|
-
type JobHandler,
|
|
45
40
|
type JobQueue,
|
|
46
|
-
type JobResult,
|
|
47
41
|
type JobsFacadeOf,
|
|
48
42
|
type OperationHandler,
|
|
49
43
|
type OperationRegistration,
|
|
50
44
|
type RpcHandler,
|
|
51
45
|
type ServiceContract,
|
|
52
46
|
type ServiceEventHandler,
|
|
47
|
+
type SqlOutbox,
|
|
48
|
+
type SqlOutboxEventEnqueueFacade,
|
|
49
|
+
type SqlOutboxJobEnqueueFacade,
|
|
50
|
+
type SqlOutboxJobSubmission,
|
|
51
|
+
type SqlOutboxTransactionContext,
|
|
52
|
+
type SqlOutboxTransactionRunner,
|
|
53
53
|
StoreHandle,
|
|
54
54
|
type Trellis,
|
|
55
55
|
TrellisService,
|
|
56
56
|
type TrellisServiceConnectOpts,
|
|
57
57
|
type TrellisServiceConnectTelemetryOpts,
|
|
58
|
+
type TrellisServiceSqlOutboxCommonOptions,
|
|
59
|
+
type TrellisServiceSqlOutboxExecutorOptions,
|
|
60
|
+
type TrellisServiceSqlOutboxOptions,
|
|
58
61
|
} from "../server/service.js";
|
|
59
62
|
export {
|
|
60
63
|
createPostgresOutboxSchema,
|
|
@@ -62,6 +65,7 @@ export {
|
|
|
62
65
|
createSqlOutboxAdapter,
|
|
63
66
|
defaultSqlOutboxTables,
|
|
64
67
|
dispatchOutbox,
|
|
68
|
+
getSqlOutboxMigrations,
|
|
65
69
|
type InboxRepository,
|
|
66
70
|
type KvOutboxRecord,
|
|
67
71
|
KvOutboxRecordSchema,
|
|
@@ -72,16 +76,22 @@ export {
|
|
|
72
76
|
OutboxDispatcher,
|
|
73
77
|
type OutboxDispatcherOptions,
|
|
74
78
|
type OutboxDispatchResult,
|
|
79
|
+
type OutboxDispatchRuntime,
|
|
75
80
|
type OutboxKvEntry,
|
|
76
81
|
type OutboxKvStore,
|
|
77
82
|
type OutboxMessage,
|
|
78
83
|
type OutboxMessageState,
|
|
79
|
-
|
|
84
|
+
outboxMessageToPreparedEvent,
|
|
85
|
+
type OutboxRecordKind,
|
|
80
86
|
type OutboxRepository,
|
|
87
|
+
type PreparedOutboxRecord,
|
|
88
|
+
preparedTrellisEventToOutboxRecord,
|
|
81
89
|
type SqlDialect,
|
|
82
90
|
type SqlExecutor,
|
|
83
91
|
SqlInboxRepository,
|
|
84
92
|
type SqlOutboxAdapter,
|
|
93
|
+
type SqlOutboxMigration,
|
|
94
|
+
type SqlOutboxMigrationOptions,
|
|
85
95
|
SqlOutboxRepository,
|
|
86
96
|
type SqlOutboxTables,
|
|
87
97
|
type SqlRow,
|
package/src/service/node.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import "../_dnt.polyfills.js";
|
|
2
2
|
export {
|
|
3
|
-
type BoundTrellisService,
|
|
4
|
-
type FeedHandler,
|
|
5
3
|
type HealthCheckHandler,
|
|
6
4
|
type HealthInfoHandler,
|
|
7
|
-
type JobArgs,
|
|
8
|
-
type JobHandler,
|
|
9
5
|
type JobQueue,
|
|
10
|
-
type JobResult,
|
|
11
6
|
type JobsFacadeOf,
|
|
12
7
|
type OperationHandler,
|
|
13
8
|
type OperationRegistration,
|