@dakkitor/api-contracts 1.7.0 → 1.8.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.
Files changed (191) hide show
  1. package/dist/abilities/abilities.contract.spec.js +39 -19
  2. package/dist/abilities/interconnection.abilities.json +6 -0
  3. package/dist/abilities/outreach.abilities.json +0 -7
  4. package/dist/abilities/second-agent.abilities.json +2 -91
  5. package/dist/abilities/team-leads.json +1 -0
  6. package/dist/abilities/worker-curator.abilities.json +2 -0
  7. package/dist/actives/actives.contract.d.ts +2562 -2515
  8. package/dist/actives/actives.contract.d.ts.map +1 -1
  9. package/dist/agent-client-links/agent-client-links.contract.d.ts +908 -908
  10. package/dist/auth/auth.contract.d.ts +50 -44
  11. package/dist/auth/auth.contract.d.ts.map +1 -1
  12. package/dist/auth/auth.contract.js +1 -0
  13. package/dist/bookings/backdate-guard.spec.d.ts +2 -0
  14. package/dist/bookings/backdate-guard.spec.d.ts.map +1 -0
  15. package/dist/bookings/backdate-guard.spec.js +80 -0
  16. package/dist/bookings/bookings.contract.d.ts +4918 -4824
  17. package/dist/bookings/bookings.contract.d.ts.map +1 -1
  18. package/dist/bookings/bookings.contract.js +26 -2
  19. package/dist/call-history/call-history.contract.d.ts +434 -434
  20. package/dist/calls-feed/calls-feed.contract.d.ts +70 -70
  21. package/dist/client-contacts/client-contacts.contract.d.ts +290 -290
  22. package/dist/clients/clients.contract.d.ts +110 -110
  23. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +1412 -1412
  24. package/dist/collaborations/collaborations.contract.d.ts +1278 -1278
  25. package/dist/common/common-schemas.d.ts +13 -13
  26. package/dist/common/common-schemas.d.ts.map +1 -1
  27. package/dist/common/common-schemas.js +1 -0
  28. package/dist/common/nino.d.ts +8 -0
  29. package/dist/common/nino.d.ts.map +1 -0
  30. package/dist/common/nino.js +26 -0
  31. package/dist/common/nino.spec.d.ts +2 -0
  32. package/dist/common/nino.spec.d.ts.map +1 -0
  33. package/dist/common/nino.spec.js +32 -0
  34. package/dist/companies/companies.contract.d.ts +30 -30
  35. package/dist/crews/crews.contract.d.ts +300 -300
  36. package/dist/cron-executions/cron-executions.contract.d.ts +19 -6
  37. package/dist/cron-executions/cron-executions.contract.d.ts.map +1 -1
  38. package/dist/cron-executions/cron-executions.contract.js +1 -0
  39. package/dist/cron-executions/cron-executions.contract.spec.d.ts +2 -0
  40. package/dist/cron-executions/cron-executions.contract.spec.d.ts.map +1 -0
  41. package/dist/cron-executions/cron-executions.contract.spec.js +27 -0
  42. package/dist/curated-worker-leads/candidate-booking-date-fields.spec.d.ts +2 -0
  43. package/dist/curated-worker-leads/candidate-booking-date-fields.spec.d.ts.map +1 -0
  44. package/dist/curated-worker-leads/candidate-booking-date-fields.spec.js +59 -0
  45. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts +1255 -1188
  46. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts.map +1 -1
  47. package/dist/curated-worker-leads/candidate-coordination.contract.js +22 -6
  48. package/dist/curated-worker-leads/candidate-coordination.contract.spec.js +11 -0
  49. package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts +347 -304
  50. package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts.map +1 -1
  51. package/dist/curated-worker-leads/contact-history.spec.js +1 -0
  52. package/dist/curated-worker-leads/curated-worker-lead-config.contract.d.ts +2 -85
  53. package/dist/curated-worker-leads/curated-worker-lead-config.contract.d.ts.map +1 -1
  54. package/dist/curated-worker-leads/curated-worker-lead-config.contract.js +17 -41
  55. package/dist/curated-worker-leads/curated-worker-lead-config.contract.spec.d.ts +2 -0
  56. package/dist/curated-worker-leads/curated-worker-lead-config.contract.spec.d.ts.map +1 -0
  57. package/dist/curated-worker-leads/curated-worker-lead-config.contract.spec.js +30 -0
  58. package/dist/curated-worker-leads/job-feed-match-counts.contract.spec.js +30 -0
  59. package/dist/curated-worker-leads/jobs-tab.contract.d.ts +6058 -5381
  60. package/dist/curated-worker-leads/jobs-tab.contract.d.ts.map +1 -1
  61. package/dist/curated-worker-leads/jobs-tab.contract.js +64 -12
  62. package/dist/curated-worker-leads/owned-jobs-tab.contract.d.ts +88 -88
  63. package/dist/curated-workers/curated-workers.contract.d.ts +1173 -962
  64. package/dist/curated-workers/curated-workers.contract.d.ts.map +1 -1
  65. package/dist/curated-workers/curated-workers.contract.js +37 -6
  66. package/dist/dashboards/dashboard-widgets.contract.d.ts +43 -73
  67. package/dist/dashboards/dashboard-widgets.contract.d.ts.map +1 -1
  68. package/dist/dashboards/dashboard-widgets.contract.js +1 -11
  69. package/dist/dashboards/dashboard-widgets.retirement.spec.d.ts +2 -0
  70. package/dist/dashboards/dashboard-widgets.retirement.spec.d.ts.map +1 -0
  71. package/dist/dashboards/dashboard-widgets.retirement.spec.js +22 -0
  72. package/dist/document-intake/document-intake.automation.spec.d.ts +2 -0
  73. package/dist/document-intake/document-intake.automation.spec.d.ts.map +1 -0
  74. package/dist/document-intake/document-intake.automation.spec.js +469 -0
  75. package/dist/document-intake/document-intake.card-side.spec.d.ts +2 -0
  76. package/dist/document-intake/document-intake.card-side.spec.d.ts.map +1 -0
  77. package/dist/document-intake/document-intake.card-side.spec.js +51 -0
  78. package/dist/document-intake/document-intake.contract.d.ts +9421 -1071
  79. package/dist/document-intake/document-intake.contract.d.ts.map +1 -1
  80. package/dist/document-intake/document-intake.contract.js +219 -5
  81. package/dist/document-intake/document-intake.contract.spec.d.ts +2 -0
  82. package/dist/document-intake/document-intake.contract.spec.d.ts.map +1 -0
  83. package/dist/document-intake/document-intake.contract.spec.js +37 -0
  84. package/dist/document-intake/document-intake.nino.spec.d.ts +2 -0
  85. package/dist/document-intake/document-intake.nino.spec.d.ts.map +1 -0
  86. package/dist/document-intake/document-intake.nino.spec.js +42 -0
  87. package/dist/export-jobs/export-jobs.contract.d.ts +426 -426
  88. package/dist/files/files.contract.d.ts +36 -36
  89. package/dist/index.d.ts +17 -9
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +17 -9
  92. package/dist/job-clusters/job-clusters.contract.d.ts +52 -52
  93. package/dist/jobs/jobs.contract.d.ts +3610 -3610
  94. package/dist/kpi-impersonation/kpi-impersonation.contract.d.ts +56 -56
  95. package/dist/lead-assignments/lead-assignments.contract.d.ts +706 -706
  96. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +220 -220
  97. package/dist/lead-distribution/lead-distribution-config.contract.d.ts +10 -10
  98. package/dist/leads/leads.contract.d.ts +86 -86
  99. package/dist/locations/locations.contract.d.ts +46 -46
  100. package/dist/notifications/notifications.contract.d.ts +18 -18
  101. package/dist/offices/offices.contract.d.ts +24 -24
  102. package/dist/outreach/__tests__/outreach-contract-additions.spec.js +27 -0
  103. package/dist/outreach/lab-outreach.contract.d.ts +48 -48
  104. package/dist/outreach/outreach-requests.contract.d.ts +272 -272
  105. package/dist/outreach/outreach-requests.schemas.d.ts +14 -14
  106. package/dist/outreach/outreach.contract.d.ts +12 -12
  107. package/dist/outreach/outreach.schemas.d.ts +2 -2
  108. package/dist/outreach/relay-hub-outreach.contract.d.ts +1156 -0
  109. package/dist/outreach/relay-hub-outreach.contract.d.ts.map +1 -0
  110. package/dist/outreach/relay-hub-outreach.contract.js +103 -0
  111. package/dist/outreach/relay-hub-outreach.contract.spec.d.ts +2 -0
  112. package/dist/outreach/relay-hub-outreach.contract.spec.d.ts.map +1 -0
  113. package/dist/outreach/relay-hub-outreach.contract.spec.js +119 -0
  114. package/dist/own-research/own-research.contract.d.ts +708 -708
  115. package/dist/proofs/proofs.contract.d.ts +196 -196
  116. package/dist/proofs/proofs.dtos.d.ts +104 -104
  117. package/dist/qualifications/qualifications.contract.d.ts +22 -22
  118. package/dist/realtime/realtime-telemetry.contract.d.ts +181 -0
  119. package/dist/realtime/realtime-telemetry.contract.d.ts.map +1 -0
  120. package/dist/realtime/realtime-telemetry.contract.js +81 -0
  121. package/dist/realtime/realtime-telemetry.contract.spec.d.ts +2 -0
  122. package/dist/realtime/realtime-telemetry.contract.spec.d.ts.map +1 -0
  123. package/dist/realtime/realtime-telemetry.contract.spec.js +41 -0
  124. package/dist/relay-pods/build-relay-pod-membership-rules.d.ts +9 -0
  125. package/dist/relay-pods/build-relay-pod-membership-rules.d.ts.map +1 -0
  126. package/dist/relay-pods/build-relay-pod-membership-rules.js +17 -0
  127. package/dist/relay-pods/build-relay-pod-membership-rules.spec.d.ts +2 -0
  128. package/dist/relay-pods/build-relay-pod-membership-rules.spec.d.ts.map +1 -0
  129. package/dist/relay-pods/build-relay-pod-membership-rules.spec.js +20 -0
  130. package/dist/relay-pods/relay-hub.contract.d.ts +1463 -0
  131. package/dist/relay-pods/relay-hub.contract.d.ts.map +1 -0
  132. package/dist/relay-pods/relay-hub.contract.js +140 -0
  133. package/dist/relay-pods/relay-hub.contract.spec.d.ts +2 -0
  134. package/dist/relay-pods/relay-hub.contract.spec.d.ts.map +1 -0
  135. package/dist/relay-pods/relay-hub.contract.spec.js +180 -0
  136. package/dist/relay-pods/relay-hub.schemas.d.ts +577 -0
  137. package/dist/relay-pods/relay-hub.schemas.d.ts.map +1 -0
  138. package/dist/relay-pods/relay-hub.schemas.js +158 -0
  139. package/dist/relay-pods/relay-lab-fleet.contract.d.ts +115 -86
  140. package/dist/relay-pods/relay-lab-fleet.contract.d.ts.map +1 -1
  141. package/dist/relay-pods/relay-lab-fleet.contract.spec.js +16 -0
  142. package/dist/relay-pods/relay-lab-fleet.schemas.d.ts +87 -58
  143. package/dist/relay-pods/relay-lab-fleet.schemas.d.ts.map +1 -1
  144. package/dist/relay-pods/relay-lab-fleet.schemas.js +22 -5
  145. package/dist/{curated-worker-leads/lead-agent-area.contract.d.ts → relay-pods/relay-pod-members.contract.d.ts} +233 -126
  146. package/dist/relay-pods/relay-pod-members.contract.d.ts.map +1 -0
  147. package/dist/relay-pods/relay-pod-members.contract.js +73 -0
  148. package/dist/relay-pods/relay-pod-sessions.contract.d.ts +58 -58
  149. package/dist/relay-pods/relay-pods.contract.d.ts +169 -169
  150. package/dist/relay-pods/relay-pods.schemas.d.ts +46 -46
  151. package/dist/shared/summary-schemas.d.ts +10 -10
  152. package/dist/sheets-sync/__tests__/sheets-sync-events.schemas.test.js +22 -2
  153. package/dist/sheets-sync/sheets-sync-events.schemas.d.ts +30 -0
  154. package/dist/sheets-sync/sheets-sync-events.schemas.d.ts.map +1 -1
  155. package/dist/sheets-sync/sheets-sync-events.schemas.js +16 -1
  156. package/dist/sheets-sync/sheets-sync.contract.d.ts +829 -262
  157. package/dist/sheets-sync/sheets-sync.contract.d.ts.map +1 -1
  158. package/dist/sheets-sync/sheets-sync.contract.js +156 -34
  159. package/dist/telegram/telegram.contract.d.ts +12 -12
  160. package/dist/trades/trades.contract.d.ts +16 -16
  161. package/dist/user-access-grants/user-access-grants.contract.d.ts +226 -226
  162. package/dist/users/__tests__/assignable-roles.spec.js +1 -1
  163. package/dist/users/users.contract.d.ts +327 -325
  164. package/dist/users/users.contract.d.ts.map +1 -1
  165. package/dist/users/users.contract.js +10 -7
  166. package/dist/users/users.contract.spec.js +15 -0
  167. package/dist/voice-screener/voice-screener.contract.d.ts +237 -0
  168. package/dist/voice-screener/voice-screener.contract.d.ts.map +1 -0
  169. package/dist/voice-screener/voice-screener.contract.js +89 -0
  170. package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts +500 -260
  171. package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts.map +1 -1
  172. package/dist/worker-identity-cases/worker-identity-cases.contract.js +17 -1
  173. package/dist/worker-merge-proposals/worker-merge-proposals.contract.d.ts +130 -130
  174. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.contract.d.ts +35 -35
  175. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.schemas.d.ts +15 -15
  176. package/dist/workers/do-not-contact.contract.d.ts +4 -4
  177. package/dist/workers/qualification-back-proof.spec.d.ts +2 -0
  178. package/dist/workers/qualification-back-proof.spec.d.ts.map +1 -0
  179. package/dist/workers/qualification-back-proof.spec.js +39 -0
  180. package/dist/workers/workers.contract.d.ts +1969 -1775
  181. package/dist/workers/workers.contract.d.ts.map +1 -1
  182. package/dist/workers/workers.contract.js +5 -0
  183. package/package.json +1 -1
  184. package/dist/curated-worker-leads/consent-queue.contract.d.ts +0 -4527
  185. package/dist/curated-worker-leads/consent-queue.contract.d.ts.map +0 -1
  186. package/dist/curated-worker-leads/consent-queue.contract.js +0 -201
  187. package/dist/curated-worker-leads/curated-worker-leads.contract.d.ts +0 -135
  188. package/dist/curated-worker-leads/curated-worker-leads.contract.d.ts.map +0 -1
  189. package/dist/curated-worker-leads/curated-worker-leads.contract.js +0 -32
  190. package/dist/curated-worker-leads/lead-agent-area.contract.d.ts.map +0 -1
  191. package/dist/curated-worker-leads/lead-agent-area.contract.js +0 -51
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-hub-outreach.contract.d.ts","sourceRoot":"","sources":["../../contracts/outreach/relay-hub-outreach.contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0BxB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFpC,CAAC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.relayHubOutreachContract = void 0;
4
+ const core_1 = require("@ts-rest/core");
5
+ const zod_1 = require("zod");
6
+ const error_schemas_1 = require("../common/error-schemas");
7
+ const relay_hub_schemas_1 = require("../relay-pods/relay-hub.schemas");
8
+ const c = (0, core_1.initContract)();
9
+ const RelayHubOutreachPathParamsSchema = zod_1.z
10
+ .object({
11
+ id: zod_1.z.string().uuid(),
12
+ })
13
+ .strict();
14
+ const RelayHubOutreachProgressMutationSchema = relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema.extend({
15
+ progress: zod_1.z.number().min(0).max(1).optional(),
16
+ }).strict();
17
+ const RelayHubOutreachFailureMutationSchema = relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema.extend({
18
+ reason: zod_1.z.string().min(1),
19
+ }).strict();
20
+ exports.relayHubOutreachContract = c.router({
21
+ list: {
22
+ method: 'GET',
23
+ path: '',
24
+ responses: {
25
+ 200: zod_1.z.array(relay_hub_schemas_1.RelayHubOutreachQueueItemSchema),
26
+ },
27
+ summary: 'List Relay Hub outreach work assigned to a pod',
28
+ metadata: { tags: ['Relay Hub Outreach'] },
29
+ },
30
+ claim: {
31
+ method: 'POST',
32
+ path: '/:id/claim',
33
+ pathParams: RelayHubOutreachPathParamsSchema,
34
+ body: relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema,
35
+ responses: {
36
+ 200: relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema,
37
+ 404: error_schemas_1.ErrorResponseSchema,
38
+ 409: error_schemas_1.ErrorResponseSchema,
39
+ },
40
+ summary: 'Claim immutable Relay Hub outreach work',
41
+ metadata: { tags: ['Relay Hub Outreach'] },
42
+ },
43
+ accept: {
44
+ method: 'POST',
45
+ path: '/:id/accept',
46
+ pathParams: RelayHubOutreachPathParamsSchema,
47
+ body: relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema,
48
+ responses: {
49
+ 200: relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema,
50
+ 404: error_schemas_1.ErrorResponseSchema,
51
+ 409: error_schemas_1.ErrorResponseSchema,
52
+ },
53
+ summary: 'Accept immutable Relay Hub outreach work',
54
+ metadata: { tags: ['Relay Hub Outreach'] },
55
+ },
56
+ progress: {
57
+ method: 'POST',
58
+ path: '/:id/progress',
59
+ pathParams: RelayHubOutreachPathParamsSchema,
60
+ body: RelayHubOutreachProgressMutationSchema,
61
+ responses: {
62
+ 200: relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema,
63
+ 404: error_schemas_1.ErrorResponseSchema,
64
+ 409: error_schemas_1.ErrorResponseSchema,
65
+ },
66
+ summary: 'Record Relay Hub outreach progress',
67
+ metadata: { tags: ['Relay Hub Outreach'] },
68
+ },
69
+ complete: {
70
+ method: 'POST',
71
+ path: '/:id/complete',
72
+ pathParams: RelayHubOutreachPathParamsSchema,
73
+ body: relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema,
74
+ responses: {
75
+ 200: relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema,
76
+ 404: error_schemas_1.ErrorResponseSchema,
77
+ 409: error_schemas_1.ErrorResponseSchema,
78
+ },
79
+ summary: 'Complete immutable Relay Hub outreach work',
80
+ metadata: { tags: ['Relay Hub Outreach'] },
81
+ },
82
+ fail: {
83
+ method: 'POST',
84
+ path: '/:id/fail',
85
+ pathParams: RelayHubOutreachPathParamsSchema,
86
+ body: RelayHubOutreachFailureMutationSchema,
87
+ responses: {
88
+ 200: relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema,
89
+ 404: error_schemas_1.ErrorResponseSchema,
90
+ 409: error_schemas_1.ErrorResponseSchema,
91
+ },
92
+ summary: 'Fail immutable Relay Hub outreach work',
93
+ metadata: { tags: ['Relay Hub Outreach'] },
94
+ },
95
+ }, {
96
+ pathPrefix: '/v3/relay-hub/outreach',
97
+ commonResponses: {
98
+ 400: error_schemas_1.ErrorResponseSchema,
99
+ 401: error_schemas_1.ErrorResponseSchema,
100
+ 403: error_schemas_1.ErrorResponseSchema,
101
+ 500: error_schemas_1.ErrorResponseSchema,
102
+ },
103
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=relay-hub-outreach.contract.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-hub-outreach.contract.spec.d.ts","sourceRoot":"","sources":["../../contracts/outreach/relay-hub-outreach.contract.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bun_test_1 = require("bun:test");
4
+ const index_1 = require("../index");
5
+ const relay_hub_schemas_1 = require("../relay-pods/relay-hub.schemas");
6
+ const relay_hub_outreach_contract_1 = require("./relay-hub-outreach.contract");
7
+ const requestId = '11111111-1111-4111-8111-111111111111';
8
+ const podId = '22222222-2222-4222-8222-222222222222';
9
+ const idempotencyKey = '33333333-3333-4333-8333-333333333333';
10
+ const correlationId = '44444444-4444-4444-8444-444444444444';
11
+ (0, bun_test_1.describe)('Relay Hub outreach schemas', () => {
12
+ (0, bun_test_1.it)('requires every queue item to remain assigned to one concrete pod', () => {
13
+ (0, bun_test_1.expect)(relay_hub_schemas_1.RelayHubOutreachQueueItemSchema.parse({
14
+ id: requestId,
15
+ assignedPodId: podId,
16
+ lifecycle: 'QUEUED',
17
+ lifecycleVersion: 0,
18
+ requestedAt: '2026-08-16T10:00:00.000Z',
19
+ }).assignedPodId).toBe(podId);
20
+ (0, bun_test_1.expect)(() => relay_hub_schemas_1.RelayHubOutreachQueueItemSchema.parse({
21
+ id: requestId,
22
+ assignedPodId: null,
23
+ lifecycle: 'QUEUED',
24
+ lifecycleVersion: 0,
25
+ requestedAt: '2026-08-16T10:00:00.000Z',
26
+ })).toThrow();
27
+ });
28
+ (0, bun_test_1.it)('composes immutable assignment with shared mutation metadata for lifecycle writes', () => {
29
+ (0, bun_test_1.expect)(relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema.safeParse({
30
+ assignedPodId: podId,
31
+ idempotencyKey,
32
+ correlationId,
33
+ expectedVersion: 0,
34
+ }).success).toBe(true);
35
+ (0, bun_test_1.expect)(relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema.safeParse({
36
+ idempotencyKey,
37
+ correlationId,
38
+ expectedVersion: 0,
39
+ }).success).toBe(false);
40
+ (0, bun_test_1.expect)(relay_hub_schemas_1.RelayHubOutreachLifecycleMutationSchema.safeParse({
41
+ assignedPodId: null,
42
+ idempotencyKey,
43
+ correlationId,
44
+ expectedVersion: 0,
45
+ }).success).toBe(false);
46
+ });
47
+ (0, bun_test_1.it)('requires the committed lifecycle version in lifecycle responses', () => {
48
+ const response = {
49
+ id: requestId,
50
+ assignedPodId: podId,
51
+ lifecycle: 'CLAIMED',
52
+ lifecycleVersion: 1,
53
+ committedAt: '2026-08-16T10:05:00.000Z',
54
+ };
55
+ (0, bun_test_1.expect)(relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema.parse(response).lifecycleVersion).toBe(1);
56
+ (0, bun_test_1.expect)(relay_hub_schemas_1.RelayHubOutreachLifecycleResponseSchema.safeParse({
57
+ id: response.id,
58
+ assignedPodId: response.assignedPodId,
59
+ lifecycle: response.lifecycle,
60
+ committedAt: response.committedAt,
61
+ }).success).toBe(false);
62
+ });
63
+ });
64
+ (0, bun_test_1.describe)('relayHubOutreachContract routes', () => {
65
+ for (const [routeName, bodySchema, routeFields] of [
66
+ ['claim', relay_hub_outreach_contract_1.relayHubOutreachContract.claim.body, {}],
67
+ ['accept', relay_hub_outreach_contract_1.relayHubOutreachContract.accept.body, {}],
68
+ ['progress', relay_hub_outreach_contract_1.relayHubOutreachContract.progress.body, { progress: 0.5 }],
69
+ ['complete', relay_hub_outreach_contract_1.relayHubOutreachContract.complete.body, {}],
70
+ ['fail', relay_hub_outreach_contract_1.relayHubOutreachContract.fail.body, { reason: 'delivery failed' }],
71
+ ]) {
72
+ (0, bun_test_1.it)(`${routeName} requires one non-null assigned pod`, () => {
73
+ const mutation = {
74
+ idempotencyKey,
75
+ correlationId,
76
+ expectedVersion: 0,
77
+ ...routeFields,
78
+ };
79
+ (0, bun_test_1.expect)(bodySchema.safeParse(mutation).success).toBe(false);
80
+ (0, bun_test_1.expect)(bodySchema.safeParse({ ...mutation, assignedPodId: null }).success).toBe(false);
81
+ (0, bun_test_1.expect)(bodySchema.safeParse({ ...mutation, assignedPodId: podId }).success).toBe(true);
82
+ });
83
+ }
84
+ (0, bun_test_1.it)('publishes the immutable single-pod lifecycle without reassignment or Lab route arrays', () => {
85
+ (0, bun_test_1.expect)(Object.keys(relay_hub_outreach_contract_1.relayHubOutreachContract)).toEqual([
86
+ 'list',
87
+ 'claim',
88
+ 'accept',
89
+ 'progress',
90
+ 'complete',
91
+ 'fail',
92
+ ]);
93
+ (0, bun_test_1.expect)(relay_hub_outreach_contract_1.relayHubOutreachContract.list).toMatchObject({
94
+ method: 'GET',
95
+ path: '/v3/relay-hub/outreach',
96
+ });
97
+ (0, bun_test_1.expect)(relay_hub_outreach_contract_1.relayHubOutreachContract.claim).toMatchObject({
98
+ method: 'POST',
99
+ path: '/v3/relay-hub/outreach/:id/claim',
100
+ });
101
+ (0, bun_test_1.expect)(relay_hub_outreach_contract_1.relayHubOutreachContract.accept).toMatchObject({
102
+ method: 'POST',
103
+ path: '/v3/relay-hub/outreach/:id/accept',
104
+ });
105
+ (0, bun_test_1.expect)(relay_hub_outreach_contract_1.relayHubOutreachContract.progress).toMatchObject({
106
+ method: 'POST',
107
+ path: '/v3/relay-hub/outreach/:id/progress',
108
+ });
109
+ (0, bun_test_1.expect)(relay_hub_outreach_contract_1.relayHubOutreachContract.complete).toMatchObject({
110
+ method: 'POST',
111
+ path: '/v3/relay-hub/outreach/:id/complete',
112
+ });
113
+ (0, bun_test_1.expect)(relay_hub_outreach_contract_1.relayHubOutreachContract.fail).toMatchObject({
114
+ method: 'POST',
115
+ path: '/v3/relay-hub/outreach/:id/fail',
116
+ });
117
+ (0, bun_test_1.expect)(index_1.apiContractRouter.RelayHubOutreach.claim.path).toBe('/v3/relay-hub/outreach/:id/claim');
118
+ });
119
+ });