@qlever-llc/trellis 0.8.3 → 0.9.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/trellis-generate.js +132 -0
- package/esm/auth/browser/login.d.ts.map +1 -1
- package/esm/auth/browser/login.js +46 -3
- package/esm/auth/browser/portal.d.ts.map +1 -1
- package/esm/auth/browser/portal.js +5 -1
- package/esm/auth/browser/session.d.ts +18 -7
- package/esm/auth/browser/session.d.ts.map +1 -1
- package/esm/auth/browser/session.js +47 -11
- package/esm/auth/browser/storage.d.ts +6 -1
- package/esm/auth/browser/storage.d.ts.map +1 -1
- package/esm/auth/browser/storage.js +15 -3
- package/esm/auth/browser.d.ts +2 -2
- package/esm/auth/browser.d.ts.map +1 -1
- package/esm/auth/browser.js +1 -1
- package/esm/auth/device_activation.d.ts +36 -33
- package/esm/auth/device_activation.d.ts.map +1 -1
- package/esm/auth/device_activation.js +26 -22
- package/esm/auth/mod.d.ts +4 -4
- package/esm/auth/mod.d.ts.map +1 -1
- package/esm/auth/mod.js +2 -2
- package/esm/auth/proof.d.ts +3 -1
- package/esm/auth/proof.d.ts.map +1 -1
- package/esm/auth/proof.js +21 -15
- package/esm/auth/protocol.d.ts +2457 -941
- package/esm/auth/protocol.d.ts.map +1 -1
- package/esm/auth/protocol.js +747 -375
- package/esm/auth/schemas.d.ts +25 -4
- package/esm/auth/schemas.d.ts.map +1 -1
- package/esm/auth/schemas.js +14 -4
- package/esm/auth/session_auth.d.ts +1 -1
- package/esm/auth/session_auth.d.ts.map +1 -1
- package/esm/auth/session_auth.js +7 -1
- package/esm/client_connect.d.ts +2 -0
- package/esm/client_connect.d.ts.map +1 -1
- package/esm/client_connect.js +76 -15
- package/esm/contract.d.ts +3 -0
- package/esm/contract.d.ts.map +1 -1
- package/esm/contract_support/mod.d.ts +422 -43
- package/esm/contract_support/mod.d.ts.map +1 -1
- package/esm/contract_support/mod.js +734 -33
- package/esm/contract_support/protocol.d.ts +20 -5
- package/esm/contract_support/protocol.d.ts.map +1 -1
- package/esm/contract_support/protocol.js +18 -10
- package/esm/contract_support/runtime.d.ts +11 -0
- package/esm/contract_support/runtime.d.ts.map +1 -1
- package/esm/contract_support/schema_pointers.d.ts.map +1 -1
- package/esm/contract_support/schema_pointers.js +32 -14
- package/esm/device.d.ts +2 -0
- package/esm/device.d.ts.map +1 -1
- package/esm/device.js +3 -0
- package/esm/errors/AuthError.d.ts +2 -1
- package/esm/errors/AuthError.d.ts.map +1 -1
- package/esm/errors/AuthError.js +8 -3
- package/esm/errors/index.d.ts +4 -4
- package/esm/errors/index.d.ts.map +1 -1
- package/esm/errors/index.js +1 -0
- package/esm/generated-sdk/auth/api.d.ts +27 -9
- package/esm/generated-sdk/auth/api.d.ts.map +1 -1
- package/esm/generated-sdk/auth/api.js +16 -590
- package/esm/generated-sdk/auth/client.d.ts +91 -85
- package/esm/generated-sdk/auth/client.d.ts.map +1 -1
- package/esm/generated-sdk/auth/contract.d.ts +1 -1
- package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
- package/esm/generated-sdk/auth/contract.js +4 -2
- package/esm/generated-sdk/auth/mod.d.ts +1 -0
- package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
- package/esm/generated-sdk/auth/owned_api.d.ts +3 -0
- package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -0
- package/esm/generated-sdk/auth/owned_api.js +594 -0
- package/esm/generated-sdk/auth/schemas.d.ts +9959 -5160
- package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/auth/schemas.js +136 -137
- package/esm/generated-sdk/auth/types.d.ts +2418 -1557
- 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 +24 -9
- package/esm/generated-sdk/health/api.d.ts.map +1 -1
- package/esm/generated-sdk/health/api.js +12 -20
- package/esm/generated-sdk/health/client.d.ts +2 -1
- package/esm/generated-sdk/health/client.d.ts.map +1 -1
- package/esm/generated-sdk/health/contract.d.ts.map +1 -1
- package/esm/generated-sdk/health/contract.js +2 -0
- package/esm/generated-sdk/health/owned_api.d.ts +3 -0
- package/esm/generated-sdk/health/owned_api.d.ts.map +1 -0
- package/esm/generated-sdk/health/owned_api.js +16 -0
- package/esm/generated-sdk/health/types.d.ts +2 -0
- package/esm/generated-sdk/health/types.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/api.d.ts +33 -9
- package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/api.js +22 -87
- package/esm/generated-sdk/jobs/client.d.ts +9 -2
- package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/contract.d.ts +1 -1
- package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/contract.js +4 -2
- package/esm/generated-sdk/jobs/owned_api.d.ts +3 -0
- package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -0
- package/esm/generated-sdk/jobs/owned_api.js +118 -0
- package/esm/generated-sdk/jobs/schemas.d.ts +336 -123
- package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/schemas.js +17 -15
- package/esm/generated-sdk/jobs/types.d.ts +144 -34
- package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/types.js +36 -1
- package/esm/generated-sdk/state/api.d.ts +27 -9
- package/esm/generated-sdk/state/api.d.ts.map +1 -1
- package/esm/generated-sdk/state/api.js +16 -71
- package/esm/generated-sdk/state/client.d.ts +4 -2
- package/esm/generated-sdk/state/client.d.ts.map +1 -1
- package/esm/generated-sdk/state/contract.d.ts +1 -1
- package/esm/generated-sdk/state/contract.d.ts.map +1 -1
- package/esm/generated-sdk/state/contract.js +4 -2
- package/esm/generated-sdk/state/owned_api.d.ts +3 -0
- package/esm/generated-sdk/state/owned_api.d.ts.map +1 -0
- package/esm/generated-sdk/state/owned_api.js +66 -0
- package/esm/generated-sdk/state/schemas.d.ts +264 -284
- package/esm/generated-sdk/state/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/state/schemas.js +6 -6
- package/esm/generated-sdk/state/types.d.ts +24 -23
- package/esm/generated-sdk/state/types.d.ts.map +1 -1
- package/esm/generated-sdk/state/types.js +1 -1
- package/esm/generated-sdk/trellis-core/api.d.ts +27 -9
- package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/api.js +16 -39
- package/esm/generated-sdk/trellis-core/client.d.ts +5 -2
- package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/contract.d.ts +1 -1
- package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/contract.js +4 -2
- package/esm/generated-sdk/trellis-core/owned_api.d.ts +3 -0
- package/esm/generated-sdk/trellis-core/owned_api.d.ts.map +1 -0
- package/esm/generated-sdk/trellis-core/owned_api.js +42 -0
- package/esm/generated-sdk/trellis-core/schemas.d.ts +259 -11
- package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/schemas.js +5 -3
- package/esm/generated-sdk/trellis-core/types.d.ts +56 -1
- package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/types.js +1 -1
- package/esm/helpers.d.ts.map +1 -1
- package/esm/index.d.ts +4 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/jobs.d.ts +10 -1
- package/esm/jobs.d.ts.map +1 -1
- package/esm/jobs.js +16 -1
- package/esm/kv.d.ts.map +1 -1
- package/esm/kv.js +10 -4
- package/esm/models/auth/rpc/Logout.d.ts +4 -4
- package/esm/models/auth/rpc/Logout.d.ts.map +1 -1
- package/esm/models/auth/rpc/Logout.js +2 -2
- package/esm/models/trellis/Page.d.ts +2 -0
- package/esm/models/trellis/Page.d.ts.map +1 -0
- package/esm/models/trellis/Page.js +1 -0
- package/esm/models/trellis/State.d.ts +1 -0
- package/esm/models/trellis/State.d.ts.map +1 -1
- package/esm/models/trellis/State.js +1 -0
- package/esm/models/trellis/rpc/StateList.d.ts +9 -12
- package/esm/models/trellis/rpc/StateList.d.ts.map +1 -1
- package/esm/models/trellis/rpc/StateList.js +16 -18
- package/esm/npm/src/auth/browser/login.d.ts.map +1 -1
- package/esm/npm/src/auth/browser/login.js +46 -3
- package/esm/npm/src/auth/browser/portal.d.ts.map +1 -1
- package/esm/npm/src/auth/browser/portal.js +5 -1
- package/esm/npm/src/auth/browser/session.d.ts +18 -7
- package/esm/npm/src/auth/browser/session.d.ts.map +1 -1
- package/esm/npm/src/auth/browser/session.js +47 -11
- package/esm/npm/src/auth/browser/storage.d.ts +6 -1
- package/esm/npm/src/auth/browser/storage.d.ts.map +1 -1
- package/esm/npm/src/auth/browser/storage.js +15 -3
- package/esm/npm/src/auth/browser.d.ts +2 -2
- package/esm/npm/src/auth/browser.d.ts.map +1 -1
- package/esm/npm/src/auth/browser.js +1 -1
- package/esm/npm/src/auth/device_activation.d.ts +36 -33
- package/esm/npm/src/auth/device_activation.d.ts.map +1 -1
- package/esm/npm/src/auth/device_activation.js +26 -22
- package/esm/npm/src/auth/mod.d.ts +4 -4
- package/esm/npm/src/auth/mod.d.ts.map +1 -1
- package/esm/npm/src/auth/mod.js +2 -2
- package/esm/npm/src/auth/proof.d.ts +3 -1
- package/esm/npm/src/auth/proof.d.ts.map +1 -1
- package/esm/npm/src/auth/proof.js +21 -15
- package/esm/npm/src/auth/protocol.d.ts +2457 -941
- package/esm/npm/src/auth/protocol.d.ts.map +1 -1
- package/esm/npm/src/auth/protocol.js +747 -375
- package/esm/npm/src/auth/schemas.d.ts +25 -4
- package/esm/npm/src/auth/schemas.d.ts.map +1 -1
- package/esm/npm/src/auth/schemas.js +14 -4
- package/esm/npm/src/auth/session_auth.d.ts +1 -1
- package/esm/npm/src/auth/session_auth.d.ts.map +1 -1
- package/esm/npm/src/auth/session_auth.js +7 -1
- package/esm/npm/src/client_connect.d.ts +2 -0
- package/esm/npm/src/client_connect.d.ts.map +1 -1
- package/esm/npm/src/client_connect.js +76 -15
- package/esm/npm/src/contract.d.ts +3 -0
- package/esm/npm/src/contract.d.ts.map +1 -1
- package/esm/npm/src/contract_support/mod.d.ts +422 -43
- package/esm/npm/src/contract_support/mod.d.ts.map +1 -1
- package/esm/npm/src/contract_support/mod.js +734 -33
- package/esm/npm/src/contract_support/protocol.d.ts +20 -5
- package/esm/npm/src/contract_support/protocol.d.ts.map +1 -1
- package/esm/npm/src/contract_support/protocol.js +18 -10
- package/esm/npm/src/contract_support/runtime.d.ts +11 -0
- package/esm/npm/src/contract_support/runtime.d.ts.map +1 -1
- package/esm/npm/src/contract_support/schema_pointers.d.ts.map +1 -1
- package/esm/npm/src/contract_support/schema_pointers.js +32 -14
- package/esm/npm/src/device/deno.d.ts.map +1 -1
- package/esm/npm/src/device/deno.js +6 -0
- package/esm/npm/src/device.d.ts +2 -0
- package/esm/npm/src/device.d.ts.map +1 -1
- package/esm/npm/src/device.js +3 -0
- package/esm/npm/src/errors/AuthError.d.ts +2 -1
- package/esm/npm/src/errors/AuthError.d.ts.map +1 -1
- package/esm/npm/src/errors/AuthError.js +8 -3
- package/esm/npm/src/errors/index.d.ts +4 -4
- package/esm/npm/src/errors/index.d.ts.map +1 -1
- package/esm/npm/src/errors/index.js +1 -0
- package/esm/npm/src/generate.js +54 -24
- package/esm/npm/src/helpers.d.ts.map +1 -1
- package/esm/npm/src/index.d.ts +4 -3
- package/esm/npm/src/index.d.ts.map +1 -1
- package/esm/npm/src/index.js +1 -0
- package/esm/npm/src/jobs.d.ts +10 -1
- package/esm/npm/src/jobs.d.ts.map +1 -1
- package/esm/npm/src/jobs.js +16 -1
- package/esm/npm/src/kv.d.ts.map +1 -1
- package/esm/npm/src/kv.js +10 -4
- package/esm/npm/src/models/auth/rpc/Logout.d.ts +4 -4
- package/esm/npm/src/models/auth/rpc/Logout.d.ts.map +1 -1
- package/esm/npm/src/models/auth/rpc/Logout.js +2 -2
- package/esm/npm/src/models/trellis/Page.d.ts +2 -0
- package/esm/npm/src/models/trellis/Page.d.ts.map +1 -0
- package/esm/npm/src/models/trellis/Page.js +1 -0
- package/esm/npm/src/models/trellis/State.d.ts +1 -0
- package/esm/npm/src/models/trellis/State.d.ts.map +1 -1
- package/esm/npm/src/models/trellis/State.js +1 -0
- package/esm/npm/src/models/trellis/rpc/StateList.d.ts +9 -12
- package/esm/npm/src/models/trellis/rpc/StateList.d.ts.map +1 -1
- package/esm/npm/src/models/trellis/rpc/StateList.js +16 -18
- package/esm/npm/src/operations.d.ts +16 -7
- package/esm/npm/src/operations.d.ts.map +1 -1
- package/esm/npm/src/operations.js +84 -19
- package/esm/npm/src/runtime_transport.d.ts +2 -0
- package/esm/npm/src/runtime_transport.d.ts.map +1 -1
- package/esm/npm/src/runtime_transport.js +1 -0
- package/esm/npm/src/server/internal_jobs/active-job.d.ts +2 -1
- package/esm/npm/src/server/internal_jobs/active-job.d.ts.map +1 -1
- package/esm/npm/src/server/internal_jobs/active-job.js +3 -0
- package/esm/npm/src/server/internal_jobs/job-manager.d.ts +4 -1
- package/esm/npm/src/server/internal_jobs/job-manager.d.ts.map +1 -1
- package/esm/npm/src/server/internal_jobs/job-manager.js +61 -1
- package/esm/npm/src/server/internal_jobs/projection.js +1 -0
- package/esm/npm/src/server/internal_jobs/runtime-worker.d.ts +13 -1
- package/esm/npm/src/server/internal_jobs/runtime-worker.d.ts.map +1 -1
- package/esm/npm/src/server/internal_jobs/runtime-worker.js +73 -13
- package/esm/npm/src/server/internal_jobs/types.d.ts +19 -0
- package/esm/npm/src/server/internal_jobs/types.d.ts.map +1 -1
- package/esm/npm/src/server/internal_jobs/types.js +10 -0
- package/esm/npm/src/server/runtime.d.ts +1 -0
- package/esm/npm/src/server/runtime.d.ts.map +1 -1
- package/esm/npm/src/server/service.d.ts +10 -1
- package/esm/npm/src/server/service.d.ts.map +1 -1
- package/esm/npm/src/server/service.js +210 -64
- package/esm/npm/src/server/transfer.d.ts.map +1 -1
- package/esm/npm/src/server/transfer.js +4 -0
- package/esm/npm/src/server.d.ts.map +1 -1
- package/esm/npm/src/server.js +337 -34
- package/esm/npm/src/store.d.ts +8 -1
- package/esm/npm/src/store.d.ts.map +1 -1
- package/esm/npm/src/store.js +46 -8
- package/esm/npm/src/transfer.d.ts +3 -0
- package/esm/npm/src/transfer.d.ts.map +1 -1
- package/esm/npm/src/transfer.js +20 -30
- package/esm/npm/src/trellis.d.ts +85 -22
- package/esm/npm/src/trellis.d.ts.map +1 -1
- package/esm/npm/src/trellis.js +525 -61
- package/esm/operations.d.ts +16 -7
- package/esm/operations.d.ts.map +1 -1
- package/esm/operations.js +84 -19
- package/esm/runtime_transport.d.ts +2 -0
- package/esm/runtime_transport.d.ts.map +1 -1
- package/esm/runtime_transport.js +1 -0
- package/esm/store.d.ts +8 -1
- package/esm/store.d.ts.map +1 -1
- package/esm/store.js +46 -8
- package/esm/transfer.d.ts +3 -0
- package/esm/transfer.d.ts.map +1 -1
- package/esm/transfer.js +20 -30
- package/esm/trellis.d.ts +85 -22
- package/esm/trellis.d.ts.map +1 -1
- package/esm/trellis.js +525 -61
- package/package.json +6 -4
- package/script/auth/browser/login.d.ts.map +1 -1
- package/script/auth/browser/login.js +46 -3
- package/script/auth/browser/portal.d.ts.map +1 -1
- package/script/auth/browser/portal.js +5 -1
- package/script/auth/browser/session.d.ts +18 -7
- package/script/auth/browser/session.d.ts.map +1 -1
- package/script/auth/browser/session.js +47 -11
- package/script/auth/browser/storage.d.ts +6 -1
- package/script/auth/browser/storage.d.ts.map +1 -1
- package/script/auth/browser/storage.js +15 -3
- package/script/auth/browser.d.ts +2 -2
- package/script/auth/browser.d.ts.map +1 -1
- package/script/auth/browser.js +2 -1
- package/script/auth/device_activation.d.ts +36 -33
- package/script/auth/device_activation.d.ts.map +1 -1
- package/script/auth/device_activation.js +25 -21
- package/script/auth/mod.d.ts +4 -4
- package/script/auth/mod.d.ts.map +1 -1
- package/script/auth/mod.js +132 -137
- package/script/auth/proof.d.ts +3 -1
- package/script/auth/proof.d.ts.map +1 -1
- package/script/auth/proof.js +21 -15
- package/script/auth/protocol.d.ts +2457 -941
- package/script/auth/protocol.d.ts.map +1 -1
- package/script/auth/protocol.js +749 -377
- package/script/auth/schemas.d.ts +25 -4
- package/script/auth/schemas.d.ts.map +1 -1
- package/script/auth/schemas.js +16 -5
- package/script/auth/session_auth.d.ts +1 -1
- package/script/auth/session_auth.d.ts.map +1 -1
- package/script/auth/session_auth.js +7 -1
- package/script/client_connect.d.ts +2 -0
- package/script/client_connect.d.ts.map +1 -1
- package/script/client_connect.js +76 -15
- package/script/contract.d.ts +3 -0
- package/script/contract.d.ts.map +1 -1
- package/script/contract_support/mod.d.ts +422 -43
- package/script/contract_support/mod.d.ts.map +1 -1
- package/script/contract_support/mod.js +757 -51
- package/script/contract_support/protocol.d.ts +20 -5
- package/script/contract_support/protocol.d.ts.map +1 -1
- package/script/contract_support/protocol.js +20 -11
- package/script/contract_support/runtime.d.ts +11 -0
- package/script/contract_support/runtime.d.ts.map +1 -1
- package/script/contract_support/schema_pointers.d.ts.map +1 -1
- package/script/contract_support/schema_pointers.js +32 -14
- package/script/device.d.ts +2 -0
- package/script/device.d.ts.map +1 -1
- package/script/device.js +3 -0
- package/script/errors/AuthError.d.ts +2 -1
- package/script/errors/AuthError.d.ts.map +1 -1
- package/script/errors/AuthError.js +8 -3
- package/script/errors/index.d.ts +4 -4
- package/script/errors/index.d.ts.map +1 -1
- package/script/errors/index.js +1 -0
- package/script/generated-sdk/auth/api.d.ts +27 -9
- package/script/generated-sdk/auth/api.d.ts.map +1 -1
- package/script/generated-sdk/auth/api.js +17 -591
- package/script/generated-sdk/auth/client.d.ts +91 -85
- package/script/generated-sdk/auth/client.d.ts.map +1 -1
- package/script/generated-sdk/auth/contract.d.ts +1 -1
- package/script/generated-sdk/auth/contract.d.ts.map +1 -1
- package/script/generated-sdk/auth/contract.js +4 -2
- package/script/generated-sdk/auth/mod.d.ts +1 -0
- package/script/generated-sdk/auth/mod.d.ts.map +1 -1
- package/script/generated-sdk/auth/owned_api.d.ts +3 -0
- package/script/generated-sdk/auth/owned_api.d.ts.map +1 -0
- package/script/generated-sdk/auth/owned_api.js +597 -0
- package/script/generated-sdk/auth/schemas.d.ts +9959 -5160
- package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
- package/script/generated-sdk/auth/schemas.js +139 -140
- package/script/generated-sdk/auth/types.d.ts +2418 -1557
- 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 +24 -9
- package/script/generated-sdk/health/api.d.ts.map +1 -1
- package/script/generated-sdk/health/api.js +13 -21
- package/script/generated-sdk/health/client.d.ts +2 -1
- package/script/generated-sdk/health/client.d.ts.map +1 -1
- package/script/generated-sdk/health/contract.d.ts.map +1 -1
- package/script/generated-sdk/health/contract.js +2 -0
- package/script/generated-sdk/health/owned_api.d.ts +3 -0
- package/script/generated-sdk/health/owned_api.d.ts.map +1 -0
- package/script/generated-sdk/health/owned_api.js +19 -0
- package/script/generated-sdk/health/types.d.ts +2 -0
- package/script/generated-sdk/health/types.d.ts.map +1 -1
- package/script/generated-sdk/jobs/api.d.ts +33 -9
- package/script/generated-sdk/jobs/api.d.ts.map +1 -1
- package/script/generated-sdk/jobs/api.js +23 -88
- package/script/generated-sdk/jobs/client.d.ts +9 -2
- package/script/generated-sdk/jobs/client.d.ts.map +1 -1
- package/script/generated-sdk/jobs/contract.d.ts +1 -1
- package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
- package/script/generated-sdk/jobs/contract.js +4 -2
- package/script/generated-sdk/jobs/owned_api.d.ts +3 -0
- package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -0
- package/script/generated-sdk/jobs/owned_api.js +154 -0
- package/script/generated-sdk/jobs/schemas.d.ts +336 -123
- package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
- package/script/generated-sdk/jobs/schemas.js +18 -16
- package/script/generated-sdk/jobs/types.d.ts +144 -34
- package/script/generated-sdk/jobs/types.d.ts.map +1 -1
- package/script/generated-sdk/jobs/types.js +38 -2
- package/script/generated-sdk/state/api.d.ts +27 -9
- package/script/generated-sdk/state/api.d.ts.map +1 -1
- package/script/generated-sdk/state/api.js +17 -72
- package/script/generated-sdk/state/client.d.ts +4 -2
- package/script/generated-sdk/state/client.d.ts.map +1 -1
- package/script/generated-sdk/state/contract.d.ts +1 -1
- package/script/generated-sdk/state/contract.d.ts.map +1 -1
- package/script/generated-sdk/state/contract.js +4 -2
- package/script/generated-sdk/state/owned_api.d.ts +3 -0
- package/script/generated-sdk/state/owned_api.d.ts.map +1 -0
- package/script/generated-sdk/state/owned_api.js +69 -0
- package/script/generated-sdk/state/schemas.d.ts +264 -284
- package/script/generated-sdk/state/schemas.d.ts.map +1 -1
- package/script/generated-sdk/state/schemas.js +6 -6
- package/script/generated-sdk/state/types.d.ts +24 -23
- package/script/generated-sdk/state/types.d.ts.map +1 -1
- package/script/generated-sdk/state/types.js +1 -1
- package/script/generated-sdk/trellis-core/api.d.ts +27 -9
- package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/api.js +17 -40
- package/script/generated-sdk/trellis-core/client.d.ts +5 -2
- package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/contract.d.ts +1 -1
- package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/contract.js +4 -2
- package/script/generated-sdk/trellis-core/owned_api.d.ts +3 -0
- package/script/generated-sdk/trellis-core/owned_api.d.ts.map +1 -0
- package/script/generated-sdk/trellis-core/owned_api.js +45 -0
- package/script/generated-sdk/trellis-core/schemas.d.ts +259 -11
- package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/schemas.js +6 -4
- package/script/generated-sdk/trellis-core/types.d.ts +56 -1
- package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/types.js +1 -1
- package/script/helpers.d.ts.map +1 -1
- package/script/index.d.ts +4 -3
- package/script/index.d.ts.map +1 -1
- package/script/index.js +5 -2
- package/script/jobs.d.ts +10 -1
- package/script/jobs.d.ts.map +1 -1
- package/script/jobs.js +17 -2
- package/script/kv.d.ts.map +1 -1
- package/script/kv.js +10 -4
- package/script/models/auth/rpc/Logout.d.ts +4 -4
- package/script/models/auth/rpc/Logout.d.ts.map +1 -1
- package/script/models/auth/rpc/Logout.js +3 -3
- package/script/models/trellis/Page.d.ts +2 -0
- package/script/models/trellis/Page.d.ts.map +1 -0
- package/script/models/trellis/Page.js +6 -0
- package/script/models/trellis/State.d.ts +1 -0
- package/script/models/trellis/State.d.ts.map +1 -1
- package/script/models/trellis/State.js +1 -0
- package/script/models/trellis/rpc/StateList.d.ts +9 -12
- package/script/models/trellis/rpc/StateList.d.ts.map +1 -1
- package/script/models/trellis/rpc/StateList.js +16 -18
- package/script/npm/src/auth/browser/login.d.ts.map +1 -1
- package/script/npm/src/auth/browser/login.js +46 -3
- package/script/npm/src/auth/browser/portal.d.ts.map +1 -1
- package/script/npm/src/auth/browser/portal.js +5 -1
- package/script/npm/src/auth/browser/session.d.ts +18 -7
- package/script/npm/src/auth/browser/session.d.ts.map +1 -1
- package/script/npm/src/auth/browser/session.js +47 -11
- package/script/npm/src/auth/browser/storage.d.ts +6 -1
- package/script/npm/src/auth/browser/storage.d.ts.map +1 -1
- package/script/npm/src/auth/browser/storage.js +15 -3
- package/script/npm/src/auth/browser.d.ts +2 -2
- package/script/npm/src/auth/browser.d.ts.map +1 -1
- package/script/npm/src/auth/browser.js +2 -1
- package/script/npm/src/auth/device_activation.d.ts +36 -33
- package/script/npm/src/auth/device_activation.d.ts.map +1 -1
- package/script/npm/src/auth/device_activation.js +25 -21
- package/script/npm/src/auth/mod.d.ts +4 -4
- package/script/npm/src/auth/mod.d.ts.map +1 -1
- package/script/npm/src/auth/mod.js +132 -137
- package/script/npm/src/auth/proof.d.ts +3 -1
- package/script/npm/src/auth/proof.d.ts.map +1 -1
- package/script/npm/src/auth/proof.js +21 -15
- package/script/npm/src/auth/protocol.d.ts +2457 -941
- package/script/npm/src/auth/protocol.d.ts.map +1 -1
- package/script/npm/src/auth/protocol.js +749 -377
- package/script/npm/src/auth/schemas.d.ts +25 -4
- package/script/npm/src/auth/schemas.d.ts.map +1 -1
- package/script/npm/src/auth/schemas.js +16 -5
- package/script/npm/src/auth/session_auth.d.ts +1 -1
- package/script/npm/src/auth/session_auth.d.ts.map +1 -1
- package/script/npm/src/auth/session_auth.js +7 -1
- package/script/npm/src/client_connect.d.ts +2 -0
- package/script/npm/src/client_connect.d.ts.map +1 -1
- package/script/npm/src/client_connect.js +76 -15
- package/script/npm/src/contract.d.ts +3 -0
- package/script/npm/src/contract.d.ts.map +1 -1
- package/script/npm/src/contract_support/mod.d.ts +422 -43
- package/script/npm/src/contract_support/mod.d.ts.map +1 -1
- package/script/npm/src/contract_support/mod.js +757 -51
- package/script/npm/src/contract_support/protocol.d.ts +20 -5
- package/script/npm/src/contract_support/protocol.d.ts.map +1 -1
- package/script/npm/src/contract_support/protocol.js +20 -11
- package/script/npm/src/contract_support/runtime.d.ts +11 -0
- package/script/npm/src/contract_support/runtime.d.ts.map +1 -1
- package/script/npm/src/contract_support/schema_pointers.d.ts.map +1 -1
- package/script/npm/src/contract_support/schema_pointers.js +32 -14
- package/script/npm/src/device/deno.d.ts.map +1 -1
- package/script/npm/src/device/deno.js +6 -0
- package/script/npm/src/device.d.ts +2 -0
- package/script/npm/src/device.d.ts.map +1 -1
- package/script/npm/src/device.js +3 -0
- package/script/npm/src/errors/AuthError.d.ts +2 -1
- package/script/npm/src/errors/AuthError.d.ts.map +1 -1
- package/script/npm/src/errors/AuthError.js +8 -3
- package/script/npm/src/errors/index.d.ts +4 -4
- package/script/npm/src/errors/index.d.ts.map +1 -1
- package/script/npm/src/errors/index.js +1 -0
- package/script/npm/src/generate.js +54 -57
- package/script/npm/src/helpers.d.ts.map +1 -1
- package/script/npm/src/index.d.ts +4 -3
- package/script/npm/src/index.d.ts.map +1 -1
- package/script/npm/src/index.js +5 -2
- package/script/npm/src/jobs.d.ts +10 -1
- package/script/npm/src/jobs.d.ts.map +1 -1
- package/script/npm/src/jobs.js +17 -2
- package/script/npm/src/kv.d.ts.map +1 -1
- package/script/npm/src/kv.js +10 -4
- package/script/npm/src/models/auth/rpc/Logout.d.ts +4 -4
- package/script/npm/src/models/auth/rpc/Logout.d.ts.map +1 -1
- package/script/npm/src/models/auth/rpc/Logout.js +3 -3
- package/script/npm/src/models/trellis/Page.d.ts +2 -0
- package/script/npm/src/models/trellis/Page.d.ts.map +1 -0
- package/script/npm/src/models/trellis/Page.js +6 -0
- package/script/npm/src/models/trellis/State.d.ts +1 -0
- package/script/npm/src/models/trellis/State.d.ts.map +1 -1
- package/script/npm/src/models/trellis/State.js +1 -0
- package/script/npm/src/models/trellis/rpc/StateList.d.ts +9 -12
- package/script/npm/src/models/trellis/rpc/StateList.d.ts.map +1 -1
- package/script/npm/src/models/trellis/rpc/StateList.js +16 -18
- package/script/npm/src/operations.d.ts +16 -7
- package/script/npm/src/operations.d.ts.map +1 -1
- package/script/npm/src/operations.js +84 -19
- package/script/npm/src/runtime_transport.d.ts +2 -0
- package/script/npm/src/runtime_transport.d.ts.map +1 -1
- package/script/npm/src/runtime_transport.js +2 -1
- package/script/npm/src/server/internal_jobs/active-job.d.ts +2 -1
- package/script/npm/src/server/internal_jobs/active-job.d.ts.map +1 -1
- package/script/npm/src/server/internal_jobs/active-job.js +3 -0
- package/script/npm/src/server/internal_jobs/job-manager.d.ts +4 -1
- package/script/npm/src/server/internal_jobs/job-manager.d.ts.map +1 -1
- package/script/npm/src/server/internal_jobs/job-manager.js +61 -1
- package/script/npm/src/server/internal_jobs/projection.js +1 -0
- package/script/npm/src/server/internal_jobs/runtime-worker.d.ts +13 -1
- package/script/npm/src/server/internal_jobs/runtime-worker.d.ts.map +1 -1
- package/script/npm/src/server/internal_jobs/runtime-worker.js +74 -13
- package/script/npm/src/server/internal_jobs/types.d.ts +19 -0
- package/script/npm/src/server/internal_jobs/types.d.ts.map +1 -1
- package/script/npm/src/server/internal_jobs/types.js +11 -1
- package/script/npm/src/server/runtime.d.ts +1 -0
- package/script/npm/src/server/runtime.d.ts.map +1 -1
- package/script/npm/src/server/service.d.ts +10 -1
- package/script/npm/src/server/service.d.ts.map +1 -1
- package/script/npm/src/server/service.js +208 -62
- package/script/npm/src/server/transfer.d.ts.map +1 -1
- package/script/npm/src/server/transfer.js +4 -0
- package/script/npm/src/server.d.ts.map +1 -1
- package/script/npm/src/server.js +336 -33
- package/script/npm/src/store.d.ts +8 -1
- package/script/npm/src/store.d.ts.map +1 -1
- package/script/npm/src/store.js +46 -8
- package/script/npm/src/transfer.d.ts +3 -0
- package/script/npm/src/transfer.d.ts.map +1 -1
- package/script/npm/src/transfer.js +19 -29
- package/script/npm/src/trellis.d.ts +85 -22
- package/script/npm/src/trellis.d.ts.map +1 -1
- package/script/npm/src/trellis.js +525 -61
- package/script/operations.d.ts +16 -7
- package/script/operations.d.ts.map +1 -1
- package/script/operations.js +84 -19
- package/script/runtime_transport.d.ts +2 -0
- package/script/runtime_transport.d.ts.map +1 -1
- package/script/runtime_transport.js +2 -1
- package/script/store.d.ts +8 -1
- package/script/store.d.ts.map +1 -1
- package/script/store.js +46 -8
- package/script/transfer.d.ts +3 -0
- package/script/transfer.d.ts.map +1 -1
- package/script/transfer.js +19 -29
- package/script/trellis.d.ts +85 -22
- package/script/trellis.d.ts.map +1 -1
- package/script/trellis.js +525 -61
- package/src/_dnt.polyfills.ts +274 -0
- package/src/_dnt.shims.ts +64 -0
- package/src/auth/browser/login.ts +295 -0
- package/src/auth/browser/portal.ts +75 -0
- package/src/auth/browser/session.ts +197 -0
- package/src/auth/browser/storage.ts +105 -0
- package/src/auth/browser.ts +82 -0
- package/src/auth/device_activation.ts +715 -0
- package/src/auth/keys.ts +116 -0
- package/src/auth/mod.ts +298 -0
- package/src/auth/proof.ts +111 -0
- package/src/auth/protocol.ts +1629 -0
- package/src/auth/schemas.ts +145 -0
- package/src/auth/session_auth.ts +167 -0
- package/src/auth/time.ts +15 -0
- package/src/auth/trellis_id.ts +9 -0
- package/src/auth/types.ts +4 -0
- package/src/auth/utils.ts +87 -0
- package/src/auth.ts +2 -0
- package/src/browser.ts +8 -0
- package/src/client.ts +164 -0
- package/src/client_connect.ts +1328 -0
- package/src/codec.ts +107 -0
- package/src/connection.ts +466 -0
- package/src/contract.ts +84 -0
- package/src/contract_support/canonical.ts +217 -0
- package/src/contract_support/mod.ts +5079 -0
- package/src/contract_support/protocol.ts +213 -0
- package/src/contract_support/runtime.ts +129 -0
- package/src/contract_support/schema_pointers.ts +161 -0
- package/src/contracts.ts +9 -0
- package/src/device/deno.ts +941 -0
- package/src/device.ts +989 -0
- package/src/env.ts +1 -0
- package/src/errors/AuthError.ts +82 -0
- package/src/errors/KVError.ts +47 -0
- package/src/errors/RemoteError.ts +111 -0
- package/src/errors/StoreError.ts +43 -0
- package/src/errors/TransferError.ts +43 -0
- package/src/errors/TransportError.ts +48 -0
- package/src/errors/TrellisError.ts +20 -0
- package/src/errors/ValidationError.ts +80 -0
- package/src/errors/index.ts +195 -0
- package/src/generate.ts +329 -0
- package/src/globals.ts +26 -0
- package/src/health.ts +28 -0
- package/src/helpers.ts +63 -0
- package/src/host/mod.ts +9 -0
- package/src/host/node.ts +9 -0
- package/src/index.ts +233 -0
- package/src/jobs.ts +344 -0
- package/src/kv.ts +564 -0
- package/src/models/auth/rpc/Logout.ts +15 -0
- package/src/models/trellis/Page.ts +6 -0
- package/src/models/trellis/State.ts +55 -0
- package/src/models/trellis/TrellisError.ts +21 -0
- package/src/models/trellis/rpc/StateDelete.ts +13 -0
- package/src/models/trellis/rpc/StateGet.ts +25 -0
- package/src/models/trellis/rpc/StateList.ts +26 -0
- package/src/models/trellis/rpc/StatePut.ts +42 -0
- package/src/operations.ts +1508 -0
- package/src/runtime_transport.ts +132 -0
- package/src/sdk/auth.ts +2 -0
- package/src/sdk/core.ts +2 -0
- package/src/sdk/health.ts +2 -0
- package/src/sdk/jobs.ts +2 -0
- package/src/sdk/state.ts +2 -0
- package/src/server/health.ts +379 -0
- package/src/server/health_rpc.ts +51 -0
- package/src/server/health_schemas.ts +61 -0
- package/src/server/internal_jobs/active-job.ts +115 -0
- package/src/server/internal_jobs/bindings.ts +26 -0
- package/src/server/internal_jobs/cancellation-registry.ts +71 -0
- package/src/server/internal_jobs/heartbeat.ts +120 -0
- package/src/server/internal_jobs/job-manager.ts +456 -0
- package/src/server/internal_jobs/projection.ts +48 -0
- package/src/server/internal_jobs/runtime-worker.ts +741 -0
- package/src/server/internal_jobs/types.ts +124 -0
- package/src/server/runtime.ts +27 -0
- package/src/server/service.ts +2377 -0
- package/src/server/subscription.ts +143 -0
- package/src/server/transfer.ts +962 -0
- package/src/server.ts +1725 -0
- package/src/server_logger.ts +10 -0
- package/src/service/deno.ts +18 -0
- package/src/service/mod.ts +68 -0
- package/src/service/node.ts +18 -0
- package/src/store.ts +658 -0
- package/src/tasks.ts +34 -0
- package/src/telemetry/carrier.ts +35 -0
- package/src/telemetry/core.ts +31 -0
- package/src/telemetry/env.ts +23 -0
- package/src/telemetry/mod.ts +26 -0
- package/src/telemetry/nats.ts +15 -0
- package/src/telemetry/result.ts +20 -0
- package/src/telemetry/trace.ts +39 -0
- package/src/telemetry/trellis.ts +1 -0
- package/src/tracing.ts +28 -0
- package/src/transfer.ts +602 -0
- package/src/trellis.ts +3650 -0
- package/esm/models/trellis/Paginate.d.ts +0 -7
- package/esm/models/trellis/Paginate.d.ts.map +0 -1
- package/esm/models/trellis/Paginate.js +0 -5
- package/esm/npm/src/models/trellis/Paginate.d.ts +0 -7
- package/esm/npm/src/models/trellis/Paginate.d.ts.map +0 -1
- package/esm/npm/src/models/trellis/Paginate.js +0 -5
- package/script/models/trellis/Paginate.d.ts +0 -7
- package/script/models/trellis/Paginate.d.ts.map +0 -1
- package/script/models/trellis/Paginate.js +0 -11
- package/script/npm/src/models/trellis/Paginate.d.ts +0 -7
- package/script/npm/src/models/trellis/Paginate.d.ts.map +0 -1
- package/script/npm/src/models/trellis/Paginate.js +0 -11
package/script/npm/src/server.js
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _TrellisServiceRuntime_instances, _TrellisServiceRuntime_version, _TrellisServiceRuntime_log, _TrellisServiceRuntime_operations, _TrellisServiceRuntime_mountedOperationControls, _TrellisServiceRuntime_stopPromise, _TrellisServiceRuntime_transferSupport, _TrellisServiceRuntime_resolveOperation, _TrellisServiceRuntime_applyOperationUpdate, _TrellisServiceRuntime_makeAcceptedOperation, _TrellisServiceRuntime_acceptOperation, _TrellisServiceRuntime_authenticateOperationMessage, _TrellisServiceRuntime_ensureOperationControlLoop;
|
|
13
|
+
var _TrellisServiceRuntime_instances, _TrellisServiceRuntime_version, _TrellisServiceRuntime_log, _TrellisServiceRuntime_operations, _TrellisServiceRuntime_mountedOperationControls, _TrellisServiceRuntime_stopPromise, _TrellisServiceRuntime_transferSupport, _TrellisServiceRuntime_signals, _TrellisServiceRuntime_nextSignal, _TrellisServiceRuntime_nextSignalAfter, _TrellisServiceRuntime_resolveOperation, _TrellisServiceRuntime_applyOperationUpdate, _TrellisServiceRuntime_validateOperationValue, _TrellisServiceRuntime_applyControlledOperationUpdate, _TrellisServiceRuntime_controlOperation, _TrellisServiceRuntime_makeControlledOperation, _TrellisServiceRuntime_makeAcceptedOperation, _TrellisServiceRuntime_controlAuthContext, _TrellisServiceRuntime_terminalSignalError, _TrellisServiceRuntime_unsupportedCancelError, _TrellisServiceRuntime_rejectSignalWaiters, _TrellisServiceRuntime_acceptSignal, _TrellisServiceRuntime_acceptOperation, _TrellisServiceRuntime_authenticateOperationMessage, _TrellisServiceRuntime_ensureOperationControlLoop;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.TrellisServiceRuntime = void 0;
|
|
16
16
|
const value_1 = require("typebox/value");
|
|
@@ -20,6 +20,19 @@ const codec_js_1 = require("./codec.js");
|
|
|
20
20
|
const index_js_1 = require("./errors/index.js");
|
|
21
21
|
const server_logger_js_1 = require("./server_logger.js");
|
|
22
22
|
const trellis_js_1 = require("./trellis.js");
|
|
23
|
+
function isJsonValue(value) {
|
|
24
|
+
if (value === null || typeof value === "string" || typeof value === "number" ||
|
|
25
|
+
typeof value === "boolean") {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
if (Array.isArray(value))
|
|
29
|
+
return value.every(isJsonValue);
|
|
30
|
+
if (typeof value !== "object")
|
|
31
|
+
return false;
|
|
32
|
+
if (Object.getPrototypeOf(value) !== Object.prototype)
|
|
33
|
+
return false;
|
|
34
|
+
return Object.values(value).every(isJsonValue);
|
|
35
|
+
}
|
|
23
36
|
function asStringPointerValue(operation, input, pointer, field) {
|
|
24
37
|
const value = value_1.Pointer.Get(input, pointer);
|
|
25
38
|
if (typeof value !== "string" || value.length === 0) {
|
|
@@ -116,6 +129,8 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
116
129
|
cancel: (operationId) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyOperationUpdate).call(this, operationId, "cancelled", {
|
|
117
130
|
event: { type: "cancelled" },
|
|
118
131
|
}),
|
|
132
|
+
signals: (operationId) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_signals).call(this, operationId),
|
|
133
|
+
nextSignal: (operationId, name) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_nextSignal).call(this, operationId, name),
|
|
119
134
|
};
|
|
120
135
|
}
|
|
121
136
|
mountRuntime(method, fn) {
|
|
@@ -131,6 +146,10 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
131
146
|
throw new Error(`Unknown operation '${operation.toString()}'. Did you forget to include its API module?`);
|
|
132
147
|
}
|
|
133
148
|
return {
|
|
149
|
+
control: (operationId) => {
|
|
150
|
+
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_ensureOperationControlLoop).call(this, String(operation), ctx);
|
|
151
|
+
return __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_controlOperation).call(this, String(operation), ctx, operationId);
|
|
152
|
+
},
|
|
134
153
|
accept: ({ sessionKey }) => {
|
|
135
154
|
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_ensureOperationControlLoop).call(this, String(operation), ctx);
|
|
136
155
|
if (ctx.transfer) {
|
|
@@ -138,7 +157,7 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
138
157
|
cause: new Error(`Operation '${String(operation)}' uses transfer-capable start semantics and cannot be accepted manually`),
|
|
139
158
|
}));
|
|
140
159
|
}
|
|
141
|
-
return result_1.AsyncResult.from(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_acceptOperation).call(this, String(operation), sessionKey));
|
|
160
|
+
return result_1.AsyncResult.from(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_acceptOperation).call(this, String(operation), ctx, sessionKey));
|
|
142
161
|
},
|
|
143
162
|
handle: async (handler) => {
|
|
144
163
|
const startSubject = ctx.subject;
|
|
@@ -222,6 +241,7 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
222
241
|
snapshot,
|
|
223
242
|
});
|
|
224
243
|
await flushWaiters(runtime);
|
|
244
|
+
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_rejectSignalWaiters).call(this, runtime);
|
|
225
245
|
return (0, result_1.ok)(snapshot);
|
|
226
246
|
})()),
|
|
227
247
|
fail: (error) => result_1.AsyncResult.from((async () => {
|
|
@@ -241,6 +261,7 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
241
261
|
snapshot,
|
|
242
262
|
});
|
|
243
263
|
await flushWaiters(runtime);
|
|
264
|
+
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_rejectSignalWaiters).call(this, runtime);
|
|
244
265
|
return (0, result_1.ok)(snapshot);
|
|
245
266
|
})()),
|
|
246
267
|
cancel: () => result_1.AsyncResult.from((async () => {
|
|
@@ -259,6 +280,7 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
259
280
|
snapshot,
|
|
260
281
|
});
|
|
261
282
|
await flushWaiters(runtime);
|
|
283
|
+
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_rejectSignalWaiters).call(this, runtime);
|
|
262
284
|
return (0, result_1.ok)(snapshot);
|
|
263
285
|
})()),
|
|
264
286
|
attach: (job) => result_1.AsyncResult.from((async () => {
|
|
@@ -275,6 +297,8 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
275
297
|
}
|
|
276
298
|
return (0, result_1.ok)(finalRuntime.snapshot);
|
|
277
299
|
})()),
|
|
300
|
+
signals: () => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_signals).call(this, runtime.id),
|
|
301
|
+
nextSignal: (name) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_nextSignal).call(this, runtime.id, name),
|
|
278
302
|
defer: () => ({ kind: "deferred" }),
|
|
279
303
|
};
|
|
280
304
|
};
|
|
@@ -295,14 +319,20 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
295
319
|
}
|
|
296
320
|
const sessionKey = msg.headers?.get("session-key");
|
|
297
321
|
const proof = msg.headers?.get("proof");
|
|
322
|
+
const iatHeader = msg.headers?.get("iat");
|
|
323
|
+
const requestId = msg.headers?.get("request-id");
|
|
298
324
|
if (!sessionKey) {
|
|
299
325
|
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_session_key" }));
|
|
300
326
|
}
|
|
301
327
|
if (!proof)
|
|
302
328
|
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_proof" }));
|
|
329
|
+
const iat = Number(iatHeader);
|
|
330
|
+
if (!Number.isSafeInteger(iat) || !requestId) {
|
|
331
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature" }));
|
|
332
|
+
}
|
|
303
333
|
const payloadBytes = msg.data ?? new Uint8Array();
|
|
304
334
|
const payloadHash = await (0, trellis_js_1.sha256)(payloadBytes);
|
|
305
|
-
const proofInput = (0, trellis_js_1.buildProofInput)(sessionKey, msg.subject, payloadHash);
|
|
335
|
+
const proofInput = (0, trellis_js_1.buildProofInput)(sessionKey, msg.subject, payloadHash, iat, requestId);
|
|
306
336
|
const digest = await (0, trellis_js_1.sha256)(proofInput);
|
|
307
337
|
const verifyResult = await result_1.AsyncResult.try(async () => {
|
|
308
338
|
const publicKeyRaw = (0, trellis_js_1.base64urlDecode)(sessionKey);
|
|
@@ -322,6 +352,8 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
322
352
|
proof,
|
|
323
353
|
subject: msg.subject,
|
|
324
354
|
payloadHash: (0, trellis_js_1.base64urlEncode)(payloadHash),
|
|
355
|
+
iat,
|
|
356
|
+
requestId,
|
|
325
357
|
capabilities: ctx.callerCapabilities
|
|
326
358
|
? [...ctx.callerCapabilities]
|
|
327
359
|
: undefined,
|
|
@@ -423,9 +455,12 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
423
455
|
updatedAt: createdAt,
|
|
424
456
|
},
|
|
425
457
|
sequence: 0,
|
|
458
|
+
signalSequence: 0,
|
|
459
|
+
signals: [],
|
|
426
460
|
terminal: false,
|
|
427
461
|
watchers: new Set(),
|
|
428
462
|
waiters: new Set(),
|
|
463
|
+
signalWaiters: new Set(),
|
|
429
464
|
};
|
|
430
465
|
__classPrivateFieldGet(this, _TrellisServiceRuntime_operations, "f").set(operationId, runtime);
|
|
431
466
|
await this.saveOperationRecord(runtime);
|
|
@@ -520,7 +555,57 @@ class TrellisServiceRuntime extends trellis_js_1.Trellis {
|
|
|
520
555
|
}
|
|
521
556
|
}
|
|
522
557
|
exports.TrellisServiceRuntime = TrellisServiceRuntime;
|
|
523
|
-
_TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new WeakMap(), _TrellisServiceRuntime_operations = new WeakMap(), _TrellisServiceRuntime_mountedOperationControls = new WeakMap(), _TrellisServiceRuntime_stopPromise = new WeakMap(), _TrellisServiceRuntime_transferSupport = new WeakMap(), _TrellisServiceRuntime_instances = new WeakSet(),
|
|
558
|
+
_TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new WeakMap(), _TrellisServiceRuntime_operations = new WeakMap(), _TrellisServiceRuntime_mountedOperationControls = new WeakMap(), _TrellisServiceRuntime_stopPromise = new WeakMap(), _TrellisServiceRuntime_transferSupport = new WeakMap(), _TrellisServiceRuntime_instances = new WeakSet(), _TrellisServiceRuntime_signals = async function* _TrellisServiceRuntime_signals(operationId) {
|
|
559
|
+
let cursor = 0;
|
|
560
|
+
while (true) {
|
|
561
|
+
const next = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_nextSignalAfter).call(this, operationId, cursor).take();
|
|
562
|
+
if ((0, result_1.isErr)(next)) {
|
|
563
|
+
throw next.error;
|
|
564
|
+
}
|
|
565
|
+
cursor = next.sequence;
|
|
566
|
+
yield next;
|
|
567
|
+
}
|
|
568
|
+
}, _TrellisServiceRuntime_nextSignal = function _TrellisServiceRuntime_nextSignal(operationId, name) {
|
|
569
|
+
return result_1.AsyncResult.from((async () => {
|
|
570
|
+
let cursor = 0;
|
|
571
|
+
while (true) {
|
|
572
|
+
const next = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_nextSignalAfter).call(this, operationId, cursor).take();
|
|
573
|
+
if ((0, result_1.isErr)(next))
|
|
574
|
+
return next;
|
|
575
|
+
cursor = next.sequence;
|
|
576
|
+
if (!name || next.signal === name)
|
|
577
|
+
return (0, result_1.ok)(next);
|
|
578
|
+
}
|
|
579
|
+
})());
|
|
580
|
+
}, _TrellisServiceRuntime_nextSignalAfter = function _TrellisServiceRuntime_nextSignalAfter(operationId, afterSequence) {
|
|
581
|
+
return result_1.AsyncResult.from((async () => {
|
|
582
|
+
const runtime = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_resolveOperation).call(this, operationId);
|
|
583
|
+
if (!runtime) {
|
|
584
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
585
|
+
cause: new Error(`Unknown operation '${operationId}'`),
|
|
586
|
+
}));
|
|
587
|
+
}
|
|
588
|
+
const queued = runtime.signals.find((signal) => signal.sequence > afterSequence);
|
|
589
|
+
if (queued)
|
|
590
|
+
return (0, result_1.ok)(queued);
|
|
591
|
+
if (runtime.terminal) {
|
|
592
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
593
|
+
cause: new Error("operation already terminal"),
|
|
594
|
+
}));
|
|
595
|
+
}
|
|
596
|
+
return await new Promise((resolve) => {
|
|
597
|
+
const waiter = (result) => {
|
|
598
|
+
const value = result.take();
|
|
599
|
+
if (!(0, result_1.isErr)(value) && value.sequence <= afterSequence) {
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
runtime.signalWaiters.delete(waiter);
|
|
603
|
+
resolve(result);
|
|
604
|
+
};
|
|
605
|
+
runtime.signalWaiters.add(waiter);
|
|
606
|
+
});
|
|
607
|
+
})());
|
|
608
|
+
}, _TrellisServiceRuntime_resolveOperation = async function _TrellisServiceRuntime_resolveOperation(operationId) {
|
|
524
609
|
const existing = __classPrivateFieldGet(this, _TrellisServiceRuntime_operations, "f").get(operationId);
|
|
525
610
|
if (existing)
|
|
526
611
|
return existing;
|
|
@@ -537,8 +622,11 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
537
622
|
terminal: durable.snapshot.state === "completed" ||
|
|
538
623
|
durable.snapshot.state === "failed" ||
|
|
539
624
|
durable.snapshot.state === "cancelled",
|
|
625
|
+
signalSequence: durable.signalSequence ?? 0,
|
|
626
|
+
signals: durable.signals ?? [],
|
|
540
627
|
watchers: new Set(),
|
|
541
628
|
waiters: new Set(),
|
|
629
|
+
signalWaiters: new Set(),
|
|
542
630
|
};
|
|
543
631
|
__classPrivateFieldGet(this, _TrellisServiceRuntime_operations, "f").set(operationId, runtime);
|
|
544
632
|
return runtime;
|
|
@@ -550,7 +638,7 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
550
638
|
cause: new Error(`Unknown operation '${operationId}'`),
|
|
551
639
|
}));
|
|
552
640
|
}
|
|
553
|
-
if (runtime.terminal
|
|
641
|
+
if (runtime.terminal) {
|
|
554
642
|
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
555
643
|
cause: new Error("operation already terminal"),
|
|
556
644
|
}));
|
|
@@ -577,10 +665,110 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
577
665
|
await this.nats.publish(reply, JSON.stringify(terminalFrame));
|
|
578
666
|
}
|
|
579
667
|
runtime.waiters.clear();
|
|
668
|
+
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_rejectSignalWaiters).call(this, runtime);
|
|
580
669
|
}
|
|
581
670
|
return (0, result_1.ok)(runtime.snapshot);
|
|
582
671
|
})());
|
|
583
|
-
},
|
|
672
|
+
}, _TrellisServiceRuntime_validateOperationValue = function _TrellisServiceRuntime_validateOperationValue(ctx, kind, value) {
|
|
673
|
+
const schema = kind === "progress" ? ctx.progress : ctx.output;
|
|
674
|
+
if (schema === undefined)
|
|
675
|
+
return (0, result_1.ok)(value);
|
|
676
|
+
if (!isJsonValue(value)) {
|
|
677
|
+
return (0, result_1.err)(new index_js_1.ValidationError({
|
|
678
|
+
errors: [{
|
|
679
|
+
path: "/",
|
|
680
|
+
message: `Operation ${kind} must be JSON-serializable`,
|
|
681
|
+
}],
|
|
682
|
+
context: { kind },
|
|
683
|
+
}));
|
|
684
|
+
}
|
|
685
|
+
const parsed = (0, codec_js_1.parseSchema)(schema, value).take();
|
|
686
|
+
if ((0, result_1.isErr)(parsed))
|
|
687
|
+
return (0, result_1.err)(parsed.error);
|
|
688
|
+
return (0, result_1.ok)(parsed);
|
|
689
|
+
}, _TrellisServiceRuntime_applyControlledOperationUpdate = function _TrellisServiceRuntime_applyControlledOperationUpdate(runtime, ctx, state, opts) {
|
|
690
|
+
return result_1.AsyncResult.from((async () => {
|
|
691
|
+
if (opts.patch?.progress !== undefined) {
|
|
692
|
+
const parsed = __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_validateOperationValue).call(this, ctx, "progress", opts.patch.progress).take();
|
|
693
|
+
if ((0, result_1.isErr)(parsed))
|
|
694
|
+
return parsed;
|
|
695
|
+
opts.patch.progress = parsed;
|
|
696
|
+
if ("progress" in opts.event)
|
|
697
|
+
opts.event.progress = parsed;
|
|
698
|
+
}
|
|
699
|
+
if (opts.patch?.output !== undefined) {
|
|
700
|
+
const parsed = __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_validateOperationValue).call(this, ctx, "output", opts.patch.output).take();
|
|
701
|
+
if ((0, result_1.isErr)(parsed))
|
|
702
|
+
return parsed;
|
|
703
|
+
opts.patch.output = parsed;
|
|
704
|
+
}
|
|
705
|
+
return await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyOperationUpdate).call(this, runtime.id, state, opts);
|
|
706
|
+
})());
|
|
707
|
+
}, _TrellisServiceRuntime_controlOperation = function _TrellisServiceRuntime_controlOperation(operation, ctx, operationId) {
|
|
708
|
+
return result_1.AsyncResult.from((async () => {
|
|
709
|
+
const runtime = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_resolveOperation).call(this, operationId);
|
|
710
|
+
if (!runtime) {
|
|
711
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
712
|
+
cause: new Error(`Unknown operation '${operationId}'`),
|
|
713
|
+
}));
|
|
714
|
+
}
|
|
715
|
+
if (runtime.service !== this.name) {
|
|
716
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
717
|
+
cause: new Error(`Operation '${operationId}' belongs to service '${runtime.service}', not '${this.name}'`),
|
|
718
|
+
}));
|
|
719
|
+
}
|
|
720
|
+
if (runtime.operation !== operation) {
|
|
721
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
722
|
+
cause: new Error(`Operation '${operationId}' is '${runtime.operation}', not '${operation}'`),
|
|
723
|
+
}));
|
|
724
|
+
}
|
|
725
|
+
return (0, result_1.ok)(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_makeControlledOperation).call(this, runtime, ctx));
|
|
726
|
+
})());
|
|
727
|
+
}, _TrellisServiceRuntime_makeControlledOperation = function _TrellisServiceRuntime_makeControlledOperation(runtime, ctx) {
|
|
728
|
+
return {
|
|
729
|
+
id: runtime.id,
|
|
730
|
+
started: () => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyControlledOperationUpdate).call(this, runtime, ctx, "running", {
|
|
731
|
+
event: { type: "started" },
|
|
732
|
+
}),
|
|
733
|
+
progress: (value) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyControlledOperationUpdate).call(this, runtime, ctx, "running", {
|
|
734
|
+
patch: { progress: value },
|
|
735
|
+
event: { type: "progress", progress: value },
|
|
736
|
+
}),
|
|
737
|
+
complete: (value) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyControlledOperationUpdate).call(this, runtime, ctx, "completed", {
|
|
738
|
+
patch: { output: value },
|
|
739
|
+
event: { type: "completed" },
|
|
740
|
+
}),
|
|
741
|
+
fail: (error) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyControlledOperationUpdate).call(this, runtime, ctx, "failed", {
|
|
742
|
+
patch: { error: { type: error.name, message: error.message } },
|
|
743
|
+
event: { type: "failed" },
|
|
744
|
+
}),
|
|
745
|
+
cancel: () => {
|
|
746
|
+
if (ctx.cancel !== true) {
|
|
747
|
+
return result_1.AsyncResult.err(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_unsupportedCancelError).call(this, runtime.operation));
|
|
748
|
+
}
|
|
749
|
+
return __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_applyControlledOperationUpdate).call(this, runtime, ctx, "cancelled", {
|
|
750
|
+
event: { type: "cancelled" },
|
|
751
|
+
});
|
|
752
|
+
},
|
|
753
|
+
attach: (job) => result_1.AsyncResult.from((async () => {
|
|
754
|
+
const waited = await job.wait();
|
|
755
|
+
const waitedValue = waited.take();
|
|
756
|
+
if ((0, result_1.isErr)(waitedValue)) {
|
|
757
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({ cause: waitedValue.error }));
|
|
758
|
+
}
|
|
759
|
+
const finalRuntime = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_resolveOperation).call(this, runtime.id);
|
|
760
|
+
if (!finalRuntime || !finalRuntime.terminal) {
|
|
761
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
762
|
+
cause: new Error("attached job completed without terminal operation state"),
|
|
763
|
+
}));
|
|
764
|
+
}
|
|
765
|
+
return (0, result_1.ok)(finalRuntime.snapshot);
|
|
766
|
+
})()),
|
|
767
|
+
signals: () => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_signals).call(this, runtime.id),
|
|
768
|
+
nextSignal: (name) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_nextSignal).call(this, runtime.id, name),
|
|
769
|
+
defer: () => ({ kind: "deferred" }),
|
|
770
|
+
};
|
|
771
|
+
}, _TrellisServiceRuntime_makeAcceptedOperation = function _TrellisServiceRuntime_makeAcceptedOperation(runtime, ctx) {
|
|
584
772
|
return {
|
|
585
773
|
id: runtime.id,
|
|
586
774
|
ref: {
|
|
@@ -593,7 +781,12 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
593
781
|
progress: (value) => this.operations.progress(runtime.id, value),
|
|
594
782
|
complete: (value) => this.operations.complete(runtime.id, value),
|
|
595
783
|
fail: (error) => this.operations.fail(runtime.id, error),
|
|
596
|
-
cancel: () =>
|
|
784
|
+
cancel: () => {
|
|
785
|
+
if (ctx.cancel !== true) {
|
|
786
|
+
return result_1.AsyncResult.err(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_unsupportedCancelError).call(this, runtime.operation));
|
|
787
|
+
}
|
|
788
|
+
return this.operations.cancel(runtime.id);
|
|
789
|
+
},
|
|
597
790
|
attach: (job) => result_1.AsyncResult.from((async () => {
|
|
598
791
|
const waited = await job.wait();
|
|
599
792
|
const waitedValue = waited.take();
|
|
@@ -608,9 +801,79 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
608
801
|
}
|
|
609
802
|
return (0, result_1.ok)(finalRuntime.snapshot);
|
|
610
803
|
})()),
|
|
804
|
+
signals: () => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_signals).call(this, runtime.id),
|
|
805
|
+
nextSignal: (name) => __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_nextSignal).call(this, runtime.id, name),
|
|
611
806
|
defer: () => ({ kind: "deferred" }),
|
|
612
807
|
};
|
|
613
|
-
},
|
|
808
|
+
}, _TrellisServiceRuntime_controlAuthContext = function _TrellisServiceRuntime_controlAuthContext(ctx, action) {
|
|
809
|
+
if (action === "signal" && ctx.controlCapabilities !== undefined) {
|
|
810
|
+
return { ...ctx, callerCapabilities: ctx.controlCapabilities };
|
|
811
|
+
}
|
|
812
|
+
if (action === "cancel" && ctx.cancelCapabilities !== undefined) {
|
|
813
|
+
return { ...ctx, callerCapabilities: ctx.cancelCapabilities };
|
|
814
|
+
}
|
|
815
|
+
return ctx;
|
|
816
|
+
}, _TrellisServiceRuntime_terminalSignalError = function _TrellisServiceRuntime_terminalSignalError() {
|
|
817
|
+
return new index_js_1.UnexpectedError({
|
|
818
|
+
cause: new Error("operation already terminal"),
|
|
819
|
+
});
|
|
820
|
+
}, _TrellisServiceRuntime_unsupportedCancelError = function _TrellisServiceRuntime_unsupportedCancelError(operation) {
|
|
821
|
+
return new index_js_1.ValidationError({
|
|
822
|
+
errors: [{
|
|
823
|
+
path: "/action",
|
|
824
|
+
message: `Operation '${operation}' does not support cancel`,
|
|
825
|
+
}],
|
|
826
|
+
context: { operation, action: "cancel" },
|
|
827
|
+
});
|
|
828
|
+
}, _TrellisServiceRuntime_rejectSignalWaiters = function _TrellisServiceRuntime_rejectSignalWaiters(runtime) {
|
|
829
|
+
const result = (0, result_1.err)(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_terminalSignalError).call(this));
|
|
830
|
+
for (const waiter of runtime.signalWaiters) {
|
|
831
|
+
waiter(result);
|
|
832
|
+
}
|
|
833
|
+
runtime.signalWaiters.clear();
|
|
834
|
+
}, _TrellisServiceRuntime_acceptSignal = async function _TrellisServiceRuntime_acceptSignal(runtime, ctx, control) {
|
|
835
|
+
if (runtime.terminal) {
|
|
836
|
+
return (0, result_1.err)(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_terminalSignalError).call(this));
|
|
837
|
+
}
|
|
838
|
+
const descriptor = ctx.signals?.[control.signal];
|
|
839
|
+
if (!descriptor) {
|
|
840
|
+
return (0, result_1.err)(new index_js_1.ValidationError({
|
|
841
|
+
errors: [{
|
|
842
|
+
path: "/signal",
|
|
843
|
+
message: `Unknown operation signal '${control.signal}'`,
|
|
844
|
+
}],
|
|
845
|
+
context: { operation: runtime.operation, signal: control.signal },
|
|
846
|
+
}));
|
|
847
|
+
}
|
|
848
|
+
const input = control.input;
|
|
849
|
+
const parsed = (0, codec_js_1.parseSchema)(descriptor.input, input).take();
|
|
850
|
+
if ((0, result_1.isErr)(parsed)) {
|
|
851
|
+
return (0, result_1.err)(parsed.error);
|
|
852
|
+
}
|
|
853
|
+
runtime.signalSequence += 1;
|
|
854
|
+
const acceptedAt = new Date().toISOString();
|
|
855
|
+
const signal = {
|
|
856
|
+
operationId: runtime.id,
|
|
857
|
+
sequence: runtime.signalSequence,
|
|
858
|
+
signal: control.signal,
|
|
859
|
+
...(control.input !== undefined ? { input: control.input } : {}),
|
|
860
|
+
acceptedAt,
|
|
861
|
+
};
|
|
862
|
+
runtime.signals.push(signal);
|
|
863
|
+
await this.saveOperationRecord(runtime);
|
|
864
|
+
const result = (0, result_1.ok)(signal);
|
|
865
|
+
for (const waiter of runtime.signalWaiters) {
|
|
866
|
+
waiter(result);
|
|
867
|
+
}
|
|
868
|
+
return (0, result_1.ok)({
|
|
869
|
+
kind: "signal-accepted",
|
|
870
|
+
operationId: runtime.id,
|
|
871
|
+
signal: signal.signal,
|
|
872
|
+
signalSequence: signal.sequence,
|
|
873
|
+
acceptedAt,
|
|
874
|
+
snapshot: runtime.snapshot,
|
|
875
|
+
});
|
|
876
|
+
}, _TrellisServiceRuntime_acceptOperation = async function _TrellisServiceRuntime_acceptOperation(operation, ctx, sessionKey) {
|
|
614
877
|
const createdAt = new Date().toISOString();
|
|
615
878
|
const operationId = (0, ulid_1.ulid)();
|
|
616
879
|
const runtime = {
|
|
@@ -628,13 +891,16 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
628
891
|
updatedAt: createdAt,
|
|
629
892
|
},
|
|
630
893
|
sequence: 0,
|
|
894
|
+
signalSequence: 0,
|
|
895
|
+
signals: [],
|
|
631
896
|
terminal: false,
|
|
632
897
|
watchers: new Set(),
|
|
633
898
|
waiters: new Set(),
|
|
899
|
+
signalWaiters: new Set(),
|
|
634
900
|
};
|
|
635
901
|
__classPrivateFieldGet(this, _TrellisServiceRuntime_operations, "f").set(operationId, runtime);
|
|
636
902
|
await this.saveOperationRecord(runtime);
|
|
637
|
-
return (0, result_1.ok)(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_makeAcceptedOperation).call(this, runtime));
|
|
903
|
+
return (0, result_1.ok)(__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_makeAcceptedOperation).call(this, runtime, ctx));
|
|
638
904
|
}, _TrellisServiceRuntime_authenticateOperationMessage = async function _TrellisServiceRuntime_authenticateOperationMessage(msg, ctx, parseInput) {
|
|
639
905
|
const jsonData = (0, trellis_js_1.safeJson)(msg).take();
|
|
640
906
|
if ((0, result_1.isErr)(jsonData))
|
|
@@ -652,14 +918,20 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
652
918
|
}
|
|
653
919
|
const sessionKey = msg.headers?.get("session-key");
|
|
654
920
|
const proof = msg.headers?.get("proof");
|
|
921
|
+
const iatHeader = msg.headers?.get("iat");
|
|
922
|
+
const requestId = msg.headers?.get("request-id");
|
|
655
923
|
if (!sessionKey) {
|
|
656
924
|
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_session_key" }));
|
|
657
925
|
}
|
|
658
926
|
if (!proof)
|
|
659
927
|
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_proof" }));
|
|
928
|
+
const iat = Number(iatHeader);
|
|
929
|
+
if (!Number.isSafeInteger(iat) || !requestId) {
|
|
930
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature" }));
|
|
931
|
+
}
|
|
660
932
|
const payloadBytes = msg.data ?? new Uint8Array();
|
|
661
933
|
const payloadHash = await (0, trellis_js_1.sha256)(payloadBytes);
|
|
662
|
-
const proofInput = (0, trellis_js_1.buildProofInput)(sessionKey, msg.subject, payloadHash);
|
|
934
|
+
const proofInput = (0, trellis_js_1.buildProofInput)(sessionKey, msg.subject, payloadHash, iat, requestId);
|
|
663
935
|
const digest = await (0, trellis_js_1.sha256)(proofInput);
|
|
664
936
|
const verifyResult = await result_1.AsyncResult.try(async () => {
|
|
665
937
|
const publicKeyRaw = (0, trellis_js_1.base64urlDecode)(sessionKey);
|
|
@@ -679,6 +951,8 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
679
951
|
proof,
|
|
680
952
|
subject: msg.subject,
|
|
681
953
|
payloadHash: (0, trellis_js_1.base64urlEncode)(payloadHash),
|
|
954
|
+
iat,
|
|
955
|
+
requestId,
|
|
682
956
|
capabilities: ctx.callerCapabilities
|
|
683
957
|
? [...ctx.callerCapabilities]
|
|
684
958
|
: undefined,
|
|
@@ -720,18 +994,18 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
720
994
|
const publishSnapshot = async (reply, snapshot) => {
|
|
721
995
|
await publishFrame(reply, { kind: "snapshot", snapshot });
|
|
722
996
|
};
|
|
997
|
+
const respondControlError = (msg, error) => {
|
|
998
|
+
msg.respond(JSON.stringify({
|
|
999
|
+
kind: "error",
|
|
1000
|
+
error: { type: error.name, message: error.message },
|
|
1001
|
+
}));
|
|
1002
|
+
};
|
|
723
1003
|
const controlSub = this.nats.subscribe(controlSubject);
|
|
724
1004
|
void (async () => {
|
|
725
1005
|
for await (const msg of controlSub) {
|
|
726
|
-
const validated = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_authenticateOperationMessage).call(this, msg, ctx, false);
|
|
727
|
-
const value = validated.take();
|
|
728
|
-
if ((0, result_1.isErr)(value)) {
|
|
729
|
-
this.respondWithError(msg, value.error);
|
|
730
|
-
continue;
|
|
731
|
-
}
|
|
732
1006
|
const request = (0, trellis_js_1.safeJson)(msg).take();
|
|
733
1007
|
if ((0, result_1.isErr)(request)) {
|
|
734
|
-
|
|
1008
|
+
respondControlError(msg, request.error);
|
|
735
1009
|
continue;
|
|
736
1010
|
}
|
|
737
1011
|
if (!request ||
|
|
@@ -740,27 +1014,35 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
740
1014
|
"string" ||
|
|
741
1015
|
typeof request.operationId !==
|
|
742
1016
|
"string") {
|
|
743
|
-
|
|
1017
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
744
1018
|
cause: new Error("Invalid operation control request"),
|
|
745
1019
|
}));
|
|
746
1020
|
continue;
|
|
747
1021
|
}
|
|
748
1022
|
const control = request;
|
|
749
|
-
const
|
|
750
|
-
const
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
1023
|
+
const validated = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_authenticateOperationMessage).call(this, msg, __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_controlAuthContext).call(this, ctx, control.action), false);
|
|
1024
|
+
const value = validated.take();
|
|
1025
|
+
if ((0, result_1.isErr)(value)) {
|
|
1026
|
+
respondControlError(msg, value.error);
|
|
1027
|
+
continue;
|
|
1028
|
+
}
|
|
1029
|
+
const runtime = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_resolveOperation).call(this, control.operationId);
|
|
1030
|
+
if (!runtime) {
|
|
1031
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
755
1032
|
cause: new Error(`Unknown operation '${control.operationId}'`),
|
|
756
1033
|
}));
|
|
757
1034
|
continue;
|
|
758
1035
|
}
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
1036
|
+
if (runtime.service !== this.name || runtime.operation !== operation) {
|
|
1037
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
1038
|
+
cause: new Error(`Operation '${control.operationId}' belongs to service '${runtime.service}' operation '${runtime.operation}', not service '${this.name}' operation '${operation}'`),
|
|
1039
|
+
}));
|
|
1040
|
+
continue;
|
|
1041
|
+
}
|
|
1042
|
+
const snapshot = runtime.snapshot;
|
|
1043
|
+
const ownerSessionKey = runtime.ownerSessionKey;
|
|
762
1044
|
if (ownerSessionKey !== value.sessionKey) {
|
|
763
|
-
|
|
1045
|
+
respondControlError(msg, new index_js_1.AuthError({
|
|
764
1046
|
reason: "forbidden",
|
|
765
1047
|
context: { ownerSessionKey },
|
|
766
1048
|
}));
|
|
@@ -784,12 +1066,12 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
784
1066
|
runtime.waiters.add(msg.reply);
|
|
785
1067
|
}
|
|
786
1068
|
else if (msg.reply) {
|
|
787
|
-
|
|
1069
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
788
1070
|
cause: new Error("operation is not running in this process"),
|
|
789
1071
|
}));
|
|
790
1072
|
}
|
|
791
1073
|
else {
|
|
792
|
-
|
|
1074
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
793
1075
|
cause: new Error("missing reply subject for wait request"),
|
|
794
1076
|
}));
|
|
795
1077
|
}
|
|
@@ -800,8 +1082,12 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
800
1082
|
continue;
|
|
801
1083
|
}
|
|
802
1084
|
if (control.action === "cancel") {
|
|
803
|
-
if (
|
|
804
|
-
msg
|
|
1085
|
+
if (ctx.cancel !== true) {
|
|
1086
|
+
respondControlError(msg, __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_unsupportedCancelError).call(this, operation));
|
|
1087
|
+
continue;
|
|
1088
|
+
}
|
|
1089
|
+
if (runtime.terminal) {
|
|
1090
|
+
respondControlError(msg, __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_terminalSignalError).call(this));
|
|
805
1091
|
continue;
|
|
806
1092
|
}
|
|
807
1093
|
runtime.snapshot = {
|
|
@@ -829,10 +1115,27 @@ _TrellisServiceRuntime_version = new WeakMap(), _TrellisServiceRuntime_log = new
|
|
|
829
1115
|
await this.nats.publish(reply, JSON.stringify({ kind: "snapshot", snapshot: runtime.snapshot }));
|
|
830
1116
|
}
|
|
831
1117
|
runtime.waiters.clear();
|
|
1118
|
+
__classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_rejectSignalWaiters).call(this, runtime);
|
|
832
1119
|
msg.respond(JSON.stringify({ kind: "snapshot", snapshot: runtime.snapshot }));
|
|
833
1120
|
continue;
|
|
834
1121
|
}
|
|
835
|
-
|
|
1122
|
+
if (control.action === "signal") {
|
|
1123
|
+
if (!runtime) {
|
|
1124
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
1125
|
+
cause: new Error("operation is not running in this process"),
|
|
1126
|
+
}));
|
|
1127
|
+
continue;
|
|
1128
|
+
}
|
|
1129
|
+
const accepted = await __classPrivateFieldGet(this, _TrellisServiceRuntime_instances, "m", _TrellisServiceRuntime_acceptSignal).call(this, runtime, ctx, control);
|
|
1130
|
+
const acceptedValue = accepted.take();
|
|
1131
|
+
if ((0, result_1.isErr)(acceptedValue)) {
|
|
1132
|
+
respondControlError(msg, acceptedValue.error);
|
|
1133
|
+
continue;
|
|
1134
|
+
}
|
|
1135
|
+
msg.respond(JSON.stringify(acceptedValue));
|
|
1136
|
+
continue;
|
|
1137
|
+
}
|
|
1138
|
+
respondControlError(msg, new index_js_1.UnexpectedError({
|
|
836
1139
|
cause: new Error(`Unknown operation control action '${control.action}' for '${operation}'`),
|
|
837
1140
|
}));
|
|
838
1141
|
}
|
|
@@ -2,6 +2,7 @@ import { type ObjectStore } from "@nats-io/obj";
|
|
|
2
2
|
import type { NatsConnection } from "@nats-io/nats-core/internal";
|
|
3
3
|
import { AsyncResult } from "@qlever-llc/result";
|
|
4
4
|
import { StoreError } from "./errors/index.js";
|
|
5
|
+
import type { PageResponse } from "./models/trellis/Page.js";
|
|
5
6
|
export type StoreBody = Uint8Array | ReadableStream<Uint8Array> | AsyncIterable<Uint8Array>;
|
|
6
7
|
export type StoreWaitOptions = {
|
|
7
8
|
timeoutMs?: number;
|
|
@@ -18,6 +19,12 @@ export type StorePutOptions = {
|
|
|
18
19
|
contentType?: string;
|
|
19
20
|
metadata?: Record<string, string>;
|
|
20
21
|
};
|
|
22
|
+
/** Explicit bounded query for listing object metadata in a typed store. */
|
|
23
|
+
export type StoreListOptions = {
|
|
24
|
+
prefix?: string;
|
|
25
|
+
offset?: number;
|
|
26
|
+
limit: number;
|
|
27
|
+
};
|
|
21
28
|
export type StoreInfo = {
|
|
22
29
|
key: string;
|
|
23
30
|
size: number;
|
|
@@ -45,7 +52,7 @@ export declare class TypedStore {
|
|
|
45
52
|
*/
|
|
46
53
|
waitFor(key: string, options?: StoreWaitOptions): AsyncResult<TypedStoreEntry, StoreError>;
|
|
47
54
|
delete(key: string): AsyncResult<void, StoreError>;
|
|
48
|
-
list(
|
|
55
|
+
list(opts: StoreListOptions): AsyncResult<PageResponse<StoreInfo>, StoreError>;
|
|
49
56
|
status(): AsyncResult<StoreStatus, StoreError>;
|
|
50
57
|
}
|
|
51
58
|
export declare class TypedStoreEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,WAAW,EAGZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,WAAW,EAGZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM7D,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,cAAc,CAAC,UAAU,CAAC,GAC1B,aAAa,CAAC,UAAU,CAAC,CAAC;AAE9B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA2OF,qBAAa,UAAU;;IAMrB,OAAO;IAcP,MAAM,CAAC,IAAI,CACT,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;IAuBtC,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;IAgBhC,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;IAIhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC;IAS1D;;OAEG;IACH,OAAO,CACL,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,gBAAqB,GAC7B,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC;IA6C3C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;IAalD,IAAI,CACF,IAAI,EAAE,gBAAgB,GACrB,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAiCnD,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;CA4D/C;AAqBD,qBAAa,eAAe;;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAGb,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS;IAM/C,MAAM,IAAI,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IA0B7D,KAAK,IAAI,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;CAwB7C;AA4BD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC,CAErB"}
|