@qlever-llc/trellis 0.8.4 → 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 +0 -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 +39 -26
- 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 -3
- 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 +39 -59
- 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
|
@@ -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 _Trellis_instances, _Trellis_log, _Trellis_tasks, _Trellis_hasExplicitApi, _Trellis_noResponderMaxRetries, _Trellis_noResponderRetryMs,
|
|
13
|
+
var _Trellis_instances, _Trellis_log, _Trellis_tasks, _Trellis_hasExplicitApi, _Trellis_noResponderMaxRetries, _Trellis_noResponderRetryMs, _Trellis_onSessionNotFound, _Trellis_operationStore, _Trellis_createStateFacade, _Trellis_unknownApiError, _Trellis_requestBuiltRpcUnknown, _Trellis_requestBuiltRpc, _Trellis_handleBrowserAuthRequired, _Trellis_authenticateFeedRequest, _Trellis_subscribeFeed, _Trellis_handleFeed, _Trellis_processFeedMessage, _Trellis_handleRPC, _Trellis_processRPCMessage, _Trellis_respondWithPayload, _Trellis_respondWithError, _Trellis_startEphemeralEvent, _Trellis_handleDurableEvent, _Trellis_parseEventMessage, _Trellis_escapeSubjectToken, _Trellis_currentIat, _Trellis_createProof, _Trellis_requestMessageWithRetry, _Trellis_requestJson, _Trellis_watchJson;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.Trellis = exports.DurableOperationRecordSchema = void 0;
|
|
16
16
|
exports.safeJson = safeJson;
|
|
@@ -153,16 +153,22 @@ async function sha256(data) {
|
|
|
153
153
|
const digest = await crypto.subtle.digest("SHA-256", toArrayBuffer(data));
|
|
154
154
|
return new Uint8Array(digest);
|
|
155
155
|
}
|
|
156
|
-
function buildProofInput(sessionKey, subject, payloadHash) {
|
|
156
|
+
function buildProofInput(sessionKey, subject, payloadHash, iat, requestId) {
|
|
157
157
|
const enc = new TextEncoder();
|
|
158
158
|
const sessionKeyBytes = enc.encode(sessionKey);
|
|
159
159
|
const subjectBytes = enc.encode(subject);
|
|
160
|
+
const iatBytes = enc.encode(String(iat));
|
|
161
|
+
const requestIdBytes = enc.encode(requestId);
|
|
160
162
|
const buf = new Uint8Array(4 +
|
|
161
163
|
sessionKeyBytes.length +
|
|
162
164
|
4 +
|
|
163
165
|
subjectBytes.length +
|
|
164
166
|
4 +
|
|
165
|
-
payloadHash.length
|
|
167
|
+
payloadHash.length +
|
|
168
|
+
4 +
|
|
169
|
+
iatBytes.length +
|
|
170
|
+
4 +
|
|
171
|
+
requestIdBytes.length);
|
|
166
172
|
const view = new DataView(buf.buffer);
|
|
167
173
|
let offset = 0;
|
|
168
174
|
view.setUint32(offset, sessionKeyBytes.length);
|
|
@@ -176,6 +182,14 @@ function buildProofInput(sessionKey, subject, payloadHash) {
|
|
|
176
182
|
view.setUint32(offset, payloadHash.length);
|
|
177
183
|
offset += 4;
|
|
178
184
|
buf.set(payloadHash, offset);
|
|
185
|
+
offset += payloadHash.length;
|
|
186
|
+
view.setUint32(offset, iatBytes.length);
|
|
187
|
+
offset += 4;
|
|
188
|
+
buf.set(iatBytes, offset);
|
|
189
|
+
offset += iatBytes.length;
|
|
190
|
+
view.setUint32(offset, requestIdBytes.length);
|
|
191
|
+
offset += 4;
|
|
192
|
+
buf.set(requestIdBytes, offset);
|
|
179
193
|
return buf;
|
|
180
194
|
}
|
|
181
195
|
/**
|
|
@@ -189,6 +203,13 @@ function isOperationDeferred(value) {
|
|
|
189
203
|
function isResultLike(value) {
|
|
190
204
|
return value instanceof result_1.Result;
|
|
191
205
|
}
|
|
206
|
+
const DurableOperationSignalSchema = typebox_1.Type.Object({
|
|
207
|
+
operationId: typebox_1.Type.String(),
|
|
208
|
+
sequence: typebox_1.Type.Number(),
|
|
209
|
+
signal: typebox_1.Type.String(),
|
|
210
|
+
input: typebox_1.Type.Optional(typebox_1.Type.Any()),
|
|
211
|
+
acceptedAt: typebox_1.Type.String(),
|
|
212
|
+
});
|
|
192
213
|
const DurableOperationSnapshotSchema = typebox_1.Type.Object({
|
|
193
214
|
id: typebox_1.Type.String(),
|
|
194
215
|
service: typebox_1.Type.String(),
|
|
@@ -219,6 +240,8 @@ const DurableOperationSnapshotSchema = typebox_1.Type.Object({
|
|
|
219
240
|
exports.DurableOperationRecordSchema = typebox_1.Type.Object({
|
|
220
241
|
ownerSessionKey: typebox_1.Type.String(),
|
|
221
242
|
sequence: typebox_1.Type.Number(),
|
|
243
|
+
signalSequence: typebox_1.Type.Optional(typebox_1.Type.Number()),
|
|
244
|
+
signals: typebox_1.Type.Optional(typebox_1.Type.Array(DurableOperationSignalSchema)),
|
|
222
245
|
snapshot: DurableOperationSnapshotSchema,
|
|
223
246
|
});
|
|
224
247
|
function buildRuntimeOperationSnapshot(runtime, state, patch) {
|
|
@@ -475,12 +498,44 @@ const DEFAULT_NO_RESPONDER_MAX_RETRIES = 2;
|
|
|
475
498
|
const DEFAULT_NO_RESPONDER_RETRY_MS = 200;
|
|
476
499
|
const DEFAULT_AUTH_VALIDATE_SESSION_RETRY_ATTEMPTS = 3;
|
|
477
500
|
const DEFAULT_AUTH_VALIDATE_SESSION_RETRY_MS = 25;
|
|
501
|
+
function activeTraceId(span) {
|
|
502
|
+
const traceId = span.spanContext().traceId;
|
|
503
|
+
return traceId === "00000000000000000000000000000000" ? undefined : traceId;
|
|
504
|
+
}
|
|
505
|
+
function traceIdFromTraceparent(traceparent) {
|
|
506
|
+
const [version, traceId, parentId, flags, extra] = traceparent?.split("-") ??
|
|
507
|
+
[];
|
|
508
|
+
if (extra !== undefined ||
|
|
509
|
+
!/^[0-9a-f]{2}$/u.test(version ?? "") ||
|
|
510
|
+
version === "ff" ||
|
|
511
|
+
!/^[0-9a-f]{32}$/u.test(traceId ?? "") ||
|
|
512
|
+
traceId === "00000000000000000000000000000000" ||
|
|
513
|
+
!/^[0-9a-f]{16}$/u.test(parentId ?? "") ||
|
|
514
|
+
parentId === "0000000000000000" ||
|
|
515
|
+
!/^[0-9a-f]{2}$/u.test(flags ?? "")) {
|
|
516
|
+
return undefined;
|
|
517
|
+
}
|
|
518
|
+
return traceId;
|
|
519
|
+
}
|
|
478
520
|
const EMPTY_TRELLIS_API = {
|
|
479
521
|
rpc: {},
|
|
480
522
|
operations: {},
|
|
481
523
|
events: {},
|
|
524
|
+
feeds: {},
|
|
482
525
|
subjects: {},
|
|
483
526
|
};
|
|
527
|
+
function isBrowserAuthRequiredError(error) {
|
|
528
|
+
const isAuthRequiredReason = (reason) => reason === "session_not_found" || reason === "reauth_required";
|
|
529
|
+
if (error instanceof index_js_1.AuthError) {
|
|
530
|
+
return isAuthRequiredReason(error.reason);
|
|
531
|
+
}
|
|
532
|
+
if (error instanceof RemoteError_js_1.RemoteError &&
|
|
533
|
+
error.remoteError.type === "AuthError") {
|
|
534
|
+
const reason = Reflect.get(error.remoteError, "reason");
|
|
535
|
+
return isAuthRequiredReason(reason);
|
|
536
|
+
}
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
484
539
|
function isTransientAuthValidateSessionError(error) {
|
|
485
540
|
if (error instanceof index_js_1.AuthError) {
|
|
486
541
|
return error.reason === "session_not_found";
|
|
@@ -488,7 +543,7 @@ function isTransientAuthValidateSessionError(error) {
|
|
|
488
543
|
if (error instanceof RemoteError_js_1.RemoteError &&
|
|
489
544
|
error.remoteError.type === "AuthError") {
|
|
490
545
|
const reason = Reflect.get(error.remoteError, "reason");
|
|
491
|
-
return
|
|
546
|
+
return reason === "session_not_found";
|
|
492
547
|
}
|
|
493
548
|
return false;
|
|
494
549
|
}
|
|
@@ -500,6 +555,20 @@ function isRuntimeRpcErrorDesc(value) {
|
|
|
500
555
|
typeof Reflect.get(value, "type") === "string" &&
|
|
501
556
|
typeof Reflect.get(value, "fromSerializable") === "function";
|
|
502
557
|
}
|
|
558
|
+
const payloadSizeEncoder = new TextEncoder();
|
|
559
|
+
function payloadByteLength(payload) {
|
|
560
|
+
return typeof payload === "string"
|
|
561
|
+
? payloadSizeEncoder.encode(payload).byteLength
|
|
562
|
+
: payload.byteLength;
|
|
563
|
+
}
|
|
564
|
+
function causeMessage(cause) {
|
|
565
|
+
return cause instanceof Error ? cause.message : String(cause);
|
|
566
|
+
}
|
|
567
|
+
function causeLogData(cause) {
|
|
568
|
+
return cause instanceof Error
|
|
569
|
+
? { message: cause.message, stack: cause.stack, name: cause.name }
|
|
570
|
+
: cause;
|
|
571
|
+
}
|
|
503
572
|
function reconstructDeclaredRpcError(errorNames, runtimeErrors, data, json) {
|
|
504
573
|
if (!isDeclaredRpcError(errorNames, data.type)) {
|
|
505
574
|
return null;
|
|
@@ -598,7 +667,6 @@ class Trellis {
|
|
|
598
667
|
_Trellis_hasExplicitApi.set(this, void 0);
|
|
599
668
|
_Trellis_noResponderMaxRetries.set(this, void 0);
|
|
600
669
|
_Trellis_noResponderRetryMs.set(this, void 0);
|
|
601
|
-
_Trellis_authBypassMethods.set(this, void 0);
|
|
602
670
|
_Trellis_onSessionNotFound.set(this, void 0);
|
|
603
671
|
_Trellis_operationStore.set(this, void 0);
|
|
604
672
|
const api = opts?.api;
|
|
@@ -615,7 +683,6 @@ class Trellis {
|
|
|
615
683
|
DEFAULT_NO_RESPONDER_MAX_RETRIES, "f");
|
|
616
684
|
__classPrivateFieldSet(this, _Trellis_noResponderRetryMs, opts?.noResponderRetry?.baseDelayMs ??
|
|
617
685
|
DEFAULT_NO_RESPONDER_RETRY_MS, "f");
|
|
618
|
-
__classPrivateFieldSet(this, _Trellis_authBypassMethods, new Set(opts?.authBypassMethods ?? []), "f");
|
|
619
686
|
__classPrivateFieldSet(this, _Trellis_onSessionNotFound, opts?.onSessionNotFound, "f");
|
|
620
687
|
this.connection = opts?.connection ??
|
|
621
688
|
new connection_js_1.TrellisConnection({ kind: "client" });
|
|
@@ -659,6 +726,8 @@ class Trellis {
|
|
|
659
726
|
const record = {
|
|
660
727
|
ownerSessionKey: runtime.ownerSessionKey,
|
|
661
728
|
sequence: runtime.sequence,
|
|
729
|
+
signalSequence: runtime.signalSequence,
|
|
730
|
+
signals: runtime.signals,
|
|
662
731
|
snapshot: runtime.snapshot,
|
|
663
732
|
};
|
|
664
733
|
await store.put(runtime.id, record);
|
|
@@ -674,6 +743,18 @@ class Trellis {
|
|
|
674
743
|
}
|
|
675
744
|
return __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpcUnknown).call(this, method, input, ctx, opts);
|
|
676
745
|
}
|
|
746
|
+
feed(feed) {
|
|
747
|
+
const descriptor = this.api.feeds?.[feed];
|
|
748
|
+
if (!descriptor) {
|
|
749
|
+
throw __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "feed", feed.toString());
|
|
750
|
+
}
|
|
751
|
+
return {
|
|
752
|
+
input: (input) => ({
|
|
753
|
+
subscribe: (opts) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_subscribeFeed).call(this, feed.toString(), descriptor, input, opts),
|
|
754
|
+
}),
|
|
755
|
+
handle: (handler) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleFeed).call(this, feed.toString(), descriptor, handler),
|
|
756
|
+
};
|
|
757
|
+
}
|
|
677
758
|
operation(operation) {
|
|
678
759
|
const descriptor = this.api["operations"]?.[operation];
|
|
679
760
|
if (!descriptor) {
|
|
@@ -729,20 +810,24 @@ class Trellis {
|
|
|
729
810
|
globals_js_1.logger.error({ err: subject.error }, "Failed to template event.");
|
|
730
811
|
return subject;
|
|
731
812
|
}
|
|
813
|
+
const header = {
|
|
814
|
+
id: (0, ulid_1.ulid)(),
|
|
815
|
+
time: new Date().toISOString(),
|
|
816
|
+
};
|
|
732
817
|
const payload = {
|
|
733
818
|
...data,
|
|
734
|
-
header
|
|
735
|
-
id: (0, ulid_1.ulid)(),
|
|
736
|
-
time: new Date().toISOString(),
|
|
737
|
-
},
|
|
819
|
+
header,
|
|
738
820
|
};
|
|
739
821
|
const msg = (0, codec_js_1.encodeSchema)(ctx.event, payload).take();
|
|
740
822
|
if ((0, result_1.isErr)(msg)) {
|
|
741
823
|
globals_js_1.logger.error({ err: msg.error }, "Failed to encode event.");
|
|
742
824
|
return (0, result_1.err)(new index_js_1.UnexpectedError({ cause: msg.error }));
|
|
743
825
|
}
|
|
826
|
+
const headers = (0, nats_core_1.headers)();
|
|
827
|
+
headers.set("Nats-Msg-Id", header.id);
|
|
828
|
+
(0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers));
|
|
744
829
|
globals_js_1.logger.trace({ subject }, `Publishing ${event.toString()} event.`);
|
|
745
|
-
await this.js.publish(subject, msg);
|
|
830
|
+
await this.js.publish(subject, msg, { headers });
|
|
746
831
|
return (0, result_1.ok)(undefined);
|
|
747
832
|
}
|
|
748
833
|
catch (cause) {
|
|
@@ -838,11 +923,11 @@ class Trellis {
|
|
|
838
923
|
}
|
|
839
924
|
requestAuthValidate(input) {
|
|
840
925
|
const request = this.request.bind(this);
|
|
841
|
-
return request("Auth.
|
|
926
|
+
return request("Auth.Requests.Validate", input);
|
|
842
927
|
}
|
|
843
928
|
}
|
|
844
929
|
exports.Trellis = Trellis;
|
|
845
|
-
_Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplicitApi = new WeakMap(), _Trellis_noResponderMaxRetries = new WeakMap(), _Trellis_noResponderRetryMs = new WeakMap(),
|
|
930
|
+
_Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplicitApi = new WeakMap(), _Trellis_noResponderMaxRetries = new WeakMap(), _Trellis_noResponderRetryMs = new WeakMap(), _Trellis_onSessionNotFound = new WeakMap(), _Trellis_operationStore = new WeakMap(), _Trellis_instances = new WeakSet(), _Trellis_createStateFacade = function _Trellis_createStateFacade(state) {
|
|
846
931
|
const stores = (state ?? {});
|
|
847
932
|
const facade = Object.fromEntries(Object.entries(stores).map(([store, descriptor]) => {
|
|
848
933
|
if (descriptor.kind === "value") {
|
|
@@ -934,10 +1019,12 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
934
1019
|
}
|
|
935
1020
|
const span = (0, tracing_js_1.startClientSpan)(method, subject);
|
|
936
1021
|
const attempt = async () => {
|
|
937
|
-
const
|
|
1022
|
+
const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, msg);
|
|
938
1023
|
const headers = (0, nats_core_1.headers)();
|
|
939
1024
|
headers.set("session-key", this.auth.sessionKey);
|
|
940
|
-
headers.set("proof", proof);
|
|
1025
|
+
headers.set("proof", authHeaders.proof);
|
|
1026
|
+
headers.set("iat", String(authHeaders.iat));
|
|
1027
|
+
headers.set("request-id", authHeaders.requestId);
|
|
941
1028
|
(0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers), span);
|
|
942
1029
|
const msgResult = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestMessageWithRetry).call(this, {
|
|
943
1030
|
method,
|
|
@@ -982,11 +1069,11 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
982
1069
|
: undefined;
|
|
983
1070
|
const reconstructed = reconstructDeclaredRpcError(declaredErrorTypes, runtimeErrors, errorData, json);
|
|
984
1071
|
if (reconstructed) {
|
|
985
|
-
await __classPrivateFieldGet(this, _Trellis_instances, "m",
|
|
1072
|
+
await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleBrowserAuthRequired).call(this, reconstructed);
|
|
986
1073
|
return (0, result_1.err)(reconstructed);
|
|
987
1074
|
}
|
|
988
1075
|
const remoteError = new RemoteError_js_1.RemoteError({ error: errorData });
|
|
989
|
-
await __classPrivateFieldGet(this, _Trellis_instances, "m",
|
|
1076
|
+
await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleBrowserAuthRequired).call(this, remoteError);
|
|
990
1077
|
return (0, result_1.err)(remoteError);
|
|
991
1078
|
}
|
|
992
1079
|
const json = safeJson(response).take();
|
|
@@ -1037,11 +1124,284 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1037
1124
|
}
|
|
1038
1125
|
});
|
|
1039
1126
|
})());
|
|
1040
|
-
},
|
|
1041
|
-
if (!__classPrivateFieldGet(this, _Trellis_onSessionNotFound, "f") || !
|
|
1127
|
+
}, _Trellis_handleBrowserAuthRequired = async function _Trellis_handleBrowserAuthRequired(error) {
|
|
1128
|
+
if (!__classPrivateFieldGet(this, _Trellis_onSessionNotFound, "f") || !isBrowserAuthRequiredError(error)) {
|
|
1042
1129
|
return;
|
|
1043
1130
|
}
|
|
1044
1131
|
await __classPrivateFieldGet(this, _Trellis_onSessionNotFound, "f").call(this);
|
|
1132
|
+
}, _Trellis_authenticateFeedRequest = async function _Trellis_authenticateFeedRequest(args) {
|
|
1133
|
+
const sessionKey = args.msg.headers?.get("session-key");
|
|
1134
|
+
const proof = args.msg.headers?.get("proof");
|
|
1135
|
+
const iatHeader = args.msg.headers?.get("iat");
|
|
1136
|
+
const requestId = args.msg.headers?.get("request-id");
|
|
1137
|
+
if (!sessionKey) {
|
|
1138
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_session_key" }));
|
|
1139
|
+
}
|
|
1140
|
+
if (!proof)
|
|
1141
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_proof" }));
|
|
1142
|
+
const iat = Number(iatHeader);
|
|
1143
|
+
if (!Number.isSafeInteger(iat) || !requestId) {
|
|
1144
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature" }));
|
|
1145
|
+
}
|
|
1146
|
+
const proofInput = buildProofInput(sessionKey, args.subject, args.payloadHash, iat, requestId);
|
|
1147
|
+
const digest = await sha256(proofInput);
|
|
1148
|
+
const verifyResult = await result_1.AsyncResult.try(async () => {
|
|
1149
|
+
const publicKeyRaw = base64urlDecode(sessionKey);
|
|
1150
|
+
const pub = await crypto.subtle.importKey("raw", toArrayBuffer(publicKeyRaw), { name: "Ed25519" }, true, ["verify"]);
|
|
1151
|
+
return crypto.subtle.verify({ name: "Ed25519" }, pub, toArrayBuffer(base64urlDecode(proof)), toArrayBuffer(digest));
|
|
1152
|
+
});
|
|
1153
|
+
if (!verifyResult.isOk() || verifyResult.take() !== true) {
|
|
1154
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature", context: { sessionKey } }));
|
|
1155
|
+
}
|
|
1156
|
+
const auth = await this.requestAuthValidate({
|
|
1157
|
+
sessionKey,
|
|
1158
|
+
proof,
|
|
1159
|
+
subject: args.subject,
|
|
1160
|
+
payloadHash: base64urlEncode(args.payloadHash),
|
|
1161
|
+
iat,
|
|
1162
|
+
requestId,
|
|
1163
|
+
capabilities: [...args.requiredCapabilities],
|
|
1164
|
+
}).take();
|
|
1165
|
+
if ((0, result_1.isErr)(auth))
|
|
1166
|
+
return (0, result_1.err)(auth.error);
|
|
1167
|
+
if (!auth.allowed) {
|
|
1168
|
+
return (0, result_1.err)(new index_js_1.AuthError({
|
|
1169
|
+
reason: "insufficient_permissions",
|
|
1170
|
+
context: {
|
|
1171
|
+
feed: args.feed,
|
|
1172
|
+
requiredCapabilities: args.requiredCapabilities,
|
|
1173
|
+
userCapabilities: auth.caller.capabilities,
|
|
1174
|
+
},
|
|
1175
|
+
}));
|
|
1176
|
+
}
|
|
1177
|
+
if (typeof args.msg.reply !== "string" ||
|
|
1178
|
+
!args.msg.reply.startsWith(`${auth.inboxPrefix}.`)) {
|
|
1179
|
+
return (0, result_1.err)(new index_js_1.AuthError({
|
|
1180
|
+
reason: "reply_subject_mismatch",
|
|
1181
|
+
context: { expected: auth.inboxPrefix, actual: args.msg.reply },
|
|
1182
|
+
}));
|
|
1183
|
+
}
|
|
1184
|
+
return (0, result_1.ok)(auth.caller);
|
|
1185
|
+
}, _Trellis_subscribeFeed = function _Trellis_subscribeFeed(feed, descriptor, input, opts) {
|
|
1186
|
+
return result_1.AsyncResult.from((async () => {
|
|
1187
|
+
const payload = encodeRuntimeSchema(descriptor.input, input).take();
|
|
1188
|
+
if ((0, result_1.isErr)(payload))
|
|
1189
|
+
return payload;
|
|
1190
|
+
const subject = this.template(descriptor.subject, input).take();
|
|
1191
|
+
if ((0, result_1.isErr)(subject))
|
|
1192
|
+
return subject;
|
|
1193
|
+
const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, payload);
|
|
1194
|
+
const headers = (0, nats_core_1.headers)();
|
|
1195
|
+
headers.set("session-key", this.auth.sessionKey);
|
|
1196
|
+
headers.set("proof", authHeaders.proof);
|
|
1197
|
+
headers.set("iat", String(authHeaders.iat));
|
|
1198
|
+
headers.set("request-id", authHeaders.requestId);
|
|
1199
|
+
(0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers));
|
|
1200
|
+
const inbox = (0, nats_core_1.createInbox)(`_INBOX.${this.auth.sessionKey.slice(0, 16)}`);
|
|
1201
|
+
const sub = this.nats.subscribe(inbox);
|
|
1202
|
+
const iterator = sub[Symbol.asyncIterator]();
|
|
1203
|
+
const abort = () => sub.unsubscribe();
|
|
1204
|
+
opts?.signal?.addEventListener("abort", abort, { once: true });
|
|
1205
|
+
try {
|
|
1206
|
+
this.nats.publish(subject, payload, { headers, reply: inbox });
|
|
1207
|
+
await this.nats.flush();
|
|
1208
|
+
}
|
|
1209
|
+
catch (cause) {
|
|
1210
|
+
opts?.signal?.removeEventListener("abort", abort);
|
|
1211
|
+
sub.unsubscribe();
|
|
1212
|
+
return (0, result_1.err)(createTransportError({
|
|
1213
|
+
code: "trellis.feed.subscribe_failed",
|
|
1214
|
+
message: "Trellis could not subscribe to the feed.",
|
|
1215
|
+
hint: "Retry the subscription. If it keeps failing, check Trellis runtime health.",
|
|
1216
|
+
cause,
|
|
1217
|
+
context: { feed, subject },
|
|
1218
|
+
}));
|
|
1219
|
+
}
|
|
1220
|
+
let timeoutId;
|
|
1221
|
+
let abortHandler;
|
|
1222
|
+
const handshakePromises = [
|
|
1223
|
+
iterator.next(),
|
|
1224
|
+
new Promise((resolve) => {
|
|
1225
|
+
timeoutId = setTimeout(() => resolve("timeout"), this.timeout);
|
|
1226
|
+
}),
|
|
1227
|
+
];
|
|
1228
|
+
const signal = opts?.signal;
|
|
1229
|
+
if (signal) {
|
|
1230
|
+
handshakePromises.push(new Promise((resolve) => {
|
|
1231
|
+
abortHandler = () => resolve("aborted");
|
|
1232
|
+
signal.addEventListener("abort", abortHandler, { once: true });
|
|
1233
|
+
}));
|
|
1234
|
+
}
|
|
1235
|
+
const firstFrame = await Promise.race(handshakePromises);
|
|
1236
|
+
if (timeoutId !== undefined)
|
|
1237
|
+
clearTimeout(timeoutId);
|
|
1238
|
+
if (signal && abortHandler) {
|
|
1239
|
+
signal.removeEventListener("abort", abortHandler);
|
|
1240
|
+
}
|
|
1241
|
+
if (firstFrame === "timeout" || firstFrame === "aborted") {
|
|
1242
|
+
opts?.signal?.removeEventListener("abort", abort);
|
|
1243
|
+
sub.unsubscribe();
|
|
1244
|
+
return (0, result_1.err)(createTransportError({
|
|
1245
|
+
code: firstFrame === "timeout"
|
|
1246
|
+
? "trellis.feed.subscribe_timeout"
|
|
1247
|
+
: "trellis.feed.subscribe_aborted",
|
|
1248
|
+
message: firstFrame === "timeout"
|
|
1249
|
+
? "Trellis did not receive a feed acknowledgement."
|
|
1250
|
+
: "The feed subscription was aborted before Trellis acknowledged it.",
|
|
1251
|
+
hint: firstFrame === "timeout"
|
|
1252
|
+
? "Check that the target service is running and has the current deployment digest, then retry."
|
|
1253
|
+
: "Retry the subscription if the feed is still needed.",
|
|
1254
|
+
context: { feed, subject },
|
|
1255
|
+
}));
|
|
1256
|
+
}
|
|
1257
|
+
if (firstFrame.done) {
|
|
1258
|
+
opts?.signal?.removeEventListener("abort", abort);
|
|
1259
|
+
sub.unsubscribe();
|
|
1260
|
+
return (0, result_1.err)(createTransportError({
|
|
1261
|
+
code: "trellis.feed.subscribe_closed",
|
|
1262
|
+
message: "Trellis closed the feed before acknowledging it.",
|
|
1263
|
+
hint: "Retry the subscription. If it keeps failing, check Trellis runtime health.",
|
|
1264
|
+
context: { feed, subject },
|
|
1265
|
+
}));
|
|
1266
|
+
}
|
|
1267
|
+
const firstMessage = firstFrame.value;
|
|
1268
|
+
if (firstMessage.headers?.get("status") === "error") {
|
|
1269
|
+
opts?.signal?.removeEventListener("abort", abort);
|
|
1270
|
+
sub.unsubscribe();
|
|
1271
|
+
return (0, result_1.err)(createTransportError({
|
|
1272
|
+
code: "trellis.feed.failed",
|
|
1273
|
+
message: "Trellis rejected the feed subscription.",
|
|
1274
|
+
hint: "Retry the subscription. If it keeps failing, check Trellis runtime health and permissions.",
|
|
1275
|
+
context: { feed, subject, frame: firstMessage.string() },
|
|
1276
|
+
}));
|
|
1277
|
+
}
|
|
1278
|
+
const firstEvent = firstMessage.headers?.get("feed-status") === "ready"
|
|
1279
|
+
? undefined
|
|
1280
|
+
: firstMessage;
|
|
1281
|
+
const eventSchema = descriptor.event;
|
|
1282
|
+
return (0, result_1.ok)((async function* () {
|
|
1283
|
+
try {
|
|
1284
|
+
const parseFeedFrame = (msg) => {
|
|
1285
|
+
if (msg.headers?.get("status") === "error") {
|
|
1286
|
+
throw createTransportError({
|
|
1287
|
+
code: "trellis.feed.failed",
|
|
1288
|
+
message: "Trellis stopped the feed.",
|
|
1289
|
+
hint: "Retry the subscription. If it keeps failing, check Trellis runtime health.",
|
|
1290
|
+
context: { feed, subject, frame: msg.string() },
|
|
1291
|
+
});
|
|
1292
|
+
}
|
|
1293
|
+
const json = safeJson(msg).take();
|
|
1294
|
+
if ((0, result_1.isErr)(json))
|
|
1295
|
+
throw json.error;
|
|
1296
|
+
const parsed = parseRuntimeSchema(eventSchema, json).take();
|
|
1297
|
+
if ((0, result_1.isErr)(parsed))
|
|
1298
|
+
throw parsed.error;
|
|
1299
|
+
return parsed;
|
|
1300
|
+
};
|
|
1301
|
+
if (firstEvent)
|
|
1302
|
+
yield parseFeedFrame(firstEvent);
|
|
1303
|
+
while (true) {
|
|
1304
|
+
const next = await iterator.next();
|
|
1305
|
+
if (next.done)
|
|
1306
|
+
break;
|
|
1307
|
+
yield parseFeedFrame(next.value);
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
finally {
|
|
1311
|
+
opts?.signal?.removeEventListener("abort", abort);
|
|
1312
|
+
sub.unsubscribe();
|
|
1313
|
+
}
|
|
1314
|
+
})());
|
|
1315
|
+
})());
|
|
1316
|
+
}, _Trellis_handleFeed = async function _Trellis_handleFeed(feed, descriptor, handler) {
|
|
1317
|
+
const subject = this.template(descriptor.subject, {}, true).take();
|
|
1318
|
+
if ((0, result_1.isErr)(subject))
|
|
1319
|
+
throw subject.error;
|
|
1320
|
+
let sub;
|
|
1321
|
+
try {
|
|
1322
|
+
sub = this.nats.subscribe(subject);
|
|
1323
|
+
await this.nats.flush();
|
|
1324
|
+
}
|
|
1325
|
+
catch (cause) {
|
|
1326
|
+
throw createTransportError({
|
|
1327
|
+
code: "trellis.feed.listen_failed",
|
|
1328
|
+
message: "Trellis could not listen for feed requests.",
|
|
1329
|
+
hint: "Check the service deployment digest and runtime permissions, then restart the service.",
|
|
1330
|
+
cause,
|
|
1331
|
+
context: { feed, subject },
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1334
|
+
const task = result_1.AsyncResult.try(async () => {
|
|
1335
|
+
for await (const msg of sub) {
|
|
1336
|
+
void (async () => {
|
|
1337
|
+
try {
|
|
1338
|
+
const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_processFeedMessage).call(this, feed, descriptor, msg, handler);
|
|
1339
|
+
const value = result.take();
|
|
1340
|
+
if ((0, result_1.isErr)(value)) {
|
|
1341
|
+
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, value.error);
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
catch (cause) {
|
|
1345
|
+
const error = cause instanceof result_1.BaseError
|
|
1346
|
+
? cause
|
|
1347
|
+
: new index_js_1.UnexpectedError({ cause });
|
|
1348
|
+
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, error);
|
|
1349
|
+
}
|
|
1350
|
+
})();
|
|
1351
|
+
}
|
|
1352
|
+
});
|
|
1353
|
+
__classPrivateFieldGet(this, _Trellis_tasks, "f").add(`feed:${feed}`, task);
|
|
1354
|
+
}, _Trellis_processFeedMessage = async function _Trellis_processFeedMessage(feed, descriptor, msg, handler) {
|
|
1355
|
+
const json = safeJson(msg).take();
|
|
1356
|
+
if ((0, result_1.isErr)(json))
|
|
1357
|
+
return json;
|
|
1358
|
+
const parsed = parseRuntimeSchema(descriptor.input, json).take();
|
|
1359
|
+
if ((0, result_1.isErr)(parsed))
|
|
1360
|
+
return parsed;
|
|
1361
|
+
const caller = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_authenticateFeedRequest).call(this, {
|
|
1362
|
+
feed,
|
|
1363
|
+
subject: msg.subject,
|
|
1364
|
+
msg,
|
|
1365
|
+
payloadHash: await sha256(msg.data ?? new Uint8Array()),
|
|
1366
|
+
requiredCapabilities: descriptor.subscribeCapabilities,
|
|
1367
|
+
});
|
|
1368
|
+
const callerValue = caller.take();
|
|
1369
|
+
if ((0, result_1.isErr)(callerValue))
|
|
1370
|
+
return callerValue;
|
|
1371
|
+
if (!msg.reply) {
|
|
1372
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
1373
|
+
context: { feed, reason: "missing_reply" },
|
|
1374
|
+
}));
|
|
1375
|
+
}
|
|
1376
|
+
const readyHeaders = (0, nats_core_1.headers)();
|
|
1377
|
+
readyHeaders.set("feed-status", "ready");
|
|
1378
|
+
this.nats.publish(msg.reply, new Uint8Array(), { headers: readyHeaders });
|
|
1379
|
+
await this.nats.flush();
|
|
1380
|
+
const controller = new AbortController();
|
|
1381
|
+
try {
|
|
1382
|
+
await handler({
|
|
1383
|
+
input: parsed,
|
|
1384
|
+
caller: callerValue,
|
|
1385
|
+
signal: controller.signal,
|
|
1386
|
+
emit: (event) => result_1.AsyncResult.from((async () => {
|
|
1387
|
+
const payload = encodeRuntimeSchema(descriptor.event, event).take();
|
|
1388
|
+
if ((0, result_1.isErr)(payload))
|
|
1389
|
+
return payload;
|
|
1390
|
+
if (!msg.reply) {
|
|
1391
|
+
return (0, result_1.err)(new index_js_1.UnexpectedError({
|
|
1392
|
+
context: { feed, reason: "missing_reply" },
|
|
1393
|
+
}));
|
|
1394
|
+
}
|
|
1395
|
+
this.nats.publish(msg.reply, payload);
|
|
1396
|
+
await this.nats.flush();
|
|
1397
|
+
return (0, result_1.ok)(undefined);
|
|
1398
|
+
})()),
|
|
1399
|
+
});
|
|
1400
|
+
return (0, result_1.ok)(undefined);
|
|
1401
|
+
}
|
|
1402
|
+
finally {
|
|
1403
|
+
controller.abort();
|
|
1404
|
+
}
|
|
1045
1405
|
}, _Trellis_handleRPC = function _Trellis_handleRPC(method, fn, subjectData = {}) {
|
|
1046
1406
|
// Get API details
|
|
1047
1407
|
const ctx = this.api["rpc"][method];
|
|
@@ -1057,10 +1417,31 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1057
1417
|
const resultPromise = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_processRPCMessage).call(this, method, ctx, msg, fn, handlerTrellis);
|
|
1058
1418
|
const result = resultPromise.take();
|
|
1059
1419
|
if ((0, result_1.isErr)(result)) {
|
|
1060
|
-
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, result.error);
|
|
1420
|
+
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, result.error, { method: String(method) });
|
|
1061
1421
|
continue;
|
|
1062
1422
|
}
|
|
1063
|
-
|
|
1423
|
+
const sent = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithPayload).call(this, msg, result, undefined, {
|
|
1424
|
+
method: String(method),
|
|
1425
|
+
responseKind: "success",
|
|
1426
|
+
});
|
|
1427
|
+
if (sent.isErr()) {
|
|
1428
|
+
const responseBytes = payloadByteLength(result);
|
|
1429
|
+
const message = causeMessage(sent.error.cause);
|
|
1430
|
+
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, new index_js_1.TransportError({
|
|
1431
|
+
code: "trellis.rpc.response_send_failed",
|
|
1432
|
+
message: message.includes("max_payload")
|
|
1433
|
+
? "Trellis RPC response exceeded NATS max_payload."
|
|
1434
|
+
: "Trellis could not send the RPC response.",
|
|
1435
|
+
hint: "Reduce the requested page size or use a narrower RPC that does not include large detail payloads.",
|
|
1436
|
+
cause: sent.error.cause,
|
|
1437
|
+
context: {
|
|
1438
|
+
method: String(method),
|
|
1439
|
+
subject: msg.subject,
|
|
1440
|
+
responseBytes,
|
|
1441
|
+
causeMessage: message,
|
|
1442
|
+
},
|
|
1443
|
+
}), { method: String(method), responseBytes });
|
|
1444
|
+
}
|
|
1064
1445
|
}
|
|
1065
1446
|
});
|
|
1066
1447
|
}, _Trellis_processRPCMessage = async function _Trellis_processRPCMessage(method, ctx, msg, fn, handlerTrellis) {
|
|
@@ -1072,6 +1453,7 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1072
1453
|
}));
|
|
1073
1454
|
// Start a server span for this RPC handler
|
|
1074
1455
|
const span = (0, tracing_js_1.startServerSpan)(method, msg.subject, parentContext);
|
|
1456
|
+
const incomingTraceId = traceIdFromTraceparent(msg.headers?.get("traceparent"));
|
|
1075
1457
|
// Execute the handler within the span's context
|
|
1076
1458
|
return (0, tracing_js_1.withSpanAsync)(span, async () => {
|
|
1077
1459
|
const execute = async () => {
|
|
@@ -1095,7 +1477,7 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1095
1477
|
let caller;
|
|
1096
1478
|
const callerSessionKey = msg.headers?.get("session-key") ?? "";
|
|
1097
1479
|
const authRequired = ctx.authRequired ?? true;
|
|
1098
|
-
if (!authRequired
|
|
1480
|
+
if (!authRequired) {
|
|
1099
1481
|
caller = {
|
|
1100
1482
|
type: "service",
|
|
1101
1483
|
id: "system",
|
|
@@ -1107,6 +1489,8 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1107
1489
|
else {
|
|
1108
1490
|
const sessionKey = msg.headers?.get("session-key");
|
|
1109
1491
|
const proof = msg.headers?.get("proof");
|
|
1492
|
+
const iatHeader = msg.headers?.get("iat");
|
|
1493
|
+
const requestId = msg.headers?.get("request-id");
|
|
1110
1494
|
if (!sessionKey) {
|
|
1111
1495
|
__classPrivateFieldGet(this, _Trellis_log, "f").warn({ method }, "Missing session-key header");
|
|
1112
1496
|
span.setStatus({
|
|
@@ -1123,10 +1507,14 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1123
1507
|
});
|
|
1124
1508
|
return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_proof" }));
|
|
1125
1509
|
}
|
|
1510
|
+
const iat = Number(iatHeader);
|
|
1511
|
+
if (!Number.isSafeInteger(iat) || !requestId) {
|
|
1512
|
+
return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature" }));
|
|
1513
|
+
}
|
|
1126
1514
|
// Verify proof signature locally using the raw request bytes we received.
|
|
1127
1515
|
const payloadBytes = msg.data ?? new Uint8Array();
|
|
1128
1516
|
const payloadHash = await sha256(payloadBytes);
|
|
1129
|
-
const proofInput = buildProofInput(sessionKey, msg.subject, payloadHash);
|
|
1517
|
+
const proofInput = buildProofInput(sessionKey, msg.subject, payloadHash, iat, requestId);
|
|
1130
1518
|
const digest = await sha256(proofInput);
|
|
1131
1519
|
const verifyResult = await result_1.AsyncResult.try(async () => {
|
|
1132
1520
|
const publicKeyRaw = base64urlDecode(sessionKey);
|
|
@@ -1152,6 +1540,8 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1152
1540
|
proof,
|
|
1153
1541
|
subject: msg.subject,
|
|
1154
1542
|
payloadHash: base64urlEncode(payloadHash),
|
|
1543
|
+
iat,
|
|
1544
|
+
requestId,
|
|
1155
1545
|
capabilities: [...ctx.callerCapabilities],
|
|
1156
1546
|
}).take();
|
|
1157
1547
|
if (!(0, result_1.isErr)(authValue)) {
|
|
@@ -1179,10 +1569,10 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1179
1569
|
remoteError: auth instanceof RemoteError_js_1.RemoteError
|
|
1180
1570
|
? auth.toSerializable()
|
|
1181
1571
|
: undefined,
|
|
1182
|
-
}, "Auth.
|
|
1572
|
+
}, "Auth.Requests.Validate failed");
|
|
1183
1573
|
span.setStatus({
|
|
1184
1574
|
code: tracing_js_1.SpanStatusCode.ERROR,
|
|
1185
|
-
message: "Auth.
|
|
1575
|
+
message: "Auth.Requests.Validate failed",
|
|
1186
1576
|
});
|
|
1187
1577
|
if (auth instanceof result_1.BaseError) {
|
|
1188
1578
|
return (0, result_1.err)(auth);
|
|
@@ -1217,11 +1607,13 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1217
1607
|
}
|
|
1218
1608
|
span.setAttribute("auth.caller.type", caller.type);
|
|
1219
1609
|
if (caller.type === "user") {
|
|
1220
|
-
span.setAttribute("user.id", caller.
|
|
1221
|
-
span.setAttribute("user.
|
|
1610
|
+
span.setAttribute("user.id", caller.userId);
|
|
1611
|
+
span.setAttribute("user.identity.provider", caller.identity.provider);
|
|
1612
|
+
span.setAttribute("user.identity.subject", caller.identity.subject);
|
|
1222
1613
|
}
|
|
1223
1614
|
if (caller.type === "service") {
|
|
1224
|
-
|
|
1615
|
+
const { id } = caller;
|
|
1616
|
+
span.setAttribute("service.id", id);
|
|
1225
1617
|
}
|
|
1226
1618
|
if (caller.type === "device") {
|
|
1227
1619
|
span.setAttribute("device.id", caller.deviceId);
|
|
@@ -1286,25 +1678,61 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1286
1678
|
return (0, result_1.ok)(encoded);
|
|
1287
1679
|
};
|
|
1288
1680
|
const result = await execute();
|
|
1681
|
+
if ((0, result_1.isErr)(result)) {
|
|
1682
|
+
result.error.withTraceId(activeTraceId(span) ?? incomingTraceId);
|
|
1683
|
+
}
|
|
1289
1684
|
span.end();
|
|
1290
1685
|
return result;
|
|
1291
1686
|
});
|
|
1292
|
-
},
|
|
1687
|
+
}, _Trellis_respondWithPayload = function _Trellis_respondWithPayload(msg, payload, options, context) {
|
|
1688
|
+
const responseBytes = payloadByteLength(payload);
|
|
1689
|
+
try {
|
|
1690
|
+
msg.respond(payload, options);
|
|
1691
|
+
return (0, result_1.ok)(undefined);
|
|
1692
|
+
}
|
|
1693
|
+
catch (cause) {
|
|
1694
|
+
const error = new index_js_1.UnexpectedError({
|
|
1695
|
+
cause,
|
|
1696
|
+
context: {
|
|
1697
|
+
method: context.method,
|
|
1698
|
+
responseKind: context.responseKind,
|
|
1699
|
+
subject: msg.subject,
|
|
1700
|
+
reply: msg.reply,
|
|
1701
|
+
responseBytes,
|
|
1702
|
+
causeMessage: causeMessage(cause),
|
|
1703
|
+
},
|
|
1704
|
+
});
|
|
1705
|
+
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
1706
|
+
method: context.method,
|
|
1707
|
+
responseKind: context.responseKind,
|
|
1708
|
+
subject: msg.subject,
|
|
1709
|
+
reply: msg.reply,
|
|
1710
|
+
responseBytes,
|
|
1711
|
+
cause: causeLogData(cause),
|
|
1712
|
+
}, "Failed to send RPC response");
|
|
1713
|
+
return (0, result_1.err)(error);
|
|
1714
|
+
}
|
|
1715
|
+
}, _Trellis_respondWithError = function _Trellis_respondWithError(msg, error, context = {}) {
|
|
1293
1716
|
const trellisError = error instanceof result_1.BaseError &&
|
|
1294
1717
|
!(error instanceof RemoteError_js_1.RemoteError)
|
|
1295
1718
|
? error
|
|
1296
1719
|
: new index_js_1.UnexpectedError({ cause: error });
|
|
1297
|
-
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
1720
|
+
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
1721
|
+
method: context.method,
|
|
1722
|
+
subject: msg.subject,
|
|
1723
|
+
responseBytes: context.responseBytes,
|
|
1724
|
+
error: trellisError.toSerializable(),
|
|
1725
|
+
}, "RPC error");
|
|
1298
1726
|
const errorData = trellisError.toSerializable();
|
|
1299
1727
|
const hdrs = (0, nats_core_1.headers)();
|
|
1300
1728
|
hdrs.set("status", "error");
|
|
1301
1729
|
const serialized = result_1.Result.try(() => JSON.stringify(errorData));
|
|
1302
1730
|
if (serialized.isErr()) {
|
|
1303
1731
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({ error: serialized.error }, "Failed to serialize error response");
|
|
1304
|
-
|
|
1732
|
+
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithPayload).call(this, msg, '{"type":"UnexpectedError","message":"Failed to serialize error"}', { headers: hdrs }, { method: context.method, responseKind: "error" });
|
|
1305
1733
|
return;
|
|
1306
1734
|
}
|
|
1307
|
-
|
|
1735
|
+
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithPayload).call(this, msg, serialized.take(), { headers: hdrs }, { method: context.method, responseKind: "error" });
|
|
1308
1736
|
}, _Trellis_startEphemeralEvent = function _Trellis_startEphemeralEvent(event, ctx, subject, fn, signal) {
|
|
1309
1737
|
const sub = this.nats.subscribe(subject);
|
|
1310
1738
|
if (signal) {
|
|
@@ -1372,13 +1800,17 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1372
1800
|
return `_${out}`;
|
|
1373
1801
|
}
|
|
1374
1802
|
return out;
|
|
1803
|
+
}, _Trellis_currentIat = function _Trellis_currentIat() {
|
|
1804
|
+
return this.auth.currentIat?.() ?? Math.floor(Date.now() / 1000);
|
|
1375
1805
|
}, _Trellis_createProof = async function _Trellis_createProof(subject, payload) {
|
|
1376
1806
|
const payloadBytes = new TextEncoder().encode(payload);
|
|
1377
1807
|
const payloadHash = await sha256(payloadBytes);
|
|
1378
|
-
const
|
|
1808
|
+
const iat = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_currentIat).call(this);
|
|
1809
|
+
const requestId = (0, ulid_1.ulid)();
|
|
1810
|
+
const input = buildProofInput(this.auth.sessionKey, subject, payloadHash, iat, requestId);
|
|
1379
1811
|
const digest = await sha256(input);
|
|
1380
1812
|
const sigBytes = await this.auth.sign(digest);
|
|
1381
|
-
return base64urlEncode(sigBytes);
|
|
1813
|
+
return { proof: base64urlEncode(sigBytes), iat, requestId };
|
|
1382
1814
|
}, _Trellis_requestMessageWithRetry = async function _Trellis_requestMessageWithRetry(args) {
|
|
1383
1815
|
for (let retry = 0; retry <= __classPrivateFieldGet(this, _Trellis_noResponderMaxRetries, "f"); retry++) {
|
|
1384
1816
|
const result = await result_1.AsyncResult.try(() => this.nats.request(args.subject, args.payload, {
|
|
@@ -1414,39 +1846,71 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1414
1846
|
}));
|
|
1415
1847
|
}, _Trellis_requestJson = function _Trellis_requestJson(subject, body) {
|
|
1416
1848
|
return result_1.AsyncResult.from((async () => {
|
|
1417
|
-
const
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1849
|
+
const span = (0, tracing_js_1.startClientSpan)(subject, subject);
|
|
1850
|
+
return await (0, tracing_js_1.withSpanAsync)(span, async () => {
|
|
1851
|
+
try {
|
|
1852
|
+
const payload = JSON.stringify(body);
|
|
1853
|
+
const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, payload);
|
|
1854
|
+
const headers = (0, nats_core_1.headers)();
|
|
1855
|
+
headers.set("session-key", this.auth.sessionKey);
|
|
1856
|
+
headers.set("proof", authHeaders.proof);
|
|
1857
|
+
headers.set("iat", String(authHeaders.iat));
|
|
1858
|
+
headers.set("request-id", authHeaders.requestId);
|
|
1859
|
+
(0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers), span);
|
|
1860
|
+
const response = (await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestMessageWithRetry).call(this, {
|
|
1861
|
+
subject,
|
|
1862
|
+
payload,
|
|
1863
|
+
headers,
|
|
1864
|
+
timeout: this.timeout,
|
|
1865
|
+
})).take();
|
|
1866
|
+
if ((0, result_1.isErr)(response)) {
|
|
1867
|
+
span.setStatus({
|
|
1868
|
+
code: tracing_js_1.SpanStatusCode.ERROR,
|
|
1869
|
+
message: response.error.message,
|
|
1870
|
+
});
|
|
1871
|
+
return response;
|
|
1872
|
+
}
|
|
1873
|
+
const json = safeJson(response).take();
|
|
1874
|
+
if ((0, result_1.isErr)(json)) {
|
|
1875
|
+
const error = createTransportError({
|
|
1876
|
+
code: "trellis.request.invalid_response",
|
|
1877
|
+
message: "Trellis returned an invalid response.",
|
|
1878
|
+
hint: "Retry the request. If it keeps happening, reconnect to Trellis and try again.",
|
|
1879
|
+
cause: json.error.cause,
|
|
1880
|
+
context: { subject },
|
|
1881
|
+
});
|
|
1882
|
+
span.setStatus({
|
|
1883
|
+
code: tracing_js_1.SpanStatusCode.ERROR,
|
|
1884
|
+
message: error.message,
|
|
1885
|
+
});
|
|
1886
|
+
return (0, result_1.err)(error);
|
|
1887
|
+
}
|
|
1888
|
+
span.setStatus({ code: tracing_js_1.SpanStatusCode.OK });
|
|
1889
|
+
return (0, result_1.ok)(json);
|
|
1890
|
+
}
|
|
1891
|
+
catch (cause) {
|
|
1892
|
+
const error = new index_js_1.UnexpectedError({ cause });
|
|
1893
|
+
span.setStatus({
|
|
1894
|
+
code: tracing_js_1.SpanStatusCode.ERROR,
|
|
1895
|
+
message: error.message,
|
|
1896
|
+
});
|
|
1897
|
+
span.recordException(error);
|
|
1898
|
+
return (0, result_1.err)(error);
|
|
1899
|
+
}
|
|
1900
|
+
finally {
|
|
1901
|
+
span.end();
|
|
1902
|
+
}
|
|
1903
|
+
});
|
|
1442
1904
|
})());
|
|
1443
1905
|
}, _Trellis_watchJson = function _Trellis_watchJson(subject, body) {
|
|
1444
1906
|
return result_1.AsyncResult.from((async () => {
|
|
1445
1907
|
const payload = JSON.stringify(body);
|
|
1446
|
-
const
|
|
1908
|
+
const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, payload);
|
|
1447
1909
|
const headers = (0, nats_core_1.headers)();
|
|
1448
1910
|
headers.set("session-key", this.auth.sessionKey);
|
|
1449
|
-
headers.set("proof", proof);
|
|
1911
|
+
headers.set("proof", authHeaders.proof);
|
|
1912
|
+
headers.set("iat", String(authHeaders.iat));
|
|
1913
|
+
headers.set("request-id", authHeaders.requestId);
|
|
1450
1914
|
const inbox = (0, nats_core_1.createInbox)(`_INBOX.${this.auth.sessionKey.slice(0, 16)}`);
|
|
1451
1915
|
const sub = this.nats.subscribe(inbox);
|
|
1452
1916
|
try {
|