@agentuity/core 1.0.32 → 1.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/env-example.d.ts +11 -0
- package/dist/env-example.d.ts.map +1 -0
- package/dist/env-example.js +70 -0
- package/dist/env-example.js.map +1 -0
- package/dist/index.d.ts +6 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -15
- package/dist/index.js.map +1 -1
- package/dist/services/adapter.d.ts +57 -22
- package/dist/services/adapter.d.ts.map +1 -1
- package/dist/services/adapter.js +52 -1
- package/dist/services/adapter.js.map +1 -1
- package/dist/services/api.d.ts +222 -0
- package/dist/services/api.d.ts.map +1 -0
- package/dist/services/api.js +662 -0
- package/dist/services/api.js.map +1 -0
- package/dist/services/apikey/create.d.ts +34 -0
- package/dist/services/apikey/create.d.ts.map +1 -0
- package/dist/services/apikey/create.js +29 -0
- package/dist/services/apikey/create.js.map +1 -0
- package/dist/services/apikey/delete.d.ts +19 -0
- package/dist/services/apikey/delete.d.ts.map +1 -0
- package/dist/services/apikey/delete.js +19 -0
- package/dist/services/apikey/delete.js.map +1 -0
- package/dist/services/apikey/get.d.ts +45 -0
- package/dist/services/apikey/get.d.ts.map +1 -0
- package/dist/services/apikey/get.js +36 -0
- package/dist/services/apikey/get.js.map +1 -0
- package/dist/services/apikey/index.d.ts +6 -0
- package/dist/services/apikey/index.d.ts.map +1 -0
- package/dist/services/apikey/index.js +6 -0
- package/dist/services/apikey/index.js.map +1 -0
- package/dist/services/apikey/list.d.ts +65 -0
- package/dist/services/apikey/list.d.ts.map +1 -0
- package/dist/services/apikey/list.js +50 -0
- package/dist/services/apikey/list.js.map +1 -0
- package/dist/services/apikey/util.d.ts +23 -0
- package/dist/services/apikey/util.d.ts.map +1 -0
- package/dist/services/apikey/util.js +3 -0
- package/dist/services/apikey/util.js.map +1 -0
- package/dist/services/config.d.ts +22 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +55 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/db/index.d.ts +5 -0
- package/dist/services/db/index.d.ts.map +1 -0
- package/dist/services/db/index.js +5 -0
- package/dist/services/db/index.js.map +1 -0
- package/dist/services/db/logs.d.ts +70 -0
- package/dist/services/db/logs.d.ts.map +1 -0
- package/dist/services/db/logs.js +59 -0
- package/dist/services/db/logs.js.map +1 -0
- package/dist/services/db/query.d.ts +40 -0
- package/dist/services/db/query.d.ts.map +1 -0
- package/dist/services/db/query.js +55 -0
- package/dist/services/db/query.js.map +1 -0
- package/dist/services/db/tables.d.ts +50 -0
- package/dist/services/db/tables.d.ts.map +1 -0
- package/dist/services/db/tables.js +64 -0
- package/dist/services/db/tables.js.map +1 -0
- package/dist/services/db/util.d.ts +31 -0
- package/dist/services/db/util.d.ts.map +1 -0
- package/dist/services/db/util.js +4 -0
- package/dist/services/db/util.js.map +1 -0
- package/dist/services/email/index.d.ts +2 -0
- package/dist/services/email/index.d.ts.map +1 -0
- package/dist/services/email/index.js +2 -0
- package/dist/services/email/index.js.map +1 -0
- package/dist/services/{email.d.ts → email/service.d.ts} +137 -296
- package/dist/services/email/service.d.ts.map +1 -0
- package/dist/services/{email.js → email/service.js} +403 -18
- package/dist/services/email/service.js.map +1 -0
- package/dist/services/env.d.ts +5 -0
- package/dist/services/env.d.ts.map +1 -0
- package/dist/services/env.js +10 -0
- package/dist/services/env.js.map +1 -0
- package/dist/services/{evalrun.d.ts → eval/events.d.ts} +1 -1
- package/dist/services/eval/events.d.ts.map +1 -0
- package/dist/services/{evalrun.js → eval/events.js} +1 -1
- package/dist/services/eval/events.js.map +1 -0
- package/dist/services/eval/get.d.ts +36 -0
- package/dist/services/eval/get.d.ts.map +1 -0
- package/dist/services/eval/get.js +23 -0
- package/dist/services/eval/get.js.map +1 -0
- package/dist/services/eval/index.d.ts +6 -0
- package/dist/services/eval/index.d.ts.map +1 -0
- package/dist/services/eval/index.js +6 -0
- package/dist/services/eval/index.js.map +1 -0
- package/dist/services/eval/list.d.ts +50 -0
- package/dist/services/eval/list.d.ts.map +1 -0
- package/dist/services/eval/list.js +32 -0
- package/dist/services/eval/list.js.map +1 -0
- package/dist/services/eval/run-get.d.ts +48 -0
- package/dist/services/eval/run-get.d.ts.map +1 -0
- package/dist/services/eval/run-get.js +29 -0
- package/dist/services/eval/run-get.js.map +1 -0
- package/dist/services/eval/run-list.d.ts +70 -0
- package/dist/services/eval/run-list.d.ts.map +1 -0
- package/dist/services/eval/run-list.js +42 -0
- package/dist/services/eval/run-list.js.map +1 -0
- package/dist/services/exception.d.ts +28 -9
- package/dist/services/exception.d.ts.map +1 -1
- package/dist/services/exception.js +14 -0
- package/dist/services/exception.js.map +1 -1
- package/dist/services/index.d.ts +26 -12
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +26 -11
- package/dist/services/index.js.map +1 -1
- package/dist/services/keyvalue/index.d.ts +2 -0
- package/dist/services/keyvalue/index.d.ts.map +1 -0
- package/dist/services/keyvalue/index.js +2 -0
- package/dist/services/keyvalue/index.js.map +1 -0
- package/dist/services/{keyvalue.d.ts → keyvalue/service.d.ts} +98 -120
- package/dist/services/keyvalue/service.d.ts.map +1 -0
- package/dist/services/{keyvalue.js → keyvalue/service.js} +182 -12
- package/dist/services/keyvalue/service.js.map +1 -0
- package/dist/services/logger.d.ts +7 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +23 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/machine/index.d.ts +3 -0
- package/dist/services/machine/index.d.ts.map +1 -0
- package/dist/services/machine/index.js +3 -0
- package/dist/services/machine/index.js.map +1 -0
- package/dist/services/machine/machine.d.ts +192 -0
- package/dist/services/machine/machine.d.ts.map +1 -0
- package/dist/services/machine/machine.js +177 -0
- package/dist/services/machine/machine.js.map +1 -0
- package/dist/services/machine/util.d.ts +14 -0
- package/dist/services/machine/util.d.ts.map +1 -0
- package/dist/services/machine/util.js +3 -0
- package/dist/services/machine/util.js.map +1 -0
- package/dist/services/org/env-delete.d.ts +23 -0
- package/dist/services/org/env-delete.d.ts.map +1 -0
- package/dist/services/org/env-delete.js +25 -0
- package/dist/services/org/env-delete.js.map +1 -0
- package/dist/services/org/env-get.d.ts +33 -0
- package/dist/services/org/env-get.d.ts.map +1 -0
- package/dist/services/org/env-get.js +33 -0
- package/dist/services/org/env-get.js.map +1 -0
- package/dist/services/org/env-update.d.ts +24 -0
- package/dist/services/org/env-update.d.ts.map +1 -0
- package/dist/services/org/env-update.js +26 -0
- package/dist/services/org/env-update.js.map +1 -0
- package/dist/services/org/index.d.ts +7 -0
- package/dist/services/org/index.d.ts.map +1 -0
- package/dist/services/org/index.js +7 -0
- package/dist/services/org/index.js.map +1 -0
- package/dist/services/org/list.d.ts +27 -0
- package/dist/services/org/list.d.ts.map +1 -0
- package/dist/services/org/list.js +22 -0
- package/dist/services/org/list.js.map +1 -0
- package/dist/services/org/resources.d.ts +150 -0
- package/dist/services/org/resources.d.ts.map +1 -0
- package/dist/services/org/resources.js +111 -0
- package/dist/services/org/resources.js.map +1 -0
- package/dist/services/org/util.d.ts +45 -0
- package/dist/services/org/util.d.ts.map +1 -0
- package/dist/services/org/util.js +4 -0
- package/dist/services/org/util.js.map +1 -0
- package/dist/services/pagination.d.ts +38 -11
- package/dist/services/pagination.d.ts.map +1 -1
- package/dist/services/pagination.js +30 -1
- package/dist/services/pagination.js.map +1 -1
- package/dist/services/project/agent.d.ts +89 -0
- package/dist/services/project/agent.d.ts.map +1 -0
- package/dist/services/project/agent.js +60 -0
- package/dist/services/project/agent.js.map +1 -0
- package/dist/services/project/create.d.ts +37 -0
- package/dist/services/project/create.d.ts.map +1 -0
- package/dist/services/project/create.js +31 -0
- package/dist/services/project/create.js.map +1 -0
- package/dist/services/project/delete.d.ts +15 -0
- package/dist/services/project/delete.d.ts.map +1 -0
- package/dist/services/project/delete.js +15 -0
- package/dist/services/project/delete.js.map +1 -0
- package/dist/services/project/deploy.d.ts +468 -0
- package/dist/services/project/deploy.d.ts.map +1 -0
- package/dist/services/project/deploy.js +313 -0
- package/dist/services/project/deploy.js.map +1 -0
- package/dist/services/project/deployment.d.ts +237 -0
- package/dist/services/project/deployment.d.ts.map +1 -0
- package/dist/services/project/deployment.js +180 -0
- package/dist/services/project/deployment.js.map +1 -0
- package/dist/services/project/env-delete.d.ts +22 -0
- package/dist/services/project/env-delete.d.ts.map +1 -0
- package/dist/services/project/env-delete.js +29 -0
- package/dist/services/project/env-delete.js.map +1 -0
- package/dist/services/project/env-update.d.ts +31 -0
- package/dist/services/project/env-update.d.ts.map +1 -0
- package/dist/services/project/env-update.js +36 -0
- package/dist/services/project/env-update.js.map +1 -0
- package/dist/services/project/exists.d.ts +25 -0
- package/dist/services/project/exists.d.ts.map +1 -0
- package/dist/services/project/exists.js +45 -0
- package/dist/services/project/exists.js.map +1 -0
- package/dist/services/project/get.d.ts +43 -0
- package/dist/services/project/get.d.ts.map +1 -0
- package/dist/services/project/get.js +36 -0
- package/dist/services/project/get.js.map +1 -0
- package/dist/services/project/hostname.d.ts +25 -0
- package/dist/services/project/hostname.d.ts.map +1 -0
- package/dist/services/project/hostname.js +43 -0
- package/dist/services/project/hostname.js.map +1 -0
- package/dist/services/project/index.d.ts +14 -0
- package/dist/services/project/index.d.ts.map +1 -0
- package/dist/services/project/index.js +14 -0
- package/dist/services/project/index.js.map +1 -0
- package/dist/services/project/list.d.ts +48 -0
- package/dist/services/project/list.d.ts.map +1 -0
- package/dist/services/project/list.js +38 -0
- package/dist/services/project/list.js.map +1 -0
- package/dist/services/project/malware.d.ts +71 -0
- package/dist/services/project/malware.d.ts.map +1 -0
- package/dist/services/project/malware.js +57 -0
- package/dist/services/project/malware.js.map +1 -0
- package/dist/services/project/update-region.d.ts +27 -0
- package/dist/services/project/update-region.d.ts.map +1 -0
- package/dist/services/project/update-region.js +25 -0
- package/dist/services/project/update-region.js.map +1 -0
- package/dist/services/project/util.d.ts +62 -0
- package/dist/services/project/util.d.ts.map +1 -0
- package/dist/services/project/util.js +6 -0
- package/dist/services/project/util.js.map +1 -0
- package/dist/services/queue/analytics.d.ts +261 -0
- package/dist/services/queue/analytics.d.ts.map +1 -0
- package/dist/services/queue/analytics.js +254 -0
- package/dist/services/queue/analytics.js.map +1 -0
- package/dist/services/queue/consumers.d.ts +48 -0
- package/dist/services/queue/consumers.d.ts.map +1 -0
- package/dist/services/queue/consumers.js +43 -0
- package/dist/services/queue/consumers.js.map +1 -0
- package/dist/services/queue/destinations.d.ts +269 -0
- package/dist/services/queue/destinations.d.ts.map +1 -0
- package/dist/services/queue/destinations.js +215 -0
- package/dist/services/queue/destinations.js.map +1 -0
- package/dist/services/queue/dlq.d.ts +170 -0
- package/dist/services/queue/dlq.d.ts.map +1 -0
- package/dist/services/queue/dlq.js +166 -0
- package/dist/services/queue/dlq.js.map +1 -0
- package/dist/services/queue/index.d.ts +58 -0
- package/dist/services/queue/index.d.ts.map +1 -0
- package/dist/services/queue/index.js +98 -0
- package/dist/services/queue/index.js.map +1 -0
- package/dist/services/queue/messages.d.ts +511 -0
- package/dist/services/queue/messages.d.ts.map +1 -0
- package/dist/services/queue/messages.js +549 -0
- package/dist/services/queue/messages.js.map +1 -0
- package/dist/services/queue/queues.d.ts +228 -0
- package/dist/services/queue/queues.d.ts.map +1 -0
- package/dist/services/queue/queues.js +321 -0
- package/dist/services/queue/queues.js.map +1 -0
- package/dist/services/{queue.d.ts → queue/service.d.ts} +44 -96
- package/dist/services/queue/service.d.ts.map +1 -0
- package/dist/services/{queue.js → queue/service.js} +154 -6
- package/dist/services/queue/service.js.map +1 -0
- package/dist/services/queue/sources.d.ts +252 -0
- package/dist/services/queue/sources.d.ts.map +1 -0
- package/dist/services/queue/sources.js +249 -0
- package/dist/services/queue/sources.js.map +1 -0
- package/dist/services/queue/types.d.ts +1335 -0
- package/dist/services/queue/types.d.ts.map +1 -0
- package/dist/services/queue/types.js +1376 -0
- package/dist/services/queue/types.js.map +1 -0
- package/dist/services/queue/util.d.ts +278 -0
- package/dist/services/queue/util.d.ts.map +1 -0
- package/dist/services/queue/util.js +233 -0
- package/dist/services/queue/util.js.map +1 -0
- package/dist/services/queue/validation.d.ts +218 -0
- package/dist/services/queue/validation.d.ts.map +1 -0
- package/dist/services/queue/validation.js +498 -0
- package/dist/services/queue/validation.js.map +1 -0
- package/dist/services/queue/websocket.d.ts +154 -0
- package/dist/services/queue/websocket.d.ts.map +1 -0
- package/dist/services/queue/websocket.js +472 -0
- package/dist/services/queue/websocket.js.map +1 -0
- package/dist/services/region/create.d.ts +81 -0
- package/dist/services/region/create.d.ts.map +1 -0
- package/dist/services/region/create.js +177 -0
- package/dist/services/region/create.js.map +1 -0
- package/dist/services/region/delete.d.ts +62 -0
- package/dist/services/region/delete.d.ts.map +1 -0
- package/dist/services/region/delete.js +37 -0
- package/dist/services/region/delete.js.map +1 -0
- package/dist/services/region/index.d.ts +5 -0
- package/dist/services/region/index.d.ts.map +1 -0
- package/dist/services/region/index.js +5 -0
- package/dist/services/region/index.js.map +1 -0
- package/dist/services/region/list.d.ts +27 -0
- package/dist/services/region/list.d.ts.map +1 -0
- package/dist/services/region/list.js +22 -0
- package/dist/services/region/list.js.map +1 -0
- package/dist/services/region/resources.d.ts +71 -0
- package/dist/services/region/resources.d.ts.map +1 -0
- package/dist/services/region/resources.js +53 -0
- package/dist/services/region/resources.js.map +1 -0
- package/dist/services/region/util.d.ts +23 -0
- package/dist/services/region/util.d.ts.map +1 -0
- package/dist/services/region/util.js +3 -0
- package/dist/services/region/util.js.map +1 -0
- package/dist/services/sandbox/cli-list.d.ts +103 -0
- package/dist/services/sandbox/cli-list.d.ts.map +1 -0
- package/dist/services/sandbox/cli-list.js +106 -0
- package/dist/services/sandbox/cli-list.js.map +1 -0
- package/dist/services/sandbox/client.d.ts +173 -0
- package/dist/services/sandbox/client.d.ts.map +1 -0
- package/dist/services/sandbox/client.js +302 -0
- package/dist/services/sandbox/client.js.map +1 -0
- package/dist/services/sandbox/create.d.ts +193 -0
- package/dist/services/sandbox/create.d.ts.map +1 -0
- package/dist/services/sandbox/create.js +215 -0
- package/dist/services/sandbox/create.js.map +1 -0
- package/dist/services/sandbox/destroy.d.ts +23 -0
- package/dist/services/sandbox/destroy.d.ts.map +1 -0
- package/dist/services/sandbox/destroy.js +30 -0
- package/dist/services/sandbox/destroy.js.map +1 -0
- package/dist/services/sandbox/disk-checkpoint.d.ts +108 -0
- package/dist/services/sandbox/disk-checkpoint.d.ts.map +1 -0
- package/dist/services/sandbox/disk-checkpoint.js +124 -0
- package/dist/services/sandbox/disk-checkpoint.js.map +1 -0
- package/dist/services/sandbox/execute.d.ts +96 -0
- package/dist/services/sandbox/execute.d.ts.map +1 -0
- package/dist/services/sandbox/execute.js +109 -0
- package/dist/services/sandbox/execute.js.map +1 -0
- package/dist/services/sandbox/execution.d.ts +145 -0
- package/dist/services/sandbox/execution.d.ts.map +1 -0
- package/dist/services/sandbox/execution.js +113 -0
- package/dist/services/sandbox/execution.js.map +1 -0
- package/dist/services/sandbox/files.d.ts +269 -0
- package/dist/services/sandbox/files.d.ts.map +1 -0
- package/dist/services/sandbox/files.js +454 -0
- package/dist/services/sandbox/files.js.map +1 -0
- package/dist/services/sandbox/get.d.ts +284 -0
- package/dist/services/sandbox/get.d.ts.map +1 -0
- package/dist/services/sandbox/get.js +231 -0
- package/dist/services/sandbox/get.js.map +1 -0
- package/dist/services/sandbox/getStatus.d.ts +20 -0
- package/dist/services/sandbox/getStatus.d.ts.map +1 -0
- package/dist/services/sandbox/getStatus.js +36 -0
- package/dist/services/sandbox/getStatus.js.map +1 -0
- package/dist/services/sandbox/index.d.ts +40 -0
- package/dist/services/sandbox/index.d.ts.map +1 -0
- package/dist/services/sandbox/index.js +21 -0
- package/dist/services/sandbox/index.js.map +1 -0
- package/dist/services/sandbox/list.d.ts +327 -0
- package/dist/services/sandbox/list.d.ts.map +1 -0
- package/dist/services/sandbox/list.js +204 -0
- package/dist/services/sandbox/list.js.map +1 -0
- package/dist/services/sandbox/pause.d.ts +23 -0
- package/dist/services/sandbox/pause.d.ts.map +1 -0
- package/dist/services/sandbox/pause.js +30 -0
- package/dist/services/sandbox/pause.js.map +1 -0
- package/dist/services/sandbox/resolve.d.ts +75 -0
- package/dist/services/sandbox/resolve.d.ts.map +1 -0
- package/dist/services/sandbox/resolve.js +76 -0
- package/dist/services/sandbox/resolve.js.map +1 -0
- package/dist/services/sandbox/resume.d.ts +23 -0
- package/dist/services/sandbox/resume.d.ts.map +1 -0
- package/dist/services/sandbox/resume.js +30 -0
- package/dist/services/sandbox/resume.js.map +1 -0
- package/dist/services/sandbox/run.d.ts +71 -0
- package/dist/services/sandbox/run.d.ts.map +1 -0
- package/dist/services/sandbox/run.js +355 -0
- package/dist/services/sandbox/run.js.map +1 -0
- package/dist/services/sandbox/runtime.d.ts +94 -0
- package/dist/services/sandbox/runtime.d.ts.map +1 -0
- package/dist/services/sandbox/runtime.js +82 -0
- package/dist/services/sandbox/runtime.js.map +1 -0
- package/dist/services/sandbox/snapshot-build.d.ts +48 -0
- package/dist/services/sandbox/snapshot-build.d.ts.map +1 -0
- package/dist/services/sandbox/snapshot-build.js +72 -0
- package/dist/services/sandbox/snapshot-build.js.map +1 -0
- package/dist/services/sandbox/snapshot.d.ts +596 -0
- package/dist/services/sandbox/snapshot.d.ts.map +1 -0
- package/dist/services/sandbox/snapshot.js +612 -0
- package/dist/services/sandbox/snapshot.js.map +1 -0
- package/dist/services/sandbox/types.d.ts +851 -0
- package/dist/services/sandbox/types.d.ts.map +1 -0
- package/dist/services/sandbox/types.js +674 -0
- package/dist/services/sandbox/types.js.map +1 -0
- package/dist/services/sandbox/util.d.ts +295 -0
- package/dist/services/sandbox/util.d.ts.map +1 -0
- package/dist/services/sandbox/util.js +233 -0
- package/dist/services/sandbox/util.js.map +1 -0
- package/dist/services/schedule/index.d.ts +2 -0
- package/dist/services/schedule/index.d.ts.map +1 -0
- package/dist/services/schedule/index.js +2 -0
- package/dist/services/schedule/index.js.map +1 -0
- package/dist/services/{schedule.d.ts → schedule/service.d.ts} +150 -212
- package/dist/services/schedule/service.d.ts.map +1 -0
- package/dist/services/{schedule.js → schedule/service.js} +286 -12
- package/dist/services/schedule/service.js.map +1 -0
- package/dist/services/{session.d.ts → session/events.d.ts} +5 -5
- package/dist/services/session/events.d.ts.map +1 -0
- package/dist/services/{session.js → session/events.js} +1 -1
- package/dist/services/session/events.js.map +1 -0
- package/dist/services/session/get.d.ts +170 -0
- package/dist/services/session/get.d.ts.map +1 -0
- package/dist/services/session/get.js +56 -0
- package/dist/services/session/get.js.map +1 -0
- package/dist/services/session/index.d.ts +5 -0
- package/dist/services/session/index.d.ts.map +1 -0
- package/dist/services/session/index.js +5 -0
- package/dist/services/session/index.js.map +1 -0
- package/dist/services/session/list.d.ts +150 -0
- package/dist/services/session/list.d.ts.map +1 -0
- package/dist/services/session/list.js +117 -0
- package/dist/services/session/list.js.map +1 -0
- package/dist/services/session/logs.d.ts +40 -0
- package/dist/services/session/logs.d.ts.map +1 -0
- package/dist/services/session/logs.js +28 -0
- package/dist/services/session/logs.js.map +1 -0
- package/dist/services/session/util.d.ts +23 -0
- package/dist/services/session/util.d.ts.map +1 -0
- package/dist/services/session/util.js +3 -0
- package/dist/services/session/util.js.map +1 -0
- package/dist/services/stats.d.ts +261 -0
- package/dist/services/stats.d.ts.map +1 -0
- package/dist/services/stats.js +181 -0
- package/dist/services/stats.js.map +1 -0
- package/dist/services/storage/config.d.ts +99 -0
- package/dist/services/storage/config.d.ts.map +1 -0
- package/dist/services/storage/config.js +61 -0
- package/dist/services/storage/config.js.map +1 -0
- package/dist/services/storage/index.d.ts +5 -0
- package/dist/services/storage/index.d.ts.map +1 -0
- package/dist/services/storage/index.js +5 -0
- package/dist/services/storage/index.js.map +1 -0
- package/dist/services/storage/objects.d.ts +158 -0
- package/dist/services/storage/objects.d.ts.map +1 -0
- package/dist/services/storage/objects.js +161 -0
- package/dist/services/storage/objects.js.map +1 -0
- package/dist/services/storage/types.d.ts +161 -0
- package/dist/services/storage/types.d.ts.map +1 -0
- package/dist/services/storage/types.js +141 -0
- package/dist/services/storage/types.js.map +1 -0
- package/dist/services/storage/util.d.ts +45 -0
- package/dist/services/storage/util.d.ts.map +1 -0
- package/dist/services/storage/util.js +4 -0
- package/dist/services/storage/util.js.map +1 -0
- package/dist/services/stream/get.d.ts +58 -0
- package/dist/services/stream/get.d.ts.map +1 -0
- package/dist/services/stream/get.js +40 -0
- package/dist/services/stream/get.js.map +1 -0
- package/dist/services/stream/index.d.ts +5 -0
- package/dist/services/stream/index.d.ts.map +1 -0
- package/dist/services/stream/index.js +5 -0
- package/dist/services/stream/index.js.map +1 -0
- package/dist/services/stream/list.d.ts +96 -0
- package/dist/services/stream/list.d.ts.map +1 -0
- package/dist/services/stream/list.js +92 -0
- package/dist/services/stream/list.js.map +1 -0
- package/dist/services/{stream.d.ts → stream/service.d.ts} +62 -91
- package/dist/services/stream/service.d.ts.map +1 -0
- package/dist/services/{stream.js → stream/service.js} +137 -6
- package/dist/services/stream/service.js.map +1 -0
- package/dist/services/stream/util.d.ts +23 -0
- package/dist/services/stream/util.d.ts.map +1 -0
- package/dist/services/stream/util.js +3 -0
- package/dist/services/stream/util.js.map +1 -0
- package/dist/services/task/index.d.ts +2 -0
- package/dist/services/task/index.d.ts.map +1 -0
- package/dist/services/task/index.js +2 -0
- package/dist/services/task/index.js.map +1 -0
- package/dist/services/{task.d.ts → task/service.d.ts} +591 -437
- package/dist/services/task/service.d.ts.map +1 -0
- package/dist/services/{task.js → task/service.js} +494 -4
- package/dist/services/task/service.js.map +1 -0
- package/dist/services/thread/delete.d.ts +23 -0
- package/dist/services/thread/delete.d.ts.map +1 -0
- package/dist/services/thread/delete.js +21 -0
- package/dist/services/thread/delete.js.map +1 -0
- package/dist/services/thread/get.d.ts +36 -0
- package/dist/services/thread/get.d.ts.map +1 -0
- package/dist/services/thread/get.js +23 -0
- package/dist/services/thread/get.js.map +1 -0
- package/dist/services/thread/index.d.ts +5 -0
- package/dist/services/thread/index.d.ts.map +1 -0
- package/dist/services/thread/index.js +5 -0
- package/dist/services/thread/index.js.map +1 -0
- package/dist/services/thread/list.d.ts +75 -0
- package/dist/services/thread/list.d.ts.map +1 -0
- package/dist/services/thread/list.js +65 -0
- package/dist/services/thread/list.js.map +1 -0
- package/dist/services/thread/util.d.ts +23 -0
- package/dist/services/thread/util.d.ts.map +1 -0
- package/dist/services/thread/util.js +3 -0
- package/dist/services/thread/util.js.map +1 -0
- package/dist/services/user/index.d.ts +2 -0
- package/dist/services/user/index.d.ts.map +1 -0
- package/dist/services/user/index.js +2 -0
- package/dist/services/user/index.js.map +1 -0
- package/dist/services/user/util.d.ts +23 -0
- package/dist/services/user/util.d.ts.map +1 -0
- package/dist/services/user/util.js +3 -0
- package/dist/services/user/util.js.map +1 -0
- package/dist/services/user/whoami.d.ts +39 -0
- package/dist/services/user/whoami.d.ts.map +1 -0
- package/dist/services/user/whoami.js +27 -0
- package/dist/services/user/whoami.js.map +1 -0
- package/dist/services/vector/index.d.ts +2 -0
- package/dist/services/vector/index.d.ts.map +1 -0
- package/dist/services/vector/index.js +2 -0
- package/dist/services/vector/index.js.map +1 -0
- package/dist/services/{vector.d.ts → vector/service.d.ts} +178 -217
- package/dist/services/vector/service.d.ts.map +1 -0
- package/dist/services/{vector.js → vector/service.js} +339 -13
- package/dist/services/vector/service.js.map +1 -0
- package/dist/services/webhook/deliveries.d.ts +94 -0
- package/dist/services/webhook/deliveries.d.ts.map +1 -0
- package/dist/services/webhook/deliveries.js +79 -0
- package/dist/services/webhook/deliveries.js.map +1 -0
- package/dist/services/webhook/destinations.d.ts +136 -0
- package/dist/services/webhook/destinations.d.ts.map +1 -0
- package/dist/services/webhook/destinations.js +137 -0
- package/dist/services/webhook/destinations.js.map +1 -0
- package/dist/services/webhook/index.d.ts +42 -0
- package/dist/services/webhook/index.d.ts.map +1 -0
- package/dist/services/webhook/index.js +60 -0
- package/dist/services/webhook/index.js.map +1 -0
- package/dist/services/webhook/receipts.d.ts +77 -0
- package/dist/services/webhook/receipts.d.ts.map +1 -0
- package/dist/services/webhook/receipts.js +78 -0
- package/dist/services/webhook/receipts.js.map +1 -0
- package/dist/services/{webhook.d.ts → webhook/service.d.ts} +23 -144
- package/dist/services/webhook/service.d.ts.map +1 -0
- package/dist/services/{webhook.js → webhook/service.js} +15 -17
- package/dist/services/webhook/service.js.map +1 -0
- package/dist/services/webhook/types.d.ts +103 -0
- package/dist/services/webhook/types.d.ts.map +1 -0
- package/dist/services/webhook/types.js +126 -0
- package/dist/services/webhook/types.js.map +1 -0
- package/dist/services/webhook/util.d.ts +202 -0
- package/dist/services/webhook/util.d.ts.map +1 -0
- package/dist/services/webhook/util.js +199 -0
- package/dist/services/webhook/util.js.map +1 -0
- package/dist/services/webhook/webhooks.d.ts +146 -0
- package/dist/services/webhook/webhooks.d.ts.map +1 -0
- package/dist/services/webhook/webhooks.js +165 -0
- package/dist/services/webhook/webhooks.js.map +1 -0
- package/package.json +59 -7
- package/src/env-example.ts +90 -0
- package/src/index.ts +12 -250
- package/src/services/adapter.ts +69 -24
- package/src/services/api-example.md +164 -0
- package/src/services/api.ts +951 -0
- package/src/services/apikey/create.ts +48 -0
- package/src/services/apikey/delete.ts +30 -0
- package/src/services/apikey/get.ts +48 -0
- package/src/services/apikey/index.ts +5 -0
- package/src/services/apikey/list.ts +66 -0
- package/src/services/apikey/util.ts +3 -0
- package/src/services/config.ts +65 -0
- package/src/services/db/index.ts +27 -0
- package/src/services/db/logs.ts +75 -0
- package/src/services/db/query.ts +69 -0
- package/src/services/db/tables.ts +94 -0
- package/src/services/db/util.ts +9 -0
- package/src/services/email/index.ts +1 -0
- package/src/services/{email.ts → email/service.ts} +172 -115
- package/src/services/env.ts +9 -0
- package/src/services/eval/get.ts +33 -0
- package/src/services/eval/index.ts +29 -0
- package/src/services/eval/list.ts +49 -0
- package/src/services/eval/run-get.ts +39 -0
- package/src/services/eval/run-list.ts +59 -0
- package/src/services/exception.ts +16 -7
- package/src/services/index.ts +29 -28
- package/src/services/keyvalue/index.ts +1 -0
- package/src/services/{keyvalue.ts → keyvalue/service.ts} +149 -95
- package/src/services/logger.ts +24 -0
- package/src/services/machine/index.ts +2 -0
- package/src/services/machine/machine.ts +228 -0
- package/src/services/machine/util.ts +5 -0
- package/src/services/org/env-delete.ts +37 -0
- package/src/services/org/env-get.ts +48 -0
- package/src/services/org/env-update.ts +38 -0
- package/src/services/org/index.ts +6 -0
- package/src/services/org/list.ts +28 -0
- package/src/services/org/resources.ts +140 -0
- package/src/services/org/util.ts +4 -0
- package/src/services/pagination.ts +40 -11
- package/src/services/project/agent.ts +86 -0
- package/src/services/project/create.ts +47 -0
- package/src/services/project/delete.ts +27 -0
- package/src/services/project/deploy.ts +433 -0
- package/src/services/project/deployment.ts +250 -0
- package/src/services/project/env-delete.ts +45 -0
- package/src/services/project/env-update.ts +55 -0
- package/src/services/project/exists.ts +58 -0
- package/src/services/project/get.ts +49 -0
- package/src/services/project/hostname.ts +79 -0
- package/src/services/project/index.ts +13 -0
- package/src/services/project/list.ts +54 -0
- package/src/services/project/malware.ts +85 -0
- package/src/services/project/update-region.ts +44 -0
- package/src/services/project/util.ts +8 -0
- package/src/services/queue/analytics.ts +343 -0
- package/src/services/queue/consumers.ts +56 -0
- package/src/services/queue/destinations.ts +329 -0
- package/src/services/queue/dlq.ts +243 -0
- package/src/services/queue/index.ts +339 -0
- package/src/services/queue/messages.ts +784 -0
- package/src/services/queue/queues.ts +460 -0
- package/src/services/{queue.ts → queue/service.ts} +71 -43
- package/src/services/queue/sources.ts +364 -0
- package/src/services/queue/types.ts +1656 -0
- package/src/services/queue/util.ts +275 -0
- package/src/services/queue/validation.ts +541 -0
- package/src/services/queue/websocket.ts +554 -0
- package/src/services/region/create.ts +207 -0
- package/src/services/region/delete.ts +57 -0
- package/src/services/region/index.ts +4 -0
- package/src/services/region/list.ts +32 -0
- package/src/services/region/resources.ts +69 -0
- package/src/services/region/util.ts +3 -0
- package/src/services/sandbox/cli-list.ts +117 -0
- package/src/services/sandbox/client.ts +435 -0
- package/src/services/sandbox/create.ts +249 -0
- package/src/services/sandbox/destroy.ts +43 -0
- package/src/services/sandbox/disk-checkpoint.ts +184 -0
- package/src/services/sandbox/execute.ts +134 -0
- package/src/services/sandbox/execution.ts +144 -0
- package/src/services/sandbox/files.ts +608 -0
- package/src/services/sandbox/get.ts +262 -0
- package/src/services/sandbox/getStatus.ts +51 -0
- package/src/services/sandbox/index.ts +230 -0
- package/src/services/sandbox/list.ts +234 -0
- package/src/services/sandbox/pause.ts +41 -0
- package/src/services/sandbox/resolve.ts +96 -0
- package/src/services/sandbox/resume.ts +41 -0
- package/src/services/sandbox/run.ts +441 -0
- package/src/services/sandbox/runtime.ts +106 -0
- package/src/services/sandbox/snapshot-build.ts +94 -0
- package/src/services/sandbox/snapshot.ts +791 -0
- package/src/services/sandbox/types.ts +799 -0
- package/src/services/sandbox/util.ts +279 -0
- package/src/services/schedule/index.ts +1 -0
- package/src/services/{schedule.ts → schedule/service.ts} +120 -80
- package/src/services/session/get.ts +108 -0
- package/src/services/session/index.ts +4 -0
- package/src/services/session/list.ts +143 -0
- package/src/services/session/logs.ts +47 -0
- package/src/services/session/util.ts +3 -0
- package/src/services/stats.ts +232 -0
- package/src/services/storage/config.ts +111 -0
- package/src/services/storage/index.ts +4 -0
- package/src/services/storage/objects.ts +256 -0
- package/src/services/storage/types.ts +174 -0
- package/src/services/storage/util.ts +4 -0
- package/src/services/stream/get.ts +51 -0
- package/src/services/stream/index.ts +14 -0
- package/src/services/stream/list.ts +105 -0
- package/src/services/{stream.ts → stream/service.ts} +78 -35
- package/src/services/stream/util.ts +3 -0
- package/src/services/task/index.ts +1 -0
- package/src/services/{task.ts → task/service.ts} +314 -352
- package/src/services/thread/delete.ts +31 -0
- package/src/services/thread/get.ts +34 -0
- package/src/services/thread/index.ts +4 -0
- package/src/services/thread/list.ts +81 -0
- package/src/services/thread/util.ts +3 -0
- package/src/services/user/index.ts +1 -0
- package/src/services/user/util.ts +3 -0
- package/src/services/user/whoami.ts +32 -0
- package/src/services/vector/index.ts +1 -0
- package/src/services/{vector.ts → vector/service.ts} +266 -146
- package/src/services/webhook/deliveries.ts +129 -0
- package/src/services/webhook/destinations.ts +224 -0
- package/src/services/webhook/index.ts +135 -0
- package/src/services/webhook/receipts.ts +124 -0
- package/src/services/{webhook.ts → webhook/service.ts} +48 -203
- package/src/services/webhook/types.ts +185 -0
- package/src/services/webhook/util.ts +234 -0
- package/src/services/webhook/webhooks.ts +260 -0
- package/dist/services/email.d.ts.map +0 -1
- package/dist/services/email.js.map +0 -1
- package/dist/services/evalrun.d.ts.map +0 -1
- package/dist/services/evalrun.js.map +0 -1
- package/dist/services/keyvalue.d.ts.map +0 -1
- package/dist/services/keyvalue.js.map +0 -1
- package/dist/services/queue.d.ts.map +0 -1
- package/dist/services/queue.js.map +0 -1
- package/dist/services/sandbox.d.ts +0 -1241
- package/dist/services/sandbox.d.ts.map +0 -1
- package/dist/services/sandbox.js +0 -6
- package/dist/services/sandbox.js.map +0 -1
- package/dist/services/schedule.d.ts.map +0 -1
- package/dist/services/schedule.js.map +0 -1
- package/dist/services/session.d.ts.map +0 -1
- package/dist/services/session.js.map +0 -1
- package/dist/services/stream.d.ts.map +0 -1
- package/dist/services/stream.js.map +0 -1
- package/dist/services/task.d.ts.map +0 -1
- package/dist/services/task.js.map +0 -1
- package/dist/services/vector.d.ts.map +0 -1
- package/dist/services/vector.js.map +0 -1
- package/dist/services/webhook.d.ts.map +0 -1
- package/dist/services/webhook.js.map +0 -1
- package/src/services/sandbox.ts +0 -1466
- /package/src/services/{evalrun.ts → eval/events.ts} +0 -0
- /package/src/services/{session.ts → session/events.ts} +0 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { APIResponseSchema } from "../api.js";
|
|
3
|
+
import { OrgAnalyticsSchema, QueueAnalyticsSchema, SSEStatsEventSchema, TimeSeriesDataSchema, } from "./types.js";
|
|
4
|
+
import { buildQueueHeaders, QueueError, QueueNotFoundError, queueApiPathWithQuery, withQueueErrorHandling, } from "./util.js";
|
|
5
|
+
import { validateQueueName } from "./validation.js";
|
|
6
|
+
export const OrgAnalyticsResponseSchema = APIResponseSchema(z.object({ analytics: OrgAnalyticsSchema }));
|
|
7
|
+
export const QueueAnalyticsResponseSchema = APIResponseSchema(z.object({ analytics: QueueAnalyticsSchema }));
|
|
8
|
+
export const TimeSeriesResponseSchema = APIResponseSchema(z.object({ timeseries: TimeSeriesDataSchema }));
|
|
9
|
+
/**
|
|
10
|
+
* Build query string from analytics options.
|
|
11
|
+
*/
|
|
12
|
+
function buildAnalyticsQuery(options) {
|
|
13
|
+
if (!options)
|
|
14
|
+
return undefined;
|
|
15
|
+
const params = new URLSearchParams();
|
|
16
|
+
if (options.start)
|
|
17
|
+
params.set('start', options.start);
|
|
18
|
+
if (options.end)
|
|
19
|
+
params.set('end', options.end);
|
|
20
|
+
if (options.granularity)
|
|
21
|
+
params.set('granularity', options.granularity);
|
|
22
|
+
if (options.projectId)
|
|
23
|
+
params.set('project_id', options.projectId);
|
|
24
|
+
if (options.agentId)
|
|
25
|
+
params.set('agent_id', options.agentId);
|
|
26
|
+
const query = params.toString();
|
|
27
|
+
return query || undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get org-level analytics for all queues.
|
|
31
|
+
*
|
|
32
|
+
* Returns aggregated statistics across all queues in the organization.
|
|
33
|
+
*
|
|
34
|
+
* @param client - The API client instance
|
|
35
|
+
* @param options - Analytics options (time range, filters)
|
|
36
|
+
* @returns Org-level analytics summary
|
|
37
|
+
* @throws {QueueError} If the API request fails
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const analytics = await getOrgAnalytics(client, {
|
|
42
|
+
* start: '2026-01-14T00:00:00Z',
|
|
43
|
+
* end: '2026-01-15T00:00:00Z',
|
|
44
|
+
* });
|
|
45
|
+
* console.log(`Total queues: ${analytics.summary.total_queues}`);
|
|
46
|
+
* console.log(`Messages published: ${analytics.summary.total_messages_published}`);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export async function getOrgAnalytics(client, options) {
|
|
50
|
+
const queryString = buildAnalyticsQuery(options);
|
|
51
|
+
const url = queueApiPathWithQuery('analytics/org', queryString);
|
|
52
|
+
const resp = await client.get(url, OrgAnalyticsResponseSchema, undefined, buildQueueHeaders(options?.orgId));
|
|
53
|
+
if (resp.success) {
|
|
54
|
+
return resp.data.analytics;
|
|
55
|
+
}
|
|
56
|
+
throw new QueueError({
|
|
57
|
+
message: resp.message || 'Failed to get org analytics',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get org-level time series analytics.
|
|
62
|
+
*
|
|
63
|
+
* Returns published and delivery metrics aggregated across all queues.
|
|
64
|
+
*
|
|
65
|
+
* @param client - The API client instance
|
|
66
|
+
* @param options - Analytics options (time range, filters)
|
|
67
|
+
* @returns Time series analytics data for the org
|
|
68
|
+
* @throws {QueueError} If the API request fails
|
|
69
|
+
*/
|
|
70
|
+
export async function getOrgTimeSeries(client, options) {
|
|
71
|
+
const queryString = buildAnalyticsQuery(options);
|
|
72
|
+
const url = queueApiPathWithQuery('analytics/org/timeseries', queryString);
|
|
73
|
+
const resp = await client.get(url, TimeSeriesResponseSchema, undefined, buildQueueHeaders(options?.orgId));
|
|
74
|
+
if (resp.success) {
|
|
75
|
+
return resp.data.timeseries;
|
|
76
|
+
}
|
|
77
|
+
throw new QueueError({
|
|
78
|
+
message: resp.message || 'Failed to get org time series',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get detailed analytics for a specific queue.
|
|
83
|
+
*
|
|
84
|
+
* Returns current state, period statistics, latency metrics, and destination stats.
|
|
85
|
+
*
|
|
86
|
+
* @param client - The API client instance
|
|
87
|
+
* @param name - The queue name
|
|
88
|
+
* @param options - Analytics options (time range, filters)
|
|
89
|
+
* @returns Queue analytics
|
|
90
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
91
|
+
* @throws {QueueError} If the API request fails
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const analytics = await getQueueAnalytics(client, 'order-processing', {
|
|
96
|
+
* start: '2026-01-14T00:00:00Z',
|
|
97
|
+
* });
|
|
98
|
+
* console.log(`Backlog: ${analytics.current.backlog}`);
|
|
99
|
+
* console.log(`P95 latency: ${analytics.latency.p95_ms}ms`);
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export async function getQueueAnalytics(client, name, options) {
|
|
103
|
+
validateQueueName(name);
|
|
104
|
+
const queryString = buildAnalyticsQuery(options);
|
|
105
|
+
const url = queueApiPathWithQuery('analytics/queue', queryString, name);
|
|
106
|
+
const resp = await withQueueErrorHandling(() => client.get(url, QueueAnalyticsResponseSchema, undefined, buildQueueHeaders(options?.orgId)), { queueName: name });
|
|
107
|
+
if (resp.success) {
|
|
108
|
+
return resp.data.analytics;
|
|
109
|
+
}
|
|
110
|
+
throw new QueueError({
|
|
111
|
+
queueName: name,
|
|
112
|
+
message: resp.message || 'Failed to get queue analytics',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get time series analytics data for a queue.
|
|
117
|
+
*
|
|
118
|
+
* Returns time-bucketed metrics for visualization in charts and graphs.
|
|
119
|
+
*
|
|
120
|
+
* @param client - The API client instance
|
|
121
|
+
* @param name - The queue name
|
|
122
|
+
* @param options - Analytics options (time range, granularity)
|
|
123
|
+
* @returns Time series data
|
|
124
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
125
|
+
* @throws {QueueError} If the API request fails
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const timeseries = await getQueueTimeSeries(client, 'order-processing', {
|
|
130
|
+
* granularity: 'hour',
|
|
131
|
+
* start: '2026-01-14T00:00:00Z',
|
|
132
|
+
* });
|
|
133
|
+
* for (const point of timeseries.series) {
|
|
134
|
+
* console.log(`${point.timestamp}: ${point.throughput} msg/h`);
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export async function getQueueTimeSeries(client, name, options) {
|
|
139
|
+
validateQueueName(name);
|
|
140
|
+
const queryString = buildAnalyticsQuery(options);
|
|
141
|
+
const url = queueApiPathWithQuery('analytics/timeseries', queryString, name);
|
|
142
|
+
const resp = await withQueueErrorHandling(() => client.get(url, TimeSeriesResponseSchema, undefined, buildQueueHeaders(options?.orgId)), { queueName: name });
|
|
143
|
+
if (resp.success) {
|
|
144
|
+
return resp.data.timeseries;
|
|
145
|
+
}
|
|
146
|
+
throw new QueueError({
|
|
147
|
+
queueName: name,
|
|
148
|
+
message: resp.message || 'Failed to get queue time series',
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Stream real-time analytics for all queues via SSE.
|
|
153
|
+
*
|
|
154
|
+
* Returns an async iterator that yields stats events at the specified interval.
|
|
155
|
+
* The connection stays open until the iterator is closed or an error occurs.
|
|
156
|
+
*
|
|
157
|
+
* @param client - The API client instance
|
|
158
|
+
* @param options - Stream options (interval, orgId)
|
|
159
|
+
* @returns Async iterator of SSE stats events
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const stream = streamOrgAnalytics(client, { interval: 5 });
|
|
164
|
+
* for await (const event of stream) {
|
|
165
|
+
* console.log(`Backlog: ${event.backlog}, Throughput: ${event.throughput_1m}/min`);
|
|
166
|
+
* }
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export async function* streamOrgAnalytics(client, options) {
|
|
170
|
+
const params = new URLSearchParams();
|
|
171
|
+
if (options?.interval)
|
|
172
|
+
params.set('interval', String(options.interval));
|
|
173
|
+
const queryString = params.toString() || undefined;
|
|
174
|
+
const url = queueApiPathWithQuery('analytics/stream', queryString);
|
|
175
|
+
yield* streamSSE(client, url, options?.orgId);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Stream real-time analytics for a specific queue via SSE.
|
|
179
|
+
*
|
|
180
|
+
* Returns an async iterator that yields stats events at the specified interval.
|
|
181
|
+
*
|
|
182
|
+
* @param client - The API client instance
|
|
183
|
+
* @param name - The queue name
|
|
184
|
+
* @param options - Stream options (interval, orgId)
|
|
185
|
+
* @returns Async iterator of SSE stats events
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* const stream = streamQueueAnalytics(client, 'order-processing', { interval: 5 });
|
|
190
|
+
* for await (const event of stream) {
|
|
191
|
+
* console.log(`Backlog: ${event.backlog}, In-flight: ${event.messages_in_flight}`);
|
|
192
|
+
* }
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
export async function* streamQueueAnalytics(client, name, options) {
|
|
196
|
+
validateQueueName(name);
|
|
197
|
+
const params = new URLSearchParams();
|
|
198
|
+
if (options?.interval)
|
|
199
|
+
params.set('interval', String(options.interval));
|
|
200
|
+
const queryString = params.toString() || undefined;
|
|
201
|
+
const url = queueApiPathWithQuery('analytics/stream', queryString, name);
|
|
202
|
+
yield* streamSSE(client, url, options?.orgId, name);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Internal helper to stream SSE events from a URL.
|
|
206
|
+
* Uses rawGet for streaming response access.
|
|
207
|
+
*/
|
|
208
|
+
async function* streamSSE(client, url, orgId, queueName) {
|
|
209
|
+
const response = await client.rawGet(url, undefined, buildQueueHeaders(orgId));
|
|
210
|
+
if (!response.ok) {
|
|
211
|
+
if (response.status === 404 && queueName) {
|
|
212
|
+
throw new QueueNotFoundError({ queueName });
|
|
213
|
+
}
|
|
214
|
+
throw new QueueError({
|
|
215
|
+
message: `SSE connection failed: ${response.status} ${response.statusText}`,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
const reader = response.body?.getReader();
|
|
219
|
+
if (!reader) {
|
|
220
|
+
throw new QueueError({ message: 'No response body for SSE stream' });
|
|
221
|
+
}
|
|
222
|
+
const decoder = new TextDecoder();
|
|
223
|
+
let buffer = '';
|
|
224
|
+
try {
|
|
225
|
+
while (true) {
|
|
226
|
+
const { done, value } = await reader.read();
|
|
227
|
+
if (done)
|
|
228
|
+
break;
|
|
229
|
+
buffer += decoder.decode(value, { stream: true });
|
|
230
|
+
const lines = buffer.split('\n');
|
|
231
|
+
buffer = lines.pop() || '';
|
|
232
|
+
for (const line of lines) {
|
|
233
|
+
if (line.startsWith('data: ')) {
|
|
234
|
+
const jsonStr = line.slice(6).trim();
|
|
235
|
+
if (jsonStr && jsonStr !== '{}') {
|
|
236
|
+
try {
|
|
237
|
+
const parsed = JSON.parse(jsonStr);
|
|
238
|
+
const event = SSEStatsEventSchema.parse(parsed);
|
|
239
|
+
yield event;
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// Skip malformed events
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
finally {
|
|
250
|
+
await reader.cancel();
|
|
251
|
+
reader.releaseLock();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/services/queue/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type APIClient } from '../api.ts';
|
|
3
|
+
import { type Consumer, type QueueApiOptions } from './types.ts';
|
|
4
|
+
export declare const ConsumersListResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5
|
+
success: z.ZodLiteral<false>;
|
|
6
|
+
message: z.ZodString;
|
|
7
|
+
code: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
9
|
+
success: z.ZodLiteral<true>;
|
|
10
|
+
data: z.ZodObject<{
|
|
11
|
+
consumers: z.ZodArray<z.ZodObject<{
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
queue_id: z.ZodString;
|
|
14
|
+
client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
durable: z.ZodBoolean;
|
|
16
|
+
ip_address: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
|
+
last_offset: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
18
|
+
connected_at: z.ZodString;
|
|
19
|
+
disconnected_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
20
|
+
created_at: z.ZodString;
|
|
21
|
+
updated_at: z.ZodString;
|
|
22
|
+
}, z.core.$strip>>;
|
|
23
|
+
total: z.ZodNumber;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
}, z.core.$strip>], "success">;
|
|
26
|
+
/**
|
|
27
|
+
* List consumers for a queue.
|
|
28
|
+
*
|
|
29
|
+
* Returns active WebSocket consumers and recently disconnected durable consumers.
|
|
30
|
+
*
|
|
31
|
+
* @param client - The API client instance
|
|
32
|
+
* @param queueName - The name of the queue
|
|
33
|
+
* @param options - Optional API options (e.g., orgId for CLI-authenticated requests)
|
|
34
|
+
* @returns Array of consumers
|
|
35
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
36
|
+
* @throws {QueueError} If the API request fails
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const consumers = await listConsumers(client, 'order-processing');
|
|
41
|
+
* for (const consumer of consumers) {
|
|
42
|
+
* const status = consumer.disconnected_at ? 'disconnected' : 'connected';
|
|
43
|
+
* console.log(`Consumer ${consumer.id}: ${status} (durable: ${consumer.durable})`);
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function listConsumers(client: APIClient, queueName: string, options?: QueueApiOptions): Promise<Consumer[]>;
|
|
48
|
+
//# sourceMappingURL=consumers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumers.d.ts","sourceRoot":"","sources":["../../../src/services/queue/consumers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAIjF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;8BAKvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAiBrB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { APIResponseSchema } from "../api.js";
|
|
3
|
+
import { ConsumerSchema } from "./types.js";
|
|
4
|
+
import { buildQueueHeaders, QueueError, queueApiPath, withQueueErrorHandling } from "./util.js";
|
|
5
|
+
import { validateQueueName } from "./validation.js";
|
|
6
|
+
export const ConsumersListResponseSchema = APIResponseSchema(z.object({
|
|
7
|
+
consumers: z.array(ConsumerSchema),
|
|
8
|
+
total: z.number(),
|
|
9
|
+
}));
|
|
10
|
+
/**
|
|
11
|
+
* List consumers for a queue.
|
|
12
|
+
*
|
|
13
|
+
* Returns active WebSocket consumers and recently disconnected durable consumers.
|
|
14
|
+
*
|
|
15
|
+
* @param client - The API client instance
|
|
16
|
+
* @param queueName - The name of the queue
|
|
17
|
+
* @param options - Optional API options (e.g., orgId for CLI-authenticated requests)
|
|
18
|
+
* @returns Array of consumers
|
|
19
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
20
|
+
* @throws {QueueError} If the API request fails
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const consumers = await listConsumers(client, 'order-processing');
|
|
25
|
+
* for (const consumer of consumers) {
|
|
26
|
+
* const status = consumer.disconnected_at ? 'disconnected' : 'connected';
|
|
27
|
+
* console.log(`Consumer ${consumer.id}: ${status} (durable: ${consumer.durable})`);
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export async function listConsumers(client, queueName, options) {
|
|
32
|
+
validateQueueName(queueName);
|
|
33
|
+
const url = queueApiPath('consumers/list', queueName);
|
|
34
|
+
const resp = await withQueueErrorHandling(() => client.get(url, ConsumersListResponseSchema, undefined, buildQueueHeaders(options?.orgId)), { queueName });
|
|
35
|
+
if (resp.success) {
|
|
36
|
+
return resp.data.consumers;
|
|
37
|
+
}
|
|
38
|
+
throw new QueueError({
|
|
39
|
+
queueName,
|
|
40
|
+
message: resp.message || 'Failed to list consumers',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=consumers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumers.js","sourceRoot":"","sources":["../../../src/services/queue/consumers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAiB,cAAc,EAAwB,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAC3D,CAAC,CAAC,MAAM,CAAC;IACR,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAiB,EACjB,SAAiB,EACjB,OAAyB;IAEzB,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,sBAAsB,CACxC,GAAG,EAAE,CACJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,2BAA2B,EAAE,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAC3F,EAAE,SAAS,EAAE,CACb,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,UAAU,CAAC;QACpB,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,0BAA0B;KACnD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type APIClient } from '../api.ts';
|
|
3
|
+
import { type CreateDestinationRequest, type DeliveryLog, type Destination, type ListDeliveryLogsRequest, type QueueApiOptions, type UpdateDestinationRequest } from './types.ts';
|
|
4
|
+
export declare const DestinationResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
5
|
+
success: z.ZodLiteral<false>;
|
|
6
|
+
message: z.ZodString;
|
|
7
|
+
code: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
9
|
+
success: z.ZodLiteral<true>;
|
|
10
|
+
data: z.ZodObject<{
|
|
11
|
+
destination: z.ZodObject<{
|
|
12
|
+
id: z.ZodString;
|
|
13
|
+
name: z.ZodString;
|
|
14
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
queue_id: z.ZodString;
|
|
16
|
+
destination_type: z.ZodEnum<{
|
|
17
|
+
http: "http";
|
|
18
|
+
}>;
|
|
19
|
+
config: z.ZodObject<{
|
|
20
|
+
url: z.ZodString;
|
|
21
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
22
|
+
method: z.ZodDefault<z.ZodString>;
|
|
23
|
+
timeout_ms: z.ZodDefault<z.ZodNumber>;
|
|
24
|
+
retry_policy: z.ZodOptional<z.ZodObject<{
|
|
25
|
+
max_attempts: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
initial_backoff_ms: z.ZodDefault<z.ZodNumber>;
|
|
27
|
+
max_backoff_ms: z.ZodDefault<z.ZodNumber>;
|
|
28
|
+
backoff_multiplier: z.ZodDefault<z.ZodNumber>;
|
|
29
|
+
}, z.core.$strip>>;
|
|
30
|
+
signing: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
32
|
+
secret_key: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strip>>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
enabled: z.ZodBoolean;
|
|
36
|
+
stats: z.ZodOptional<z.ZodObject<{
|
|
37
|
+
total_deliveries: z.ZodNumber;
|
|
38
|
+
successful_deliveries: z.ZodNumber;
|
|
39
|
+
failed_deliveries: z.ZodNumber;
|
|
40
|
+
last_delivery_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
41
|
+
last_success_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
42
|
+
last_failure_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
43
|
+
}, z.core.$strip>>;
|
|
44
|
+
success_count: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
failure_count: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
last_success_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
47
|
+
last_failure_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
48
|
+
last_failure_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
49
|
+
created_at: z.ZodString;
|
|
50
|
+
updated_at: z.ZodString;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
}, z.core.$strip>;
|
|
53
|
+
}, z.core.$strip>], "success">;
|
|
54
|
+
export declare const DestinationsListResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
55
|
+
success: z.ZodLiteral<false>;
|
|
56
|
+
message: z.ZodString;
|
|
57
|
+
code: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
59
|
+
success: z.ZodLiteral<true>;
|
|
60
|
+
data: z.ZodObject<{
|
|
61
|
+
destinations: z.ZodArray<z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
name: z.ZodString;
|
|
64
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
65
|
+
queue_id: z.ZodString;
|
|
66
|
+
destination_type: z.ZodEnum<{
|
|
67
|
+
http: "http";
|
|
68
|
+
}>;
|
|
69
|
+
config: z.ZodObject<{
|
|
70
|
+
url: z.ZodString;
|
|
71
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
72
|
+
method: z.ZodDefault<z.ZodString>;
|
|
73
|
+
timeout_ms: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
retry_policy: z.ZodOptional<z.ZodObject<{
|
|
75
|
+
max_attempts: z.ZodDefault<z.ZodNumber>;
|
|
76
|
+
initial_backoff_ms: z.ZodDefault<z.ZodNumber>;
|
|
77
|
+
max_backoff_ms: z.ZodDefault<z.ZodNumber>;
|
|
78
|
+
backoff_multiplier: z.ZodDefault<z.ZodNumber>;
|
|
79
|
+
}, z.core.$strip>>;
|
|
80
|
+
signing: z.ZodOptional<z.ZodObject<{
|
|
81
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
82
|
+
secret_key: z.ZodOptional<z.ZodString>;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
enabled: z.ZodBoolean;
|
|
86
|
+
stats: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
total_deliveries: z.ZodNumber;
|
|
88
|
+
successful_deliveries: z.ZodNumber;
|
|
89
|
+
failed_deliveries: z.ZodNumber;
|
|
90
|
+
last_delivery_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
91
|
+
last_success_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
92
|
+
last_failure_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
93
|
+
}, z.core.$strip>>;
|
|
94
|
+
success_count: z.ZodOptional<z.ZodNumber>;
|
|
95
|
+
failure_count: z.ZodOptional<z.ZodNumber>;
|
|
96
|
+
last_success_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
97
|
+
last_failure_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
98
|
+
last_failure_error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
99
|
+
created_at: z.ZodString;
|
|
100
|
+
updated_at: z.ZodString;
|
|
101
|
+
}, z.core.$strip>>;
|
|
102
|
+
}, z.core.$strip>;
|
|
103
|
+
}, z.core.$strip>], "success">;
|
|
104
|
+
export declare const DeleteDestinationResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
105
|
+
success: z.ZodLiteral<false>;
|
|
106
|
+
message: z.ZodString;
|
|
107
|
+
code: z.ZodOptional<z.ZodString>;
|
|
108
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
109
|
+
success: z.ZodLiteral<true>;
|
|
110
|
+
}, z.core.$strip>], "success">;
|
|
111
|
+
/**
|
|
112
|
+
* Create a destination for a queue.
|
|
113
|
+
*
|
|
114
|
+
* Destinations are webhook endpoints that automatically receive messages when
|
|
115
|
+
* they are published to a queue. When a message is published, it will be
|
|
116
|
+
* delivered via HTTP POST to all active destinations configured for that queue.
|
|
117
|
+
*
|
|
118
|
+
* @param client - The API client instance
|
|
119
|
+
* @param queueName - The name of the queue to add the destination to
|
|
120
|
+
* @param params - Destination configuration including URL and optional settings
|
|
121
|
+
* @returns The created destination with assigned ID
|
|
122
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name or config)
|
|
123
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
124
|
+
* @throws {QueueError} If the API request fails
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const destination = await createDestination(client, 'order-events', {
|
|
129
|
+
* url: 'https://api.example.com/webhooks/orders',
|
|
130
|
+
* config: {
|
|
131
|
+
* retry_attempts: 3,
|
|
132
|
+
* timeout_seconds: 30,
|
|
133
|
+
* },
|
|
134
|
+
* });
|
|
135
|
+
* console.log(`Created destination ${destination.id}`);
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export declare function createDestination(client: APIClient, queueName: string, params: CreateDestinationRequest, options?: QueueApiOptions): Promise<Destination>;
|
|
139
|
+
/**
|
|
140
|
+
* List all destinations for a queue.
|
|
141
|
+
*
|
|
142
|
+
* Retrieves all webhook destinations configured for a queue. Each destination
|
|
143
|
+
* represents an endpoint that receives messages when they are published.
|
|
144
|
+
*
|
|
145
|
+
* @param client - The API client instance
|
|
146
|
+
* @param queueName - The name of the queue
|
|
147
|
+
* @returns Array of destinations configured for the queue
|
|
148
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name)
|
|
149
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
150
|
+
* @throws {QueueError} If the API request fails
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* const destinations = await listDestinations(client, 'order-events');
|
|
155
|
+
* for (const dest of destinations) {
|
|
156
|
+
* console.log(`Destination ${dest.id}: ${dest.url} (${dest.enabled ? 'enabled' : 'disabled'})`);
|
|
157
|
+
* }
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export declare function listDestinations(client: APIClient, queueName: string, options?: QueueApiOptions): Promise<Destination[]>;
|
|
161
|
+
/**
|
|
162
|
+
* Update a destination's configuration.
|
|
163
|
+
*
|
|
164
|
+
* Modifies an existing destination's settings such as URL, enabled status,
|
|
165
|
+
* or retry configuration. Only the fields provided in params will be updated.
|
|
166
|
+
*
|
|
167
|
+
* @param client - The API client instance
|
|
168
|
+
* @param queueName - The name of the queue
|
|
169
|
+
* @param destinationId - The destination ID to update (prefixed with qdest_)
|
|
170
|
+
* @param params - Fields to update (partial update supported)
|
|
171
|
+
* @returns The updated destination
|
|
172
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name, destination ID, or config)
|
|
173
|
+
* @throws {DestinationNotFoundError} If the destination does not exist
|
|
174
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
175
|
+
* @throws {QueueError} If the API request fails
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* // Disable a destination temporarily
|
|
180
|
+
* const updated = await updateDestination(client, 'order-events', 'qdest_abc123', {
|
|
181
|
+
* enabled: false,
|
|
182
|
+
* });
|
|
183
|
+
*
|
|
184
|
+
* // Update URL and retry settings
|
|
185
|
+
* const updated = await updateDestination(client, 'order-events', 'qdest_abc123', {
|
|
186
|
+
* url: 'https://api.example.com/v2/webhooks/orders',
|
|
187
|
+
* config: {
|
|
188
|
+
* retry_attempts: 5,
|
|
189
|
+
* },
|
|
190
|
+
* });
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
export declare function updateDestination(client: APIClient, queueName: string, destinationId: string, params: UpdateDestinationRequest, options?: QueueApiOptions): Promise<Destination>;
|
|
194
|
+
/**
|
|
195
|
+
* Delete a destination from a queue.
|
|
196
|
+
*
|
|
197
|
+
* Permanently removes a webhook destination. Messages will no longer be
|
|
198
|
+
* delivered to this endpoint. This action cannot be undone.
|
|
199
|
+
*
|
|
200
|
+
* @param client - The API client instance
|
|
201
|
+
* @param queueName - The name of the queue
|
|
202
|
+
* @param destinationId - The destination ID to delete (prefixed with qdest_)
|
|
203
|
+
* @returns void
|
|
204
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name or destination ID)
|
|
205
|
+
* @throws {DestinationNotFoundError} If the destination does not exist
|
|
206
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
207
|
+
* @throws {QueueError} If the API request fails
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```typescript
|
|
211
|
+
* await deleteDestination(client, 'order-events', 'qdest_abc123');
|
|
212
|
+
* console.log('Destination deleted');
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
export declare function deleteDestination(client: APIClient, queueName: string, destinationId: string, options?: QueueApiOptions): Promise<void>;
|
|
216
|
+
export declare const DeliveryLogsListResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
217
|
+
success: z.ZodLiteral<false>;
|
|
218
|
+
message: z.ZodString;
|
|
219
|
+
code: z.ZodOptional<z.ZodString>;
|
|
220
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
221
|
+
success: z.ZodLiteral<true>;
|
|
222
|
+
data: z.ZodObject<{
|
|
223
|
+
deliveries: z.ZodArray<z.ZodObject<{
|
|
224
|
+
id: z.ZodString;
|
|
225
|
+
destination_id: z.ZodString;
|
|
226
|
+
queue_id: z.ZodString;
|
|
227
|
+
message_id: z.ZodString;
|
|
228
|
+
payload: z.ZodOptional<z.ZodUnknown>;
|
|
229
|
+
status: z.ZodEnum<{
|
|
230
|
+
success: "success";
|
|
231
|
+
pending: "pending";
|
|
232
|
+
failed: "failed";
|
|
233
|
+
}>;
|
|
234
|
+
http_status_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
235
|
+
error: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
236
|
+
duration_ms: z.ZodOptional<z.ZodNumber>;
|
|
237
|
+
attempt_number: z.ZodOptional<z.ZodNumber>;
|
|
238
|
+
request_headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
239
|
+
response_headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
240
|
+
delivered_at: z.ZodString;
|
|
241
|
+
created_at: z.ZodString;
|
|
242
|
+
}, z.core.$strip>>;
|
|
243
|
+
}, z.core.$strip>;
|
|
244
|
+
}, z.core.$strip>], "success">;
|
|
245
|
+
/**
|
|
246
|
+
* List delivery attempts for a queue destination.
|
|
247
|
+
*
|
|
248
|
+
* Returns the most recent delivery attempts to a configured webhook destination,
|
|
249
|
+
* including HTTP status codes, timing, and error details for failed deliveries.
|
|
250
|
+
*
|
|
251
|
+
* @param client - The API client instance
|
|
252
|
+
* @param queueName - The name of the queue
|
|
253
|
+
* @param destinationId - The destination ID (prefixed with qdest_)
|
|
254
|
+
* @param params - Optional filtering and pagination
|
|
255
|
+
* @returns Array of delivery log entries
|
|
256
|
+
* @throws {QueueValidationError} If validation fails
|
|
257
|
+
* @throws {DestinationNotFoundError} If the destination does not exist
|
|
258
|
+
* @throws {QueueError} If the API request fails
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```typescript
|
|
262
|
+
* const deliveries = await listDestinationDeliveries(client, 'order-events', 'qdest_abc123', {
|
|
263
|
+
* limit: 50,
|
|
264
|
+
* status: 'failed',
|
|
265
|
+
* });
|
|
266
|
+
* ```
|
|
267
|
+
*/
|
|
268
|
+
export declare function listDestinationDeliveries(client: APIClient, queueName: string, destinationId: string, params?: ListDeliveryLogsRequest, options?: QueueApiOptions): Promise<DeliveryLog[]>;
|
|
269
|
+
//# sourceMappingURL=destinations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destinations.d.ts","sourceRoot":"","sources":["../../../src/services/queue/destinations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAA8C,MAAM,WAAW,CAAC;AACvF,OAAO,EACN,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EAEhB,KAAK,WAAW,EAEhB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAE7B,MAAM,YAAY,CAAC;AAQpB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAErC,CAAC;AACF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAI1C,CAAC;AACF,eAAO,MAAM,+BAA+B;;;;;;8BAA4B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC,CA4BtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,EAAE,CAAC,CAsBxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC,CA6BtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAI1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxB"}
|