@shipfox/api-runners 2.0.0
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/.turbo/turbo-build.log +2 -0
- package/.turbo/turbo-type$colon$emit.log +1 -0
- package/.turbo/turbo-type.log +1 -0
- package/CHANGELOG.md +187 -0
- package/LICENSE +21 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +208 -0
- package/dist/config.js.map +1 -0
- package/dist/core/demand.d.ts +33 -0
- package/dist/core/demand.d.ts.map +1 -0
- package/dist/core/demand.js +169 -0
- package/dist/core/demand.js.map +1 -0
- package/dist/core/entities/ephemeral-registration-token.d.ts +14 -0
- package/dist/core/entities/ephemeral-registration-token.d.ts.map +1 -0
- package/dist/core/entities/ephemeral-registration-token.js +3 -0
- package/dist/core/entities/ephemeral-registration-token.js.map +1 -0
- package/dist/core/entities/manual-registration-token.d.ts +12 -0
- package/dist/core/entities/manual-registration-token.d.ts.map +1 -0
- package/dist/core/entities/manual-registration-token.js +3 -0
- package/dist/core/entities/manual-registration-token.js.map +1 -0
- package/dist/core/entities/provisioned-runner.d.ts +24 -0
- package/dist/core/entities/provisioned-runner.d.ts.map +1 -0
- package/dist/core/entities/provisioned-runner.js +3 -0
- package/dist/core/entities/provisioned-runner.js.map +1 -0
- package/dist/core/entities/provisioner-token.d.ts +18 -0
- package/dist/core/entities/provisioner-token.d.ts.map +1 -0
- package/dist/core/entities/provisioner-token.js +3 -0
- package/dist/core/entities/provisioner-token.js.map +1 -0
- package/dist/core/entities/reservation.d.ts +10 -0
- package/dist/core/entities/reservation.d.ts.map +1 -0
- package/dist/core/entities/reservation.js +3 -0
- package/dist/core/entities/reservation.js.map +1 -0
- package/dist/core/entities/runner-session.d.ts +18 -0
- package/dist/core/entities/runner-session.d.ts.map +1 -0
- package/dist/core/entities/runner-session.js +3 -0
- package/dist/core/entities/runner-session.js.map +1 -0
- package/dist/core/ephemeral-registration-tokens.d.ts +31 -0
- package/dist/core/ephemeral-registration-tokens.d.ts.map +1 -0
- package/dist/core/ephemeral-registration-tokens.js +61 -0
- package/dist/core/ephemeral-registration-tokens.js.map +1 -0
- package/dist/core/errors.d.ts +62 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +92 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/job-executions.d.ts +14 -0
- package/dist/core/job-executions.d.ts.map +1 -0
- package/dist/core/job-executions.js +37 -0
- package/dist/core/job-executions.js.map +1 -0
- package/dist/core/maintenance-policy.d.ts +2 -0
- package/dist/core/maintenance-policy.d.ts.map +1 -0
- package/dist/core/maintenance-policy.js +3 -0
- package/dist/core/maintenance-policy.js.map +1 -0
- package/dist/core/maintenance.d.ts +33 -0
- package/dist/core/maintenance.d.ts.map +1 -0
- package/dist/core/maintenance.js +55 -0
- package/dist/core/maintenance.js.map +1 -0
- package/dist/core/manual-registration-tokens.d.ts +17 -0
- package/dist/core/manual-registration-tokens.d.ts.map +1 -0
- package/dist/core/manual-registration-tokens.js +28 -0
- package/dist/core/manual-registration-tokens.js.map +1 -0
- package/dist/core/provisioned-runners.d.ts +67 -0
- package/dist/core/provisioned-runners.d.ts.map +1 -0
- package/dist/core/provisioned-runners.js +162 -0
- package/dist/core/provisioned-runners.js.map +1 -0
- package/dist/core/provisioner-tokens.d.ts +20 -0
- package/dist/core/provisioner-tokens.d.ts.map +1 -0
- package/dist/core/provisioner-tokens.js +36 -0
- package/dist/core/provisioner-tokens.js.map +1 -0
- package/dist/core/rate-limit.d.ts +35 -0
- package/dist/core/rate-limit.d.ts.map +1 -0
- package/dist/core/rate-limit.js +74 -0
- package/dist/core/rate-limit.js.map +1 -0
- package/dist/core/runner-sessions.d.ts +26 -0
- package/dist/core/runner-sessions.d.ts.map +1 -0
- package/dist/core/runner-sessions.js +41 -0
- package/dist/core/runner-sessions.js.map +1 -0
- package/dist/core/runner-tool-capabilities.d.ts +24 -0
- package/dist/core/runner-tool-capabilities.d.ts.map +1 -0
- package/dist/core/runner-tool-capabilities.js +43 -0
- package/dist/core/runner-tool-capabilities.js.map +1 -0
- package/dist/db/db.d.ts +4478 -0
- package/dist/db/db.d.ts.map +1 -0
- package/dist/db/db.js +36 -0
- package/dist/db/db.js.map +1 -0
- package/dist/db/ephemeral-registration-tokens.d.ts +47 -0
- package/dist/db/ephemeral-registration-tokens.d.ts.map +1 -0
- package/dist/db/ephemeral-registration-tokens.js +170 -0
- package/dist/db/ephemeral-registration-tokens.js.map +1 -0
- package/dist/db/index.d.ts +19 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +15 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/job-executions.d.ts +128 -0
- package/dist/db/job-executions.d.ts.map +1 -0
- package/dist/db/job-executions.js +354 -0
- package/dist/db/job-executions.js.map +1 -0
- package/dist/db/manual-registration-tokens.d.ts +16 -0
- package/dist/db/manual-registration-tokens.d.ts.map +1 -0
- package/dist/db/manual-registration-tokens.js +37 -0
- package/dist/db/manual-registration-tokens.js.map +1 -0
- package/dist/db/provisioned-runners.d.ts +79 -0
- package/dist/db/provisioned-runners.d.ts.map +1 -0
- package/dist/db/provisioned-runners.js +466 -0
- package/dist/db/provisioned-runners.js.map +1 -0
- package/dist/db/provisioner-tokens.d.ts +26 -0
- package/dist/db/provisioner-tokens.d.ts.map +1 -0
- package/dist/db/provisioner-tokens.js +54 -0
- package/dist/db/provisioner-tokens.js.map +1 -0
- package/dist/db/rate-limits.d.ts +18 -0
- package/dist/db/rate-limits.d.ts.map +1 -0
- package/dist/db/rate-limits.js +44 -0
- package/dist/db/rate-limits.js.map +1 -0
- package/dist/db/reservations.d.ts +48 -0
- package/dist/db/reservations.d.ts.map +1 -0
- package/dist/db/reservations.js +162 -0
- package/dist/db/reservations.js.map +1 -0
- package/dist/db/runner-sessions.d.ts +18 -0
- package/dist/db/runner-sessions.d.ts.map +1 -0
- package/dist/db/runner-sessions.js +38 -0
- package/dist/db/runner-sessions.js.map +1 -0
- package/dist/db/schema/common.d.ts +2 -0
- package/dist/db/schema/common.d.ts.map +1 -0
- package/dist/db/schema/common.js +4 -0
- package/dist/db/schema/common.js.map +1 -0
- package/dist/db/schema/ephemeral-registration-tokens.d.ts +199 -0
- package/dist/db/schema/ephemeral-registration-tokens.d.ts.map +1 -0
- package/dist/db/schema/ephemeral-registration-tokens.js +45 -0
- package/dist/db/schema/ephemeral-registration-tokens.js.map +1 -0
- package/dist/db/schema/manual-registration-tokens.d.ts +165 -0
- package/dist/db/schema/manual-registration-tokens.d.ts.map +1 -0
- package/dist/db/schema/manual-registration-tokens.js +40 -0
- package/dist/db/schema/manual-registration-tokens.js.map +1 -0
- package/dist/db/schema/outbox.d.ts +195 -0
- package/dist/db/schema/outbox.d.ts.map +1 -0
- package/dist/db/schema/outbox.js +5 -0
- package/dist/db/schema/outbox.js.map +1 -0
- package/dist/db/schema/pending-job-executions.d.ts +189 -0
- package/dist/db/schema/pending-job-executions.d.ts.map +1 -0
- package/dist/db/schema/pending-job-executions.js +21 -0
- package/dist/db/schema/pending-job-executions.js.map +1 -0
- package/dist/db/schema/provisioned-runners.d.ts +379 -0
- package/dist/db/schema/provisioned-runners.d.ts.map +1 -0
- package/dist/db/schema/provisioned-runners.js +83 -0
- package/dist/db/schema/provisioned-runners.js.map +1 -0
- package/dist/db/schema/provisioner-tokens.d.ts +216 -0
- package/dist/db/schema/provisioner-tokens.d.ts.map +1 -0
- package/dist/db/schema/provisioner-tokens.js +48 -0
- package/dist/db/schema/provisioner-tokens.js.map +1 -0
- package/dist/db/schema/rate-limits.d.ts +145 -0
- package/dist/db/schema/rate-limits.d.ts.map +1 -0
- package/dist/db/schema/rate-limits.js +25 -0
- package/dist/db/schema/rate-limits.js.map +1 -0
- package/dist/db/schema/reservations.d.ts +157 -0
- package/dist/db/schema/reservations.d.ts.map +1 -0
- package/dist/db/schema/reservations.js +34 -0
- package/dist/db/schema/reservations.js.map +1 -0
- package/dist/db/schema/runner-sessions.d.ts +298 -0
- package/dist/db/schema/runner-sessions.d.ts.map +1 -0
- package/dist/db/schema/runner-sessions.js +61 -0
- package/dist/db/schema/runner-sessions.js.map +1 -0
- package/dist/db/schema/running-job-executions.d.ts +334 -0
- package/dist/db/schema/running-job-executions.d.ts.map +1 -0
- package/dist/db/schema/running-job-executions.js +41 -0
- package/dist/db/schema/running-job-executions.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics/index.d.ts +3 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +4 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/instance.d.ts +34 -0
- package/dist/metrics/instance.d.ts.map +1 -0
- package/dist/metrics/instance.js +60 -0
- package/dist/metrics/instance.js.map +1 -0
- package/dist/metrics/service.d.ts +2 -0
- package/dist/metrics/service.d.ts.map +1 -0
- package/dist/metrics/service.js +21 -0
- package/dist/metrics/service.js.map +1 -0
- package/dist/presentation/auth/index.d.ts +3 -0
- package/dist/presentation/auth/index.d.ts.map +1 -0
- package/dist/presentation/auth/index.js +4 -0
- package/dist/presentation/auth/index.js.map +1 -0
- package/dist/presentation/auth/provisioner-token-auth.d.ts +3 -0
- package/dist/presentation/auth/provisioner-token-auth.d.ts.map +1 -0
- package/dist/presentation/auth/provisioner-token-auth.js +81 -0
- package/dist/presentation/auth/provisioner-token-auth.js.map +1 -0
- package/dist/presentation/auth/runner-registration-token-auth.d.ts +17 -0
- package/dist/presentation/auth/runner-registration-token-auth.d.ts.map +1 -0
- package/dist/presentation/auth/runner-registration-token-auth.js +77 -0
- package/dist/presentation/auth/runner-registration-token-auth.js.map +1 -0
- package/dist/presentation/dto/active-provisioner.d.ts +8 -0
- package/dist/presentation/dto/active-provisioner.d.ts.map +1 -0
- package/dist/presentation/dto/active-provisioner.js +10 -0
- package/dist/presentation/dto/active-provisioner.js.map +1 -0
- package/dist/presentation/dto/index.d.ts +7 -0
- package/dist/presentation/dto/index.d.ts.map +1 -0
- package/dist/presentation/dto/index.js +8 -0
- package/dist/presentation/dto/index.js.map +1 -0
- package/dist/presentation/dto/manual-registration-token.d.ts +12 -0
- package/dist/presentation/dto/manual-registration-token.d.ts.map +1 -0
- package/dist/presentation/dto/manual-registration-token.js +14 -0
- package/dist/presentation/dto/manual-registration-token.js.map +1 -0
- package/dist/presentation/dto/mint-registration-tokens.d.ts +5 -0
- package/dist/presentation/dto/mint-registration-tokens.d.ts.map +1 -0
- package/dist/presentation/dto/mint-registration-tokens.js +19 -0
- package/dist/presentation/dto/mint-registration-tokens.js.map +1 -0
- package/dist/presentation/dto/poll-demand.d.ts +4 -0
- package/dist/presentation/dto/poll-demand.d.ts.map +1 -0
- package/dist/presentation/dto/poll-demand.js +19 -0
- package/dist/presentation/dto/poll-demand.js.map +1 -0
- package/dist/presentation/dto/provisioned-runners.d.ts +38 -0
- package/dist/presentation/dto/provisioned-runners.d.ts.map +1 -0
- package/dist/presentation/dto/provisioned-runners.js +44 -0
- package/dist/presentation/dto/provisioned-runners.js.map +1 -0
- package/dist/presentation/dto/provisioner-token.d.ts +15 -0
- package/dist/presentation/dto/provisioner-token.d.ts.map +1 -0
- package/dist/presentation/dto/provisioner-token.js +17 -0
- package/dist/presentation/dto/provisioner-token.js.map +1 -0
- package/dist/presentation/index.d.ts +4 -0
- package/dist/presentation/index.d.ts.map +1 -0
- package/dist/presentation/index.js +5 -0
- package/dist/presentation/index.js.map +1 -0
- package/dist/presentation/routes/create-manual-registration-token.d.ts +2 -0
- package/dist/presentation/routes/create-manual-registration-token.d.ts.map +1 -0
- package/dist/presentation/routes/create-manual-registration-token.js +44 -0
- package/dist/presentation/routes/create-manual-registration-token.js.map +1 -0
- package/dist/presentation/routes/create-provisioner-token.d.ts +2 -0
- package/dist/presentation/routes/create-provisioner-token.d.ts.map +1 -0
- package/dist/presentation/routes/create-provisioner-token.js +42 -0
- package/dist/presentation/routes/create-provisioner-token.js.map +1 -0
- package/dist/presentation/routes/get-provisioner-me.d.ts +2 -0
- package/dist/presentation/routes/get-provisioner-me.d.ts.map +1 -0
- package/dist/presentation/routes/get-provisioner-me.js +22 -0
- package/dist/presentation/routes/get-provisioner-me.js.map +1 -0
- package/dist/presentation/routes/heartbeat.d.ts +2 -0
- package/dist/presentation/routes/heartbeat.d.ts.map +1 -0
- package/dist/presentation/routes/heartbeat.js +64 -0
- package/dist/presentation/routes/heartbeat.js.map +1 -0
- package/dist/presentation/routes/index.d.ts +4 -0
- package/dist/presentation/routes/index.d.ts.map +1 -0
- package/dist/presentation/routes/index.js +97 -0
- package/dist/presentation/routes/index.js.map +1 -0
- package/dist/presentation/routes/list-active-provisioners.d.ts +2 -0
- package/dist/presentation/routes/list-active-provisioners.d.ts.map +1 -0
- package/dist/presentation/routes/list-active-provisioners.js +32 -0
- package/dist/presentation/routes/list-active-provisioners.js.map +1 -0
- package/dist/presentation/routes/list-active-runners.d.ts +2 -0
- package/dist/presentation/routes/list-active-runners.d.ts.map +1 -0
- package/dist/presentation/routes/list-active-runners.js +32 -0
- package/dist/presentation/routes/list-active-runners.js.map +1 -0
- package/dist/presentation/routes/list-manual-registration-tokens.d.ts +2 -0
- package/dist/presentation/routes/list-manual-registration-tokens.d.ts.map +1 -0
- package/dist/presentation/routes/list-manual-registration-tokens.js +32 -0
- package/dist/presentation/routes/list-manual-registration-tokens.js.map +1 -0
- package/dist/presentation/routes/list-provisioner-tokens.d.ts +2 -0
- package/dist/presentation/routes/list-provisioner-tokens.d.ts.map +1 -0
- package/dist/presentation/routes/list-provisioner-tokens.js +32 -0
- package/dist/presentation/routes/list-provisioner-tokens.js.map +1 -0
- package/dist/presentation/routes/mint-registration-tokens.d.ts +2 -0
- package/dist/presentation/routes/mint-registration-tokens.d.ts.map +1 -0
- package/dist/presentation/routes/mint-registration-tokens.js +74 -0
- package/dist/presentation/routes/mint-registration-tokens.js.map +1 -0
- package/dist/presentation/routes/poll-demand.d.ts +2 -0
- package/dist/presentation/routes/poll-demand.d.ts.map +1 -0
- package/dist/presentation/routes/poll-demand.js +53 -0
- package/dist/presentation/routes/poll-demand.js.map +1 -0
- package/dist/presentation/routes/rate-limit.d.ts +4 -0
- package/dist/presentation/routes/rate-limit.d.ts.map +1 -0
- package/dist/presentation/routes/rate-limit.js +94 -0
- package/dist/presentation/routes/rate-limit.js.map +1 -0
- package/dist/presentation/routes/reconcile-provisioned-runners.d.ts +2 -0
- package/dist/presentation/routes/reconcile-provisioned-runners.d.ts.map +1 -0
- package/dist/presentation/routes/reconcile-provisioned-runners.js +27 -0
- package/dist/presentation/routes/reconcile-provisioned-runners.js.map +1 -0
- package/dist/presentation/routes/register.d.ts +2 -0
- package/dist/presentation/routes/register.d.ts.map +1 -0
- package/dist/presentation/routes/register.js +63 -0
- package/dist/presentation/routes/register.js.map +1 -0
- package/dist/presentation/routes/report-provisioned-runners.d.ts +2 -0
- package/dist/presentation/routes/report-provisioned-runners.d.ts.map +1 -0
- package/dist/presentation/routes/report-provisioned-runners.js +37 -0
- package/dist/presentation/routes/report-provisioned-runners.js.map +1 -0
- package/dist/presentation/routes/request-job.d.ts +2 -0
- package/dist/presentation/routes/request-job.d.ts.map +1 -0
- package/dist/presentation/routes/request-job.js +45 -0
- package/dist/presentation/routes/request-job.js.map +1 -0
- package/dist/presentation/routes/revoke-manual-registration-token.d.ts +2 -0
- package/dist/presentation/routes/revoke-manual-registration-token.d.ts.map +1 -0
- package/dist/presentation/routes/revoke-manual-registration-token.js +42 -0
- package/dist/presentation/routes/revoke-manual-registration-token.js.map +1 -0
- package/dist/presentation/routes/revoke-provisioner-token.d.ts +2 -0
- package/dist/presentation/routes/revoke-provisioner-token.d.ts.map +1 -0
- package/dist/presentation/routes/revoke-provisioner-token.js +44 -0
- package/dist/presentation/routes/revoke-provisioner-token.js.map +1 -0
- package/dist/presentation/routes/workspace-membership.d.ts +6 -0
- package/dist/presentation/routes/workspace-membership.d.ts.map +1 -0
- package/dist/presentation/routes/workspace-membership.js +6 -0
- package/dist/presentation/routes/workspace-membership.js.map +1 -0
- package/dist/presentation/subscribers/on-workflows-job-execution-timed-out.d.ts +3 -0
- package/dist/presentation/subscribers/on-workflows-job-execution-timed-out.d.ts.map +1 -0
- package/dist/presentation/subscribers/on-workflows-job-execution-timed-out.js +14 -0
- package/dist/presentation/subscribers/on-workflows-job-execution-timed-out.js.map +1 -0
- package/dist/temporal/activities/index.d.ts +9 -0
- package/dist/temporal/activities/index.d.ts.map +1 -0
- package/dist/temporal/activities/index.js +12 -0
- package/dist/temporal/activities/index.js.map +1 -0
- package/dist/temporal/activities/maintenance-activities.d.ts +31 -0
- package/dist/temporal/activities/maintenance-activities.d.ts.map +1 -0
- package/dist/temporal/activities/maintenance-activities.js +18 -0
- package/dist/temporal/activities/maintenance-activities.js.map +1 -0
- package/dist/temporal/constants.d.ts +2 -0
- package/dist/temporal/constants.d.ts.map +1 -0
- package/dist/temporal/constants.js +3 -0
- package/dist/temporal/constants.js.map +1 -0
- package/dist/temporal/workflows/index.d.ts +2 -0
- package/dist/temporal/workflows/index.d.ts.map +1 -0
- package/dist/temporal/workflows/index.js +3 -0
- package/dist/temporal/workflows/index.js.map +1 -0
- package/dist/temporal/workflows/stuck-job-detector.d.ts +2 -0
- package/dist/temporal/workflows/stuck-job-detector.d.ts.map +1 -0
- package/dist/temporal/workflows/stuck-job-detector.js +61 -0
- package/dist/temporal/workflows/stuck-job-detector.js.map +1 -0
- package/dist/tsconfig.test.tsbuildinfo +1 -0
- package/drizzle/0000_initial.sql +185 -0
- package/drizzle/meta/0000_snapshot.json +1582 -0
- package/drizzle/meta/_journal.json +13 -0
- package/drizzle.config.ts +7 -0
- package/package.json +82 -0
- package/src/config.test.ts +374 -0
- package/src/config.ts +330 -0
- package/src/core/demand.test.ts +301 -0
- package/src/core/demand.ts +239 -0
- package/src/core/entities/ephemeral-registration-token.ts +13 -0
- package/src/core/entities/manual-registration-token.ts +11 -0
- package/src/core/entities/provisioned-runner.ts +30 -0
- package/src/core/entities/provisioner-token.ts +16 -0
- package/src/core/entities/reservation.ts +9 -0
- package/src/core/entities/runner-session.ts +18 -0
- package/src/core/ephemeral-registration-tokens.test.ts +108 -0
- package/src/core/ephemeral-registration-tokens.ts +112 -0
- package/src/core/errors.ts +128 -0
- package/src/core/index.ts +56 -0
- package/src/core/job-executions.ts +47 -0
- package/src/core/maintenance-policy.ts +1 -0
- package/src/core/maintenance.test.ts +251 -0
- package/src/core/maintenance.ts +74 -0
- package/src/core/manual-registration-tokens.test.ts +44 -0
- package/src/core/manual-registration-tokens.ts +51 -0
- package/src/core/provisioned-runners.test.ts +101 -0
- package/src/core/provisioned-runners.ts +301 -0
- package/src/core/provisioner-tokens.test.ts +61 -0
- package/src/core/provisioner-tokens.ts +61 -0
- package/src/core/rate-limit.test.ts +158 -0
- package/src/core/rate-limit.ts +121 -0
- package/src/core/runner-sessions.test.ts +209 -0
- package/src/core/runner-sessions.ts +66 -0
- package/src/core/runner-tool-capabilities.test.ts +141 -0
- package/src/core/runner-tool-capabilities.ts +75 -0
- package/src/db/db.ts +38 -0
- package/src/db/ephemeral-registration-tokens.test.ts +332 -0
- package/src/db/ephemeral-registration-tokens.ts +348 -0
- package/src/db/index.ts +90 -0
- package/src/db/job-executions.test.ts +1500 -0
- package/src/db/job-executions.ts +647 -0
- package/src/db/manual-registration-tokens.test.ts +99 -0
- package/src/db/manual-registration-tokens.ts +87 -0
- package/src/db/provisioned-runners.test.ts +1812 -0
- package/src/db/provisioned-runners.ts +886 -0
- package/src/db/provisioner-tokens.test.ts +133 -0
- package/src/db/provisioner-tokens.ts +142 -0
- package/src/db/rate-limits.test.ts +74 -0
- package/src/db/rate-limits.ts +69 -0
- package/src/db/reservations.test.ts +399 -0
- package/src/db/reservations.ts +296 -0
- package/src/db/runner-sessions.test.ts +153 -0
- package/src/db/runner-sessions.ts +97 -0
- package/src/db/schema/common.ts +3 -0
- package/src/db/schema/ephemeral-registration-tokens.ts +58 -0
- package/src/db/schema/manual-registration-tokens.ts +40 -0
- package/src/db/schema/outbox.ts +4 -0
- package/src/db/schema/pending-job-executions.ts +25 -0
- package/src/db/schema/provisioned-runners.ts +89 -0
- package/src/db/schema/provisioner-tokens.ts +50 -0
- package/src/db/schema/rate-limits.ts +27 -0
- package/src/db/schema/reservations.ts +38 -0
- package/src/db/schema/runner-sessions.ts +77 -0
- package/src/db/schema/running-job-executions.ts +50 -0
- package/src/index.ts +63 -0
- package/src/metrics/index.ts +13 -0
- package/src/metrics/instance.ts +115 -0
- package/src/metrics/service.ts +22 -0
- package/src/presentation/auth/index.ts +6 -0
- package/src/presentation/auth/provisioner-token-auth.ts +76 -0
- package/src/presentation/auth/runner-registration-token-auth.ts +105 -0
- package/src/presentation/dto/active-provisioner.ts +15 -0
- package/src/presentation/dto/index.ts +13 -0
- package/src/presentation/dto/manual-registration-token.ts +23 -0
- package/src/presentation/dto/mint-registration-tokens.ts +35 -0
- package/src/presentation/dto/poll-demand.ts +20 -0
- package/src/presentation/dto/provisioned-runners.ts +88 -0
- package/src/presentation/dto/provisioner-token.ts +29 -0
- package/src/presentation/index.ts +6 -0
- package/src/presentation/routes/create-manual-registration-token.ts +43 -0
- package/src/presentation/routes/create-provisioner-token.ts +41 -0
- package/src/presentation/routes/get-provisioner-me.ts +22 -0
- package/src/presentation/routes/heartbeat.test.ts +325 -0
- package/src/presentation/routes/heartbeat.ts +80 -0
- package/src/presentation/routes/index.ts +86 -0
- package/src/presentation/routes/list-active-provisioners.ts +25 -0
- package/src/presentation/routes/list-active-runners.test.ts +366 -0
- package/src/presentation/routes/list-active-runners.ts +25 -0
- package/src/presentation/routes/list-manual-registration-tokens.ts +25 -0
- package/src/presentation/routes/list-provisioner-tokens.ts +25 -0
- package/src/presentation/routes/manual-registration-tokens.test.ts +213 -0
- package/src/presentation/routes/mint-registration-tokens.test.ts +453 -0
- package/src/presentation/routes/mint-registration-tokens.ts +82 -0
- package/src/presentation/routes/poll-demand-release.test.ts +80 -0
- package/src/presentation/routes/poll-demand.test.ts +323 -0
- package/src/presentation/routes/poll-demand.ts +56 -0
- package/src/presentation/routes/provisioner-me.test.ts +172 -0
- package/src/presentation/routes/provisioner-tokens.test.ts +219 -0
- package/src/presentation/routes/rate-limit.ts +115 -0
- package/src/presentation/routes/reconcile-provisioned-runners.test.ts +380 -0
- package/src/presentation/routes/reconcile-provisioned-runners.ts +30 -0
- package/src/presentation/routes/register.test.ts +453 -0
- package/src/presentation/routes/register.ts +75 -0
- package/src/presentation/routes/report-provisioned-runners.test.ts +249 -0
- package/src/presentation/routes/report-provisioned-runners.ts +40 -0
- package/src/presentation/routes/request-job.test.ts +222 -0
- package/src/presentation/routes/request-job.ts +47 -0
- package/src/presentation/routes/revoke-manual-registration-token.ts +35 -0
- package/src/presentation/routes/revoke-provisioner-token.ts +37 -0
- package/src/presentation/routes/workspace-membership.ts +9 -0
- package/src/presentation/subscribers/on-workflows-job-execution-timed-out.test.ts +147 -0
- package/src/presentation/subscribers/on-workflows-job-execution-timed-out.ts +17 -0
- package/src/temporal/activities/index.ts +17 -0
- package/src/temporal/activities/maintenance-activities.test.ts +104 -0
- package/src/temporal/activities/maintenance-activities.ts +41 -0
- package/src/temporal/constants.ts +1 -0
- package/src/temporal/workflows/index.ts +1 -0
- package/src/temporal/workflows/stuck-job-detector.test.ts +93 -0
- package/src/temporal/workflows/stuck-job-detector.ts +67 -0
- package/test/env.ts +11 -0
- package/test/factories/ephemeral-registration-token.ts +41 -0
- package/test/factories/manual-registration-token.ts +37 -0
- package/test/factories/pending-job.ts +44 -0
- package/test/factories/provisioned-runner.ts +78 -0
- package/test/factories/provisioner-token.ts +41 -0
- package/test/factories/reservation.ts +33 -0
- package/test/factories/runner-session.ts +32 -0
- package/test/globalSetup.ts +23 -0
- package/test/index.ts +16 -0
- package/test/setup.ts +17 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.json +3 -0
- package/tsconfig.test.json +8 -0
- package/vitest.config.ts +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAC,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EACL,uCAAuC,EACvC,gBAAgB,EAChB,KAAK,yBAAyB,GAC/B,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/auth/index.ts"],"sourcesContent":["export {createProvisionerTokenAuthMethod} from './provisioner-token-auth.js';\nexport {\n createRunnerRegistrationTokenAuthMethod,\n getRunnerContext,\n type RunnerRegistrationContext,\n} from './runner-registration-token-auth.js';\n"],"names":["createProvisionerTokenAuthMethod","createRunnerRegistrationTokenAuthMethod","getRunnerContext"],"mappings":"AAAA,SAAQA,gCAAgC,QAAO,8BAA8B;AAC7E,SACEC,uCAAuC,EACvCC,gBAAgB,QAEX,sCAAsC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioner-token-auth.d.ts","sourceRoot":"","sources":["../../../src/presentation/auth/provisioner-token-auth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,UAAU,EAAkC,MAAM,uBAAuB,CAAC;AAQvF,wBAAgB,gCAAgC,IAAI,UAAU,CAoD7D"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { AUTH_PROVISIONER_TOKEN, setProvisionerContext } from '@shipfox/api-auth-context';
|
|
2
|
+
import { ClientError, extractBearerToken } from '@shipfox/node-fastify';
|
|
3
|
+
import { logger } from '@shipfox/node-opentelemetry';
|
|
4
|
+
import { extractDisplayPrefix, getTokenType, hashOpaqueToken } from '@shipfox/node-tokens';
|
|
5
|
+
import { config } from '#config.js';
|
|
6
|
+
import { resolveProvisionerTokenByHash, touchProvisionerLastSeen } from '#db/provisioner-tokens.js';
|
|
7
|
+
export function createProvisionerTokenAuthMethod() {
|
|
8
|
+
return {
|
|
9
|
+
name: AUTH_PROVISIONER_TOKEN,
|
|
10
|
+
authenticate: async (request)=>{
|
|
11
|
+
const rawToken = extractBearerToken(request.headers.authorization);
|
|
12
|
+
if (!rawToken) {
|
|
13
|
+
logAuthFailure({
|
|
14
|
+
reason: 'missing'
|
|
15
|
+
});
|
|
16
|
+
throw new ClientError('Missing or invalid Authorization header', 'unauthorized', {
|
|
17
|
+
status: 401
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
if (getTokenType(rawToken) !== 'provisionerToken') {
|
|
21
|
+
logAuthFailure({
|
|
22
|
+
rawToken,
|
|
23
|
+
reason: 'type'
|
|
24
|
+
});
|
|
25
|
+
throw new ClientError('Invalid provisioner token', 'unauthorized', {
|
|
26
|
+
status: 401
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const provisionerToken = await resolveProvisionerTokenByHash(hashOpaqueToken(rawToken));
|
|
30
|
+
if (!provisionerToken) {
|
|
31
|
+
logAuthFailure({
|
|
32
|
+
rawToken,
|
|
33
|
+
reason: 'not-found'
|
|
34
|
+
});
|
|
35
|
+
throw new ClientError('Invalid provisioner token', 'unauthorized', {
|
|
36
|
+
status: 401
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (provisionerToken.revokedAt) {
|
|
40
|
+
logAuthFailure({
|
|
41
|
+
rawToken,
|
|
42
|
+
reason: 'revoked'
|
|
43
|
+
});
|
|
44
|
+
throw new ClientError('Provisioner token has been revoked', 'provisioner-token-revoked', {
|
|
45
|
+
status: 401
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (provisionerToken.expiresAt && provisionerToken.expiresAt <= new Date()) {
|
|
49
|
+
logAuthFailure({
|
|
50
|
+
rawToken,
|
|
51
|
+
reason: 'expired'
|
|
52
|
+
});
|
|
53
|
+
throw new ClientError('Provisioner token has expired', 'provisioner-token-expired', {
|
|
54
|
+
status: 401
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const context = {
|
|
58
|
+
provisionerTokenId: provisionerToken.id,
|
|
59
|
+
workspaceId: provisionerToken.workspaceId
|
|
60
|
+
};
|
|
61
|
+
await touchProvisionerLastSeen({
|
|
62
|
+
tokenId: provisionerToken.id,
|
|
63
|
+
throttleSeconds: config.PROVISIONER_LAST_SEEN_THROTTLE_SECONDS
|
|
64
|
+
}).catch((error)=>{
|
|
65
|
+
logger().warn({
|
|
66
|
+
error,
|
|
67
|
+
provisionerTokenId: provisionerToken.id
|
|
68
|
+
}, 'last-seen touch failed');
|
|
69
|
+
});
|
|
70
|
+
setProvisionerContext(request, context);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function logAuthFailure(params) {
|
|
75
|
+
logger().warn({
|
|
76
|
+
prefix: params.rawToken ? extractDisplayPrefix(params.rawToken) : undefined,
|
|
77
|
+
reason: params.reason
|
|
78
|
+
}, 'provisioner token auth failed');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=provisioner-token-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/auth/provisioner-token-auth.ts"],"sourcesContent":["import {\n AUTH_PROVISIONER_TOKEN,\n type ProvisionerContext,\n setProvisionerContext,\n} from '@shipfox/api-auth-context';\nimport {type AuthMethod, ClientError, extractBearerToken} from '@shipfox/node-fastify';\nimport {logger} from '@shipfox/node-opentelemetry';\nimport {extractDisplayPrefix, getTokenType, hashOpaqueToken} from '@shipfox/node-tokens';\nimport {config} from '#config.js';\nimport {resolveProvisionerTokenByHash, touchProvisionerLastSeen} from '#db/provisioner-tokens.js';\n\ntype AuthFailureReason = 'missing' | 'type' | 'not-found' | 'revoked' | 'expired';\n\nexport function createProvisionerTokenAuthMethod(): AuthMethod {\n return {\n name: AUTH_PROVISIONER_TOKEN,\n authenticate: async (request) => {\n const rawToken = extractBearerToken(request.headers.authorization);\n if (!rawToken) {\n logAuthFailure({reason: 'missing'});\n throw new ClientError('Missing or invalid Authorization header', 'unauthorized', {\n status: 401,\n });\n }\n\n if (getTokenType(rawToken) !== 'provisionerToken') {\n logAuthFailure({rawToken, reason: 'type'});\n throw new ClientError('Invalid provisioner token', 'unauthorized', {status: 401});\n }\n\n const provisionerToken = await resolveProvisionerTokenByHash(hashOpaqueToken(rawToken));\n if (!provisionerToken) {\n logAuthFailure({rawToken, reason: 'not-found'});\n throw new ClientError('Invalid provisioner token', 'unauthorized', {status: 401});\n }\n\n if (provisionerToken.revokedAt) {\n logAuthFailure({rawToken, reason: 'revoked'});\n throw new ClientError('Provisioner token has been revoked', 'provisioner-token-revoked', {\n status: 401,\n });\n }\n\n if (provisionerToken.expiresAt && provisionerToken.expiresAt <= new Date()) {\n logAuthFailure({rawToken, reason: 'expired'});\n throw new ClientError('Provisioner token has expired', 'provisioner-token-expired', {\n status: 401,\n });\n }\n\n const context: ProvisionerContext = {\n provisionerTokenId: provisionerToken.id,\n workspaceId: provisionerToken.workspaceId,\n };\n\n await touchProvisionerLastSeen({\n tokenId: provisionerToken.id,\n throttleSeconds: config.PROVISIONER_LAST_SEEN_THROTTLE_SECONDS,\n }).catch((error: unknown) => {\n logger().warn({error, provisionerTokenId: provisionerToken.id}, 'last-seen touch failed');\n });\n\n setProvisionerContext(request, context);\n },\n };\n}\n\nfunction logAuthFailure(params: {rawToken?: string | undefined; reason: AuthFailureReason}): void {\n logger().warn(\n {\n prefix: params.rawToken ? extractDisplayPrefix(params.rawToken) : undefined,\n reason: params.reason,\n },\n 'provisioner token auth failed',\n );\n}\n"],"names":["AUTH_PROVISIONER_TOKEN","setProvisionerContext","ClientError","extractBearerToken","logger","extractDisplayPrefix","getTokenType","hashOpaqueToken","config","resolveProvisionerTokenByHash","touchProvisionerLastSeen","createProvisionerTokenAuthMethod","name","authenticate","request","rawToken","headers","authorization","logAuthFailure","reason","status","provisionerToken","revokedAt","expiresAt","Date","context","provisionerTokenId","id","workspaceId","tokenId","throttleSeconds","PROVISIONER_LAST_SEEN_THROTTLE_SECONDS","catch","error","warn","params","prefix","undefined"],"mappings":"AAAA,SACEA,sBAAsB,EAEtBC,qBAAqB,QAChB,4BAA4B;AACnC,SAAyBC,WAAW,EAAEC,kBAAkB,QAAO,wBAAwB;AACvF,SAAQC,MAAM,QAAO,8BAA8B;AACnD,SAAQC,oBAAoB,EAAEC,YAAY,EAAEC,eAAe,QAAO,uBAAuB;AACzF,SAAQC,MAAM,QAAO,aAAa;AAClC,SAAQC,6BAA6B,EAAEC,wBAAwB,QAAO,4BAA4B;AAIlG,OAAO,SAASC;IACd,OAAO;QACLC,MAAMZ;QACNa,cAAc,OAAOC;YACnB,MAAMC,WAAWZ,mBAAmBW,QAAQE,OAAO,CAACC,aAAa;YACjE,IAAI,CAACF,UAAU;gBACbG,eAAe;oBAACC,QAAQ;gBAAS;gBACjC,MAAM,IAAIjB,YAAY,2CAA2C,gBAAgB;oBAC/EkB,QAAQ;gBACV;YACF;YAEA,IAAId,aAAaS,cAAc,oBAAoB;gBACjDG,eAAe;oBAACH;oBAAUI,QAAQ;gBAAM;gBACxC,MAAM,IAAIjB,YAAY,6BAA6B,gBAAgB;oBAACkB,QAAQ;gBAAG;YACjF;YAEA,MAAMC,mBAAmB,MAAMZ,8BAA8BF,gBAAgBQ;YAC7E,IAAI,CAACM,kBAAkB;gBACrBH,eAAe;oBAACH;oBAAUI,QAAQ;gBAAW;gBAC7C,MAAM,IAAIjB,YAAY,6BAA6B,gBAAgB;oBAACkB,QAAQ;gBAAG;YACjF;YAEA,IAAIC,iBAAiBC,SAAS,EAAE;gBAC9BJ,eAAe;oBAACH;oBAAUI,QAAQ;gBAAS;gBAC3C,MAAM,IAAIjB,YAAY,sCAAsC,6BAA6B;oBACvFkB,QAAQ;gBACV;YACF;YAEA,IAAIC,iBAAiBE,SAAS,IAAIF,iBAAiBE,SAAS,IAAI,IAAIC,QAAQ;gBAC1EN,eAAe;oBAACH;oBAAUI,QAAQ;gBAAS;gBAC3C,MAAM,IAAIjB,YAAY,iCAAiC,6BAA6B;oBAClFkB,QAAQ;gBACV;YACF;YAEA,MAAMK,UAA8B;gBAClCC,oBAAoBL,iBAAiBM,EAAE;gBACvCC,aAAaP,iBAAiBO,WAAW;YAC3C;YAEA,MAAMlB,yBAAyB;gBAC7BmB,SAASR,iBAAiBM,EAAE;gBAC5BG,iBAAiBtB,OAAOuB,sCAAsC;YAChE,GAAGC,KAAK,CAAC,CAACC;gBACR7B,SAAS8B,IAAI,CAAC;oBAACD;oBAAOP,oBAAoBL,iBAAiBM,EAAE;gBAAA,GAAG;YAClE;YAEA1B,sBAAsBa,SAASW;QACjC;IACF;AACF;AAEA,SAASP,eAAeiB,MAAkE;IACxF/B,SAAS8B,IAAI,CACX;QACEE,QAAQD,OAAOpB,QAAQ,GAAGV,qBAAqB8B,OAAOpB,QAAQ,IAAIsB;QAClElB,QAAQgB,OAAOhB,MAAM;IACvB,GACA;AAEJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type AuthMethod } from '@shipfox/node-fastify';
|
|
2
|
+
import type { FastifyRequest } from 'fastify';
|
|
3
|
+
export type RunnerRegistrationContext = {
|
|
4
|
+
kind: 'manual';
|
|
5
|
+
registrationTokenId: string;
|
|
6
|
+
workspaceId: string;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'ephemeral';
|
|
9
|
+
ephemeralTokenId: string;
|
|
10
|
+
workspaceId: string;
|
|
11
|
+
provisionerId: string;
|
|
12
|
+
reservationId: string | null;
|
|
13
|
+
provisionedRunnerId: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function getRunnerContext(request: FastifyRequest): RunnerRegistrationContext;
|
|
16
|
+
export declare function createRunnerRegistrationTokenAuthMethod(): AuthMethod;
|
|
17
|
+
//# sourceMappingURL=runner-registration-token-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-registration-token-auth.d.ts","sourceRoot":"","sources":["../../../src/presentation/auth/runner-registration-token-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,UAAU,EAAkC,MAAM,uBAAuB,CAAC;AAEvF,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAM5C,MAAM,MAAM,yBAAyB,GACjC;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,yBAAyB,CAQnF;AAED,wBAAgB,uCAAuC,IAAI,UAAU,CAsEpE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { AUTH_RUNNER_REGISTRATION_TOKEN } from '@shipfox/api-auth-context';
|
|
2
|
+
import { ClientError, extractBearerToken } from '@shipfox/node-fastify';
|
|
3
|
+
import { getTokenType, hashOpaqueToken } from '@shipfox/node-tokens';
|
|
4
|
+
import { resolveEphemeralRegistrationTokenByHash } from '#db/ephemeral-registration-tokens.js';
|
|
5
|
+
import { resolveManualRegistrationTokenByHash } from '#db/manual-registration-tokens.js';
|
|
6
|
+
const RUNNER_CONTEXT_KEY = 'runner';
|
|
7
|
+
export function getRunnerContext(request) {
|
|
8
|
+
const context = request[RUNNER_CONTEXT_KEY];
|
|
9
|
+
if (!context) {
|
|
10
|
+
throw new Error('Runner context is not available on this request');
|
|
11
|
+
}
|
|
12
|
+
return context;
|
|
13
|
+
}
|
|
14
|
+
export function createRunnerRegistrationTokenAuthMethod() {
|
|
15
|
+
return {
|
|
16
|
+
name: AUTH_RUNNER_REGISTRATION_TOKEN,
|
|
17
|
+
authenticate: async (request)=>{
|
|
18
|
+
const rawToken = extractBearerToken(request.headers.authorization);
|
|
19
|
+
if (!rawToken) {
|
|
20
|
+
throw new ClientError('Missing or invalid Authorization header', 'unauthorized', {
|
|
21
|
+
status: 401
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const tokenType = getTokenType(rawToken);
|
|
25
|
+
if (tokenType === 'ephemeralRegistrationToken') {
|
|
26
|
+
const ephemeralToken = await resolveEphemeralRegistrationTokenByHash(hashOpaqueToken(rawToken));
|
|
27
|
+
if (!ephemeralToken) {
|
|
28
|
+
throw new ClientError('Invalid runner registration token', 'unauthorized', {
|
|
29
|
+
status: 401
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (ephemeralToken.expiresAt < new Date()) {
|
|
33
|
+
throw new ClientError('Ephemeral registration token has expired', 'registration-token-expired', {
|
|
34
|
+
status: 401
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
request[RUNNER_CONTEXT_KEY] = {
|
|
38
|
+
kind: 'ephemeral',
|
|
39
|
+
ephemeralTokenId: ephemeralToken.id,
|
|
40
|
+
workspaceId: ephemeralToken.workspaceId,
|
|
41
|
+
provisionerId: ephemeralToken.provisionerId,
|
|
42
|
+
reservationId: ephemeralToken.reservationId,
|
|
43
|
+
provisionedRunnerId: ephemeralToken.provisionedRunnerId
|
|
44
|
+
};
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (tokenType !== 'manualRegistrationToken') {
|
|
48
|
+
throw new ClientError('Invalid runner registration token', 'unauthorized', {
|
|
49
|
+
status: 401
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const token = await resolveManualRegistrationTokenByHash(hashOpaqueToken(rawToken));
|
|
53
|
+
if (!token) {
|
|
54
|
+
throw new ClientError('Invalid runner registration token', 'unauthorized', {
|
|
55
|
+
status: 401
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (token.expiresAt && token.expiresAt < new Date()) {
|
|
59
|
+
throw new ClientError('Registration token has expired', 'registration-token-expired', {
|
|
60
|
+
status: 401
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (token.revokedAt) {
|
|
64
|
+
throw new ClientError('Manual registration token has been revoked', 'manual-registration-token-revoked', {
|
|
65
|
+
status: 401
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
request[RUNNER_CONTEXT_KEY] = {
|
|
69
|
+
kind: 'manual',
|
|
70
|
+
registrationTokenId: token.id,
|
|
71
|
+
workspaceId: token.workspaceId
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=runner-registration-token-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/auth/runner-registration-token-auth.ts"],"sourcesContent":["import {AUTH_RUNNER_REGISTRATION_TOKEN} from '@shipfox/api-auth-context';\nimport {type AuthMethod, ClientError, extractBearerToken} from '@shipfox/node-fastify';\nimport {getTokenType, hashOpaqueToken} from '@shipfox/node-tokens';\nimport type {FastifyRequest} from 'fastify';\nimport {resolveEphemeralRegistrationTokenByHash} from '#db/ephemeral-registration-tokens.js';\nimport {resolveManualRegistrationTokenByHash} from '#db/manual-registration-tokens.js';\n\nconst RUNNER_CONTEXT_KEY = 'runner';\n\nexport type RunnerRegistrationContext =\n | {\n kind: 'manual';\n registrationTokenId: string;\n workspaceId: string;\n }\n | {\n kind: 'ephemeral';\n ephemeralTokenId: string;\n workspaceId: string;\n provisionerId: string;\n reservationId: string | null;\n provisionedRunnerId: string;\n };\n\nexport function getRunnerContext(request: FastifyRequest): RunnerRegistrationContext {\n const context = (request as unknown as Record<string, unknown>)[RUNNER_CONTEXT_KEY] as\n | RunnerRegistrationContext\n | undefined;\n if (!context) {\n throw new Error('Runner context is not available on this request');\n }\n return context;\n}\n\nexport function createRunnerRegistrationTokenAuthMethod(): AuthMethod {\n return {\n name: AUTH_RUNNER_REGISTRATION_TOKEN,\n authenticate: async (request) => {\n const rawToken = extractBearerToken(request.headers.authorization);\n if (!rawToken) {\n throw new ClientError('Missing or invalid Authorization header', 'unauthorized', {\n status: 401,\n });\n }\n\n const tokenType = getTokenType(rawToken);\n\n if (tokenType === 'ephemeralRegistrationToken') {\n const ephemeralToken = await resolveEphemeralRegistrationTokenByHash(\n hashOpaqueToken(rawToken),\n );\n if (!ephemeralToken) {\n throw new ClientError('Invalid runner registration token', 'unauthorized', {\n status: 401,\n });\n }\n if (ephemeralToken.expiresAt < new Date()) {\n throw new ClientError(\n 'Ephemeral registration token has expired',\n 'registration-token-expired',\n {status: 401},\n );\n }\n\n (request as unknown as Record<string, unknown>)[RUNNER_CONTEXT_KEY] = {\n kind: 'ephemeral',\n ephemeralTokenId: ephemeralToken.id,\n workspaceId: ephemeralToken.workspaceId,\n provisionerId: ephemeralToken.provisionerId,\n reservationId: ephemeralToken.reservationId,\n provisionedRunnerId: ephemeralToken.provisionedRunnerId,\n } satisfies RunnerRegistrationContext;\n return;\n }\n\n if (tokenType !== 'manualRegistrationToken') {\n throw new ClientError('Invalid runner registration token', 'unauthorized', {status: 401});\n }\n\n const token = await resolveManualRegistrationTokenByHash(hashOpaqueToken(rawToken));\n if (!token) {\n throw new ClientError('Invalid runner registration token', 'unauthorized', {status: 401});\n }\n\n if (token.expiresAt && token.expiresAt < new Date()) {\n throw new ClientError('Registration token has expired', 'registration-token-expired', {\n status: 401,\n });\n }\n if (token.revokedAt) {\n throw new ClientError(\n 'Manual registration token has been revoked',\n 'manual-registration-token-revoked',\n {status: 401},\n );\n }\n\n (request as unknown as Record<string, unknown>)[RUNNER_CONTEXT_KEY] = {\n kind: 'manual',\n registrationTokenId: token.id,\n workspaceId: token.workspaceId,\n } satisfies RunnerRegistrationContext;\n },\n };\n}\n"],"names":["AUTH_RUNNER_REGISTRATION_TOKEN","ClientError","extractBearerToken","getTokenType","hashOpaqueToken","resolveEphemeralRegistrationTokenByHash","resolveManualRegistrationTokenByHash","RUNNER_CONTEXT_KEY","getRunnerContext","request","context","Error","createRunnerRegistrationTokenAuthMethod","name","authenticate","rawToken","headers","authorization","status","tokenType","ephemeralToken","expiresAt","Date","kind","ephemeralTokenId","id","workspaceId","provisionerId","reservationId","provisionedRunnerId","token","revokedAt","registrationTokenId"],"mappings":"AAAA,SAAQA,8BAA8B,QAAO,4BAA4B;AACzE,SAAyBC,WAAW,EAAEC,kBAAkB,QAAO,wBAAwB;AACvF,SAAQC,YAAY,EAAEC,eAAe,QAAO,uBAAuB;AAEnE,SAAQC,uCAAuC,QAAO,uCAAuC;AAC7F,SAAQC,oCAAoC,QAAO,oCAAoC;AAEvF,MAAMC,qBAAqB;AAiB3B,OAAO,SAASC,iBAAiBC,OAAuB;IACtD,MAAMC,UAAU,AAACD,OAA8C,CAACF,mBAAmB;IAGnF,IAAI,CAACG,SAAS;QACZ,MAAM,IAAIC,MAAM;IAClB;IACA,OAAOD;AACT;AAEA,OAAO,SAASE;IACd,OAAO;QACLC,MAAMb;QACNc,cAAc,OAAOL;YACnB,MAAMM,WAAWb,mBAAmBO,QAAQO,OAAO,CAACC,aAAa;YACjE,IAAI,CAACF,UAAU;gBACb,MAAM,IAAId,YAAY,2CAA2C,gBAAgB;oBAC/EiB,QAAQ;gBACV;YACF;YAEA,MAAMC,YAAYhB,aAAaY;YAE/B,IAAII,cAAc,8BAA8B;gBAC9C,MAAMC,iBAAiB,MAAMf,wCAC3BD,gBAAgBW;gBAElB,IAAI,CAACK,gBAAgB;oBACnB,MAAM,IAAInB,YAAY,qCAAqC,gBAAgB;wBACzEiB,QAAQ;oBACV;gBACF;gBACA,IAAIE,eAAeC,SAAS,GAAG,IAAIC,QAAQ;oBACzC,MAAM,IAAIrB,YACR,4CACA,8BACA;wBAACiB,QAAQ;oBAAG;gBAEhB;gBAECT,OAA8C,CAACF,mBAAmB,GAAG;oBACpEgB,MAAM;oBACNC,kBAAkBJ,eAAeK,EAAE;oBACnCC,aAAaN,eAAeM,WAAW;oBACvCC,eAAeP,eAAeO,aAAa;oBAC3CC,eAAeR,eAAeQ,aAAa;oBAC3CC,qBAAqBT,eAAeS,mBAAmB;gBACzD;gBACA;YACF;YAEA,IAAIV,cAAc,2BAA2B;gBAC3C,MAAM,IAAIlB,YAAY,qCAAqC,gBAAgB;oBAACiB,QAAQ;gBAAG;YACzF;YAEA,MAAMY,QAAQ,MAAMxB,qCAAqCF,gBAAgBW;YACzE,IAAI,CAACe,OAAO;gBACV,MAAM,IAAI7B,YAAY,qCAAqC,gBAAgB;oBAACiB,QAAQ;gBAAG;YACzF;YAEA,IAAIY,MAAMT,SAAS,IAAIS,MAAMT,SAAS,GAAG,IAAIC,QAAQ;gBACnD,MAAM,IAAIrB,YAAY,kCAAkC,8BAA8B;oBACpFiB,QAAQ;gBACV;YACF;YACA,IAAIY,MAAMC,SAAS,EAAE;gBACnB,MAAM,IAAI9B,YACR,8CACA,qCACA;oBAACiB,QAAQ;gBAAG;YAEhB;YAECT,OAA8C,CAACF,mBAAmB,GAAG;gBACpEgB,MAAM;gBACNS,qBAAqBF,MAAML,EAAE;gBAC7BC,aAAaI,MAAMJ,WAAW;YAChC;QACF;IACF;AACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ActiveProvisionerToken } from '#core/entities/provisioner-token.js';
|
|
2
|
+
export declare function toActiveProvisionerDto(token: ActiveProvisionerToken): {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string | null;
|
|
5
|
+
prefix: string;
|
|
6
|
+
last_seen_at: string;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=active-provisioner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-provisioner.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/active-provisioner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAEhF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAOA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/active-provisioner.ts"],"sourcesContent":["import type {ActiveProvisionerToken} from '#core/entities/provisioner-token.js';\n\nexport function toActiveProvisionerDto(token: ActiveProvisionerToken): {\n id: string;\n name: string | null;\n prefix: string;\n last_seen_at: string;\n} {\n return {\n id: token.id,\n name: token.name,\n prefix: token.prefix,\n last_seen_at: token.lastSeenAt.toISOString(),\n };\n}\n"],"names":["toActiveProvisionerDto","token","id","name","prefix","last_seen_at","lastSeenAt","toISOString"],"mappings":"AAEA,OAAO,SAASA,uBAAuBC,KAA6B;IAMlE,OAAO;QACLC,IAAID,MAAMC,EAAE;QACZC,MAAMF,MAAME,IAAI;QAChBC,QAAQH,MAAMG,MAAM;QACpBC,cAAcJ,MAAMK,UAAU,CAACC,WAAW;IAC5C;AACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { toActiveProvisionerDto } from './active-provisioner.js';
|
|
2
|
+
export { toManualRegistrationTokenDto } from './manual-registration-token.js';
|
|
3
|
+
export { toMintRegistrationTokensProvisionedRunners, toMintRegistrationTokensResponseDto, } from './mint-registration-tokens.js';
|
|
4
|
+
export { toPollDemandResponseDto } from './poll-demand.js';
|
|
5
|
+
export { toActiveRunnersResponseDto, toReconcileProvisionedRunnersResponseDto, toReportProvisionedRunnersResponseDto, } from './provisioned-runners.js';
|
|
6
|
+
export { toProvisionerTokenDto } from './provisioner-token.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EACL,0CAA0C,EAC1C,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,wCAAwC,EACxC,qCAAqC,GACtC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,qBAAqB,EAAC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { toActiveProvisionerDto } from './active-provisioner.js';
|
|
2
|
+
export { toManualRegistrationTokenDto } from './manual-registration-token.js';
|
|
3
|
+
export { toMintRegistrationTokensProvisionedRunners, toMintRegistrationTokensResponseDto } from './mint-registration-tokens.js';
|
|
4
|
+
export { toPollDemandResponseDto } from './poll-demand.js';
|
|
5
|
+
export { toActiveRunnersResponseDto, toReconcileProvisionedRunnersResponseDto, toReportProvisionedRunnersResponseDto } from './provisioned-runners.js';
|
|
6
|
+
export { toProvisionerTokenDto } from './provisioner-token.js';
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/index.ts"],"sourcesContent":["export {toActiveProvisionerDto} from './active-provisioner.js';\nexport {toManualRegistrationTokenDto} from './manual-registration-token.js';\nexport {\n toMintRegistrationTokensProvisionedRunners,\n toMintRegistrationTokensResponseDto,\n} from './mint-registration-tokens.js';\nexport {toPollDemandResponseDto} from './poll-demand.js';\nexport {\n toActiveRunnersResponseDto,\n toReconcileProvisionedRunnersResponseDto,\n toReportProvisionedRunnersResponseDto,\n} from './provisioned-runners.js';\nexport {toProvisionerTokenDto} from './provisioner-token.js';\n"],"names":["toActiveProvisionerDto","toManualRegistrationTokenDto","toMintRegistrationTokensProvisionedRunners","toMintRegistrationTokensResponseDto","toPollDemandResponseDto","toActiveRunnersResponseDto","toReconcileProvisionedRunnersResponseDto","toReportProvisionedRunnersResponseDto","toProvisionerTokenDto"],"mappings":"AAAA,SAAQA,sBAAsB,QAAO,0BAA0B;AAC/D,SAAQC,4BAA4B,QAAO,iCAAiC;AAC5E,SACEC,0CAA0C,EAC1CC,mCAAmC,QAC9B,gCAAgC;AACvC,SAAQC,uBAAuB,QAAO,mBAAmB;AACzD,SACEC,0BAA0B,EAC1BC,wCAAwC,EACxCC,qCAAqC,QAChC,2BAA2B;AAClC,SAAQC,qBAAqB,QAAO,yBAAyB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ManualRegistrationToken } from '#core/entities/manual-registration-token.js';
|
|
2
|
+
export declare function toManualRegistrationTokenDto(token: ManualRegistrationToken): {
|
|
3
|
+
id: string;
|
|
4
|
+
workspace_id: string;
|
|
5
|
+
prefix: string;
|
|
6
|
+
name: string | null;
|
|
7
|
+
expires_at: string | null;
|
|
8
|
+
revoked_at: string | null;
|
|
9
|
+
created_at: string;
|
|
10
|
+
updated_at: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=manual-registration-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-registration-token.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/manual-registration-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,6CAA6C,CAAC;AAEzF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,GAAG;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAWA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function toManualRegistrationTokenDto(token) {
|
|
2
|
+
return {
|
|
3
|
+
id: token.id,
|
|
4
|
+
workspace_id: token.workspaceId,
|
|
5
|
+
prefix: token.prefix,
|
|
6
|
+
name: token.name,
|
|
7
|
+
expires_at: token.expiresAt?.toISOString() ?? null,
|
|
8
|
+
revoked_at: token.revokedAt?.toISOString() ?? null,
|
|
9
|
+
created_at: token.createdAt.toISOString(),
|
|
10
|
+
updated_at: token.updatedAt.toISOString()
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=manual-registration-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/manual-registration-token.ts"],"sourcesContent":["import type {ManualRegistrationToken} from '#core/entities/manual-registration-token.js';\n\nexport function toManualRegistrationTokenDto(token: ManualRegistrationToken): {\n id: string;\n workspace_id: string;\n prefix: string;\n name: string | null;\n expires_at: string | null;\n revoked_at: string | null;\n created_at: string;\n updated_at: string;\n} {\n return {\n id: token.id,\n workspace_id: token.workspaceId,\n prefix: token.prefix,\n name: token.name,\n expires_at: token.expiresAt?.toISOString() ?? null,\n revoked_at: token.revokedAt?.toISOString() ?? null,\n created_at: token.createdAt.toISOString(),\n updated_at: token.updatedAt.toISOString(),\n };\n}\n"],"names":["toManualRegistrationTokenDto","token","id","workspace_id","workspaceId","prefix","name","expires_at","expiresAt","toISOString","revoked_at","revokedAt","created_at","createdAt","updated_at","updatedAt"],"mappings":"AAEA,OAAO,SAASA,6BAA6BC,KAA8B;IAUzE,OAAO;QACLC,IAAID,MAAMC,EAAE;QACZC,cAAcF,MAAMG,WAAW;QAC/BC,QAAQJ,MAAMI,MAAM;QACpBC,MAAML,MAAMK,IAAI;QAChBC,YAAYN,MAAMO,SAAS,EAAEC,iBAAiB;QAC9CC,YAAYT,MAAMU,SAAS,EAAEF,iBAAiB;QAC9CG,YAAYX,MAAMY,SAAS,CAACJ,WAAW;QACvCK,YAAYb,MAAMc,SAAS,CAACN,WAAW;IACzC;AACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MintRegistrationTokensBatchResponseDto, MintRegistrationTokensProvisionedRunnerDto } from '@shipfox/api-runners-dto';
|
|
2
|
+
import type { MintEphemeralRegistrationTokensBatchProvisionedRunner, MintEphemeralRegistrationTokensBatchResult } from '#core/ephemeral-registration-tokens.js';
|
|
3
|
+
export declare function toMintRegistrationTokensProvisionedRunners(provisionedRunners: MintRegistrationTokensProvisionedRunnerDto[]): MintEphemeralRegistrationTokensBatchProvisionedRunner[];
|
|
4
|
+
export declare function toMintRegistrationTokensResponseDto(result: MintEphemeralRegistrationTokensBatchResult[]): MintRegistrationTokensBatchResponseDto;
|
|
5
|
+
//# sourceMappingURL=mint-registration-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mint-registration-tokens.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/mint-registration-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sCAAsC,EACtC,0CAA0C,EAC3C,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,qDAAqD,EACrD,0CAA0C,EAC3C,MAAM,wCAAwC,CAAC;AAEhD,wBAAgB,0CAA0C,CACxD,kBAAkB,EAAE,0CAA0C,EAAE,GAC/D,qDAAqD,EAAE,CAIzD;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,0CAA0C,EAAE,GACnD,sCAAsC,CAIxC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function toMintRegistrationTokensProvisionedRunners(provisionedRunners) {
|
|
2
|
+
return provisionedRunners.map((provisionedRunner)=>({
|
|
3
|
+
provisionedRunnerId: provisionedRunner.provisioned_runner_id
|
|
4
|
+
}));
|
|
5
|
+
}
|
|
6
|
+
export function toMintRegistrationTokensResponseDto(result) {
|
|
7
|
+
return {
|
|
8
|
+
tokens: result.map(toMintedRegistrationTokenDto)
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function toMintedRegistrationTokenDto(result) {
|
|
12
|
+
return {
|
|
13
|
+
provisioned_runner_id: result.provisionedRunnerId,
|
|
14
|
+
registration_token: result.rawToken,
|
|
15
|
+
expires_at: result.token.expiresAt.toISOString()
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=mint-registration-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/mint-registration-tokens.ts"],"sourcesContent":["import type {\n MintedRegistrationTokenDto,\n MintRegistrationTokensBatchResponseDto,\n MintRegistrationTokensProvisionedRunnerDto,\n} from '@shipfox/api-runners-dto';\nimport type {\n MintEphemeralRegistrationTokensBatchProvisionedRunner,\n MintEphemeralRegistrationTokensBatchResult,\n} from '#core/ephemeral-registration-tokens.js';\n\nexport function toMintRegistrationTokensProvisionedRunners(\n provisionedRunners: MintRegistrationTokensProvisionedRunnerDto[],\n): MintEphemeralRegistrationTokensBatchProvisionedRunner[] {\n return provisionedRunners.map((provisionedRunner) => ({\n provisionedRunnerId: provisionedRunner.provisioned_runner_id,\n }));\n}\n\nexport function toMintRegistrationTokensResponseDto(\n result: MintEphemeralRegistrationTokensBatchResult[],\n): MintRegistrationTokensBatchResponseDto {\n return {\n tokens: result.map(toMintedRegistrationTokenDto),\n };\n}\n\nfunction toMintedRegistrationTokenDto(\n result: MintEphemeralRegistrationTokensBatchResult,\n): MintedRegistrationTokenDto {\n return {\n provisioned_runner_id: result.provisionedRunnerId,\n registration_token: result.rawToken,\n expires_at: result.token.expiresAt.toISOString(),\n };\n}\n"],"names":["toMintRegistrationTokensProvisionedRunners","provisionedRunners","map","provisionedRunner","provisionedRunnerId","provisioned_runner_id","toMintRegistrationTokensResponseDto","result","tokens","toMintedRegistrationTokenDto","registration_token","rawToken","expires_at","token","expiresAt","toISOString"],"mappings":"AAUA,OAAO,SAASA,2CACdC,kBAAgE;IAEhE,OAAOA,mBAAmBC,GAAG,CAAC,CAACC,oBAAuB,CAAA;YACpDC,qBAAqBD,kBAAkBE,qBAAqB;QAC9D,CAAA;AACF;AAEA,OAAO,SAASC,oCACdC,MAAoD;IAEpD,OAAO;QACLC,QAAQD,OAAOL,GAAG,CAACO;IACrB;AACF;AAEA,SAASA,6BACPF,MAAkD;IAElD,OAAO;QACLF,uBAAuBE,OAAOH,mBAAmB;QACjDM,oBAAoBH,OAAOI,QAAQ;QACnCC,YAAYL,OAAOM,KAAK,CAACC,SAAS,CAACC,WAAW;IAChD;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll-demand.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/poll-demand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAgBvF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function toPollDemandResponseDto(result) {
|
|
2
|
+
return {
|
|
3
|
+
stats: result.stats.map((stat)=>({
|
|
4
|
+
labels: stat.labels,
|
|
5
|
+
queued: stat.queued,
|
|
6
|
+
reserved: stat.reserved,
|
|
7
|
+
oldest_queued_at: stat.oldestQueuedAt.toISOString()
|
|
8
|
+
})),
|
|
9
|
+
reservations: result.reservations.map((reservation)=>({
|
|
10
|
+
reservation_id: reservation.reservationId,
|
|
11
|
+
labels: reservation.labels,
|
|
12
|
+
count: reservation.count,
|
|
13
|
+
expires_at: reservation.expiresAt.toISOString()
|
|
14
|
+
})),
|
|
15
|
+
terminate_provisioned_runner_ids: result.terminateProvisionedRunnerIds
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=poll-demand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/poll-demand.ts"],"sourcesContent":["import type {PollDemandResponseDto} from '@shipfox/api-runners-dto';\nimport type {PollDemandResult} from '#core/demand.js';\n\nexport function toPollDemandResponseDto(result: PollDemandResult): PollDemandResponseDto {\n return {\n stats: result.stats.map((stat) => ({\n labels: stat.labels,\n queued: stat.queued,\n reserved: stat.reserved,\n oldest_queued_at: stat.oldestQueuedAt.toISOString(),\n })),\n reservations: result.reservations.map((reservation) => ({\n reservation_id: reservation.reservationId,\n labels: reservation.labels,\n count: reservation.count,\n expires_at: reservation.expiresAt.toISOString(),\n })),\n terminate_provisioned_runner_ids: result.terminateProvisionedRunnerIds,\n };\n}\n"],"names":["toPollDemandResponseDto","result","stats","map","stat","labels","queued","reserved","oldest_queued_at","oldestQueuedAt","toISOString","reservations","reservation","reservation_id","reservationId","count","expires_at","expiresAt","terminate_provisioned_runner_ids","terminateProvisionedRunnerIds"],"mappings":"AAGA,OAAO,SAASA,wBAAwBC,MAAwB;IAC9D,OAAO;QACLC,OAAOD,OAAOC,KAAK,CAACC,GAAG,CAAC,CAACC,OAAU,CAAA;gBACjCC,QAAQD,KAAKC,MAAM;gBACnBC,QAAQF,KAAKE,MAAM;gBACnBC,UAAUH,KAAKG,QAAQ;gBACvBC,kBAAkBJ,KAAKK,cAAc,CAACC,WAAW;YACnD,CAAA;QACAC,cAAcV,OAAOU,YAAY,CAACR,GAAG,CAAC,CAACS,cAAiB,CAAA;gBACtDC,gBAAgBD,YAAYE,aAAa;gBACzCT,QAAQO,YAAYP,MAAM;gBAC1BU,OAAOH,YAAYG,KAAK;gBACxBC,YAAYJ,YAAYK,SAAS,CAACP,WAAW;YAC/C,CAAA;QACAQ,kCAAkCjB,OAAOkB,6BAA6B;IACxE;AACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ActiveRunner, ReconcileProvisionedRunnersResult, ReportProvisionedRunnersResult } from '#core/provisioned-runners.js';
|
|
2
|
+
export declare function toReportProvisionedRunnersResponseDto(result: ReportProvisionedRunnersResult): {
|
|
3
|
+
accepted: number;
|
|
4
|
+
reservations_released: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function toReconcileProvisionedRunnersResponseDto(result: ReconcileProvisionedRunnersResult): {
|
|
7
|
+
runners: Array<{
|
|
8
|
+
provisioned_runner_id: string;
|
|
9
|
+
state: ReconcileProvisionedRunnersResult['runners'][number]['state'];
|
|
10
|
+
reservation_id: string | null;
|
|
11
|
+
runner_session_id: string | null;
|
|
12
|
+
bound_job: {
|
|
13
|
+
job_id: string;
|
|
14
|
+
workflow_run_attempt_id: string;
|
|
15
|
+
last_heartbeat_at: string;
|
|
16
|
+
cancellation_requested_at: string | null;
|
|
17
|
+
} | null;
|
|
18
|
+
desired_intent: ReconcileProvisionedRunnersResult['runners'][number]['desiredIntent'];
|
|
19
|
+
}>;
|
|
20
|
+
terminated_absent_provisioned_runner_ids: string[];
|
|
21
|
+
};
|
|
22
|
+
export declare function toActiveRunnersResponseDto(runners: ActiveRunner[]): {
|
|
23
|
+
runners: Array<{
|
|
24
|
+
runner_session_id: string | null;
|
|
25
|
+
provisioned_runner_id: string | null;
|
|
26
|
+
provisioner_id: string | null;
|
|
27
|
+
state: ActiveRunner['state'];
|
|
28
|
+
labels: string[];
|
|
29
|
+
template_key: string | null;
|
|
30
|
+
provider_kind: string | null;
|
|
31
|
+
job_id: string | null;
|
|
32
|
+
workflow_run_attempt_id: string | null;
|
|
33
|
+
project_id: string | null;
|
|
34
|
+
reported_at: string | null;
|
|
35
|
+
last_heartbeat_at: string | null;
|
|
36
|
+
}>;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=provisioned-runners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioned-runners.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/provisioned-runners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iCAAiC,EACjC,8BAA8B,EAC/B,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,8BAA8B,GAAG;IAC7F,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAKA;AAED,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,iCAAiC,GACxC;IACD,OAAO,EAAE,KAAK,CAAC;QACb,qBAAqB,EAAE,MAAM,CAAC;QAC9B,KAAK,EAAE,iCAAiC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACrE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,SAAS,EAAE;YACT,MAAM,EAAE,MAAM,CAAC;YACf,uBAAuB,EAAE,MAAM,CAAC;YAChC,iBAAiB,EAAE,MAAM,CAAC;YAC1B,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;SAC1C,GAAG,IAAI,CAAC;QACT,cAAc,EAAE,iCAAiC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;KACvF,CAAC,CAAC;IACH,wCAAwC,EAAE,MAAM,EAAE,CAAC;CACpD,CAoBA;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG;IACnE,OAAO,EAAE,KAAK,CAAC;QACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;QACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC,CAAC,CAAC;CACJ,CAiBA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function toReportProvisionedRunnersResponseDto(result) {
|
|
2
|
+
return {
|
|
3
|
+
accepted: result.accepted,
|
|
4
|
+
reservations_released: result.reservationsReleased
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export function toReconcileProvisionedRunnersResponseDto(result) {
|
|
8
|
+
return {
|
|
9
|
+
runners: result.runners.map((runner)=>({
|
|
10
|
+
provisioned_runner_id: runner.provisionedRunnerId,
|
|
11
|
+
state: runner.state,
|
|
12
|
+
reservation_id: runner.reservationId,
|
|
13
|
+
runner_session_id: runner.runnerSessionId,
|
|
14
|
+
bound_job: runner.boundJobExecution ? {
|
|
15
|
+
job_id: runner.boundJobExecution.jobId,
|
|
16
|
+
workflow_run_attempt_id: runner.boundJobExecution.workflowRunAttemptId,
|
|
17
|
+
last_heartbeat_at: runner.boundJobExecution.lastHeartbeatAt.toISOString(),
|
|
18
|
+
cancellation_requested_at: runner.boundJobExecution.cancellationRequestedAt?.toISOString() ?? null
|
|
19
|
+
} : null,
|
|
20
|
+
desired_intent: runner.desiredIntent
|
|
21
|
+
})),
|
|
22
|
+
terminated_absent_provisioned_runner_ids: result.terminatedAbsentProvisionedRunnerIds
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function toActiveRunnersResponseDto(runners) {
|
|
26
|
+
return {
|
|
27
|
+
runners: runners.map((runner)=>({
|
|
28
|
+
runner_session_id: runner.runnerSessionId,
|
|
29
|
+
provisioned_runner_id: runner.provisionedRunnerId,
|
|
30
|
+
provisioner_id: runner.provisionerId,
|
|
31
|
+
state: runner.state,
|
|
32
|
+
labels: runner.labels,
|
|
33
|
+
template_key: runner.templateKey,
|
|
34
|
+
provider_kind: runner.providerKind,
|
|
35
|
+
job_id: runner.jobId,
|
|
36
|
+
workflow_run_attempt_id: runner.workflowRunAttemptId,
|
|
37
|
+
project_id: runner.projectId,
|
|
38
|
+
reported_at: runner.reportedAt?.toISOString() ?? null,
|
|
39
|
+
last_heartbeat_at: runner.lastHeartbeatAt?.toISOString() ?? null
|
|
40
|
+
}))
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=provisioned-runners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/provisioned-runners.ts"],"sourcesContent":["import type {\n ActiveRunner,\n ReconcileProvisionedRunnersResult,\n ReportProvisionedRunnersResult,\n} from '#core/provisioned-runners.js';\n\nexport function toReportProvisionedRunnersResponseDto(result: ReportProvisionedRunnersResult): {\n accepted: number;\n reservations_released: number;\n} {\n return {\n accepted: result.accepted,\n reservations_released: result.reservationsReleased,\n };\n}\n\nexport function toReconcileProvisionedRunnersResponseDto(\n result: ReconcileProvisionedRunnersResult,\n): {\n runners: Array<{\n provisioned_runner_id: string;\n state: ReconcileProvisionedRunnersResult['runners'][number]['state'];\n reservation_id: string | null;\n runner_session_id: string | null;\n bound_job: {\n job_id: string;\n workflow_run_attempt_id: string;\n last_heartbeat_at: string;\n cancellation_requested_at: string | null;\n } | null;\n desired_intent: ReconcileProvisionedRunnersResult['runners'][number]['desiredIntent'];\n }>;\n terminated_absent_provisioned_runner_ids: string[];\n} {\n return {\n runners: result.runners.map((runner) => ({\n provisioned_runner_id: runner.provisionedRunnerId,\n state: runner.state,\n reservation_id: runner.reservationId,\n runner_session_id: runner.runnerSessionId,\n bound_job: runner.boundJobExecution\n ? {\n job_id: runner.boundJobExecution.jobId,\n workflow_run_attempt_id: runner.boundJobExecution.workflowRunAttemptId,\n last_heartbeat_at: runner.boundJobExecution.lastHeartbeatAt.toISOString(),\n cancellation_requested_at:\n runner.boundJobExecution.cancellationRequestedAt?.toISOString() ?? null,\n }\n : null,\n desired_intent: runner.desiredIntent,\n })),\n terminated_absent_provisioned_runner_ids: result.terminatedAbsentProvisionedRunnerIds,\n };\n}\n\nexport function toActiveRunnersResponseDto(runners: ActiveRunner[]): {\n runners: Array<{\n runner_session_id: string | null;\n provisioned_runner_id: string | null;\n provisioner_id: string | null;\n state: ActiveRunner['state'];\n labels: string[];\n template_key: string | null;\n provider_kind: string | null;\n job_id: string | null;\n workflow_run_attempt_id: string | null;\n project_id: string | null;\n reported_at: string | null;\n last_heartbeat_at: string | null;\n }>;\n} {\n return {\n runners: runners.map((runner) => ({\n runner_session_id: runner.runnerSessionId,\n provisioned_runner_id: runner.provisionedRunnerId,\n provisioner_id: runner.provisionerId,\n state: runner.state,\n labels: runner.labels,\n template_key: runner.templateKey,\n provider_kind: runner.providerKind,\n job_id: runner.jobId,\n workflow_run_attempt_id: runner.workflowRunAttemptId,\n project_id: runner.projectId,\n reported_at: runner.reportedAt?.toISOString() ?? null,\n last_heartbeat_at: runner.lastHeartbeatAt?.toISOString() ?? null,\n })),\n };\n}\n"],"names":["toReportProvisionedRunnersResponseDto","result","accepted","reservations_released","reservationsReleased","toReconcileProvisionedRunnersResponseDto","runners","map","runner","provisioned_runner_id","provisionedRunnerId","state","reservation_id","reservationId","runner_session_id","runnerSessionId","bound_job","boundJobExecution","job_id","jobId","workflow_run_attempt_id","workflowRunAttemptId","last_heartbeat_at","lastHeartbeatAt","toISOString","cancellation_requested_at","cancellationRequestedAt","desired_intent","desiredIntent","terminated_absent_provisioned_runner_ids","terminatedAbsentProvisionedRunnerIds","toActiveRunnersResponseDto","provisioner_id","provisionerId","labels","template_key","templateKey","provider_kind","providerKind","project_id","projectId","reported_at","reportedAt"],"mappings":"AAMA,OAAO,SAASA,sCAAsCC,MAAsC;IAI1F,OAAO;QACLC,UAAUD,OAAOC,QAAQ;QACzBC,uBAAuBF,OAAOG,oBAAoB;IACpD;AACF;AAEA,OAAO,SAASC,yCACdJ,MAAyC;IAiBzC,OAAO;QACLK,SAASL,OAAOK,OAAO,CAACC,GAAG,CAAC,CAACC,SAAY,CAAA;gBACvCC,uBAAuBD,OAAOE,mBAAmB;gBACjDC,OAAOH,OAAOG,KAAK;gBACnBC,gBAAgBJ,OAAOK,aAAa;gBACpCC,mBAAmBN,OAAOO,eAAe;gBACzCC,WAAWR,OAAOS,iBAAiB,GAC/B;oBACEC,QAAQV,OAAOS,iBAAiB,CAACE,KAAK;oBACtCC,yBAAyBZ,OAAOS,iBAAiB,CAACI,oBAAoB;oBACtEC,mBAAmBd,OAAOS,iBAAiB,CAACM,eAAe,CAACC,WAAW;oBACvEC,2BACEjB,OAAOS,iBAAiB,CAACS,uBAAuB,EAAEF,iBAAiB;gBACvE,IACA;gBACJG,gBAAgBnB,OAAOoB,aAAa;YACtC,CAAA;QACAC,0CAA0C5B,OAAO6B,oCAAoC;IACvF;AACF;AAEA,OAAO,SAASC,2BAA2BzB,OAAuB;IAgBhE,OAAO;QACLA,SAASA,QAAQC,GAAG,CAAC,CAACC,SAAY,CAAA;gBAChCM,mBAAmBN,OAAOO,eAAe;gBACzCN,uBAAuBD,OAAOE,mBAAmB;gBACjDsB,gBAAgBxB,OAAOyB,aAAa;gBACpCtB,OAAOH,OAAOG,KAAK;gBACnBuB,QAAQ1B,OAAO0B,MAAM;gBACrBC,cAAc3B,OAAO4B,WAAW;gBAChCC,eAAe7B,OAAO8B,YAAY;gBAClCpB,QAAQV,OAAOW,KAAK;gBACpBC,yBAAyBZ,OAAOa,oBAAoB;gBACpDkB,YAAY/B,OAAOgC,SAAS;gBAC5BC,aAAajC,OAAOkC,UAAU,EAAElB,iBAAiB;gBACjDF,mBAAmBd,OAAOe,eAAe,EAAEC,iBAAiB;YAC9D,CAAA;IACF;AACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ProvisionerToken } from '#core/entities/provisioner-token.js';
|
|
2
|
+
export declare function toProvisionerTokenDto(token: ProvisionerToken): {
|
|
3
|
+
id: string;
|
|
4
|
+
workspace_id: string;
|
|
5
|
+
prefix: string;
|
|
6
|
+
name: string | null;
|
|
7
|
+
created_by_user_id: string;
|
|
8
|
+
revoked_by_user_id: string | null;
|
|
9
|
+
expires_at: string | null;
|
|
10
|
+
revoked_at: string | null;
|
|
11
|
+
last_seen_at: string | null;
|
|
12
|
+
created_at: string;
|
|
13
|
+
updated_at: string;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=provisioner-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provisioner-token.d.ts","sourceRoot":"","sources":["../../../src/presentation/dto/provisioner-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AAE1E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAcA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function toProvisionerTokenDto(token) {
|
|
2
|
+
return {
|
|
3
|
+
id: token.id,
|
|
4
|
+
workspace_id: token.workspaceId,
|
|
5
|
+
prefix: token.prefix,
|
|
6
|
+
name: token.name,
|
|
7
|
+
created_by_user_id: token.createdByUserId,
|
|
8
|
+
revoked_by_user_id: token.revokedByUserId,
|
|
9
|
+
expires_at: token.expiresAt?.toISOString() ?? null,
|
|
10
|
+
revoked_at: token.revokedAt?.toISOString() ?? null,
|
|
11
|
+
last_seen_at: token.lastSeenAt?.toISOString() ?? null,
|
|
12
|
+
created_at: token.createdAt.toISOString(),
|
|
13
|
+
updated_at: token.updatedAt.toISOString()
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=provisioner-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/dto/provisioner-token.ts"],"sourcesContent":["import type {ProvisionerToken} from '#core/entities/provisioner-token.js';\n\nexport function toProvisionerTokenDto(token: ProvisionerToken): {\n id: string;\n workspace_id: string;\n prefix: string;\n name: string | null;\n created_by_user_id: string;\n revoked_by_user_id: string | null;\n expires_at: string | null;\n revoked_at: string | null;\n last_seen_at: string | null;\n created_at: string;\n updated_at: string;\n} {\n return {\n id: token.id,\n workspace_id: token.workspaceId,\n prefix: token.prefix,\n name: token.name,\n created_by_user_id: token.createdByUserId,\n revoked_by_user_id: token.revokedByUserId,\n expires_at: token.expiresAt?.toISOString() ?? null,\n revoked_at: token.revokedAt?.toISOString() ?? null,\n last_seen_at: token.lastSeenAt?.toISOString() ?? null,\n created_at: token.createdAt.toISOString(),\n updated_at: token.updatedAt.toISOString(),\n };\n}\n"],"names":["toProvisionerTokenDto","token","id","workspace_id","workspaceId","prefix","name","created_by_user_id","createdByUserId","revoked_by_user_id","revokedByUserId","expires_at","expiresAt","toISOString","revoked_at","revokedAt","last_seen_at","lastSeenAt","created_at","createdAt","updated_at","updatedAt"],"mappings":"AAEA,OAAO,SAASA,sBAAsBC,KAAuB;IAa3D,OAAO;QACLC,IAAID,MAAMC,EAAE;QACZC,cAAcF,MAAMG,WAAW;QAC/BC,QAAQJ,MAAMI,MAAM;QACpBC,MAAML,MAAMK,IAAI;QAChBC,oBAAoBN,MAAMO,eAAe;QACzCC,oBAAoBR,MAAMS,eAAe;QACzCC,YAAYV,MAAMW,SAAS,EAAEC,iBAAiB;QAC9CC,YAAYb,MAAMc,SAAS,EAAEF,iBAAiB;QAC9CG,cAAcf,MAAMgB,UAAU,EAAEJ,iBAAiB;QACjDK,YAAYjB,MAAMkB,SAAS,CAACN,WAAW;QACvCO,YAAYnB,MAAMoB,SAAS,CAACR,WAAW;IACzC;AACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createProvisionerTokenAuthMethod, createRunnerRegistrationTokenAuthMethod, } from './auth/index.js';
|
|
2
|
+
export { runnerRoutes as routes } from './routes/index.js';
|
|
3
|
+
export { onWorkflowsJobExecutionTimedOut } from './subscribers/on-workflows-job-execution-timed-out.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,YAAY,IAAI,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,+BAA+B,EAAC,MAAM,uDAAuD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createProvisionerTokenAuthMethod, createRunnerRegistrationTokenAuthMethod } from './auth/index.js';
|
|
2
|
+
export { runnerRoutes as routes } from './routes/index.js';
|
|
3
|
+
export { onWorkflowsJobExecutionTimedOut } from './subscribers/on-workflows-job-execution-timed-out.js';
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/presentation/index.ts"],"sourcesContent":["export {\n createProvisionerTokenAuthMethod,\n createRunnerRegistrationTokenAuthMethod,\n} from './auth/index.js';\nexport {runnerRoutes as routes} from './routes/index.js';\nexport {onWorkflowsJobExecutionTimedOut} from './subscribers/on-workflows-job-execution-timed-out.js';\n"],"names":["createProvisionerTokenAuthMethod","createRunnerRegistrationTokenAuthMethod","runnerRoutes","routes","onWorkflowsJobExecutionTimedOut"],"mappings":"AAAA,SACEA,gCAAgC,EAChCC,uCAAuC,QAClC,kBAAkB;AACzB,SAAQC,gBAAgBC,MAAM,QAAO,oBAAoB;AACzD,SAAQC,+BAA+B,QAAO,wDAAwD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-manual-registration-token.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/create-manual-registration-token.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kCAAkC,iDAiC7C,CAAC"}
|