@numa-tech/numa 1.13.4 → 1.14.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 (90) hide show
  1. package/README.md +140 -26
  2. package/dist/application-onboarding/client.d.ts +1 -0
  3. package/dist/application-onboarding/commands.d.ts +2 -0
  4. package/dist/application-onboarding/commands.js +41 -16
  5. package/dist/application-onboarding/commands.js.map +1 -1
  6. package/dist/application-onboarding/errors.js +1 -1
  7. package/dist/application-onboarding/errors.js.map +1 -1
  8. package/dist/application-onboarding/schemas.d.ts +8 -0
  9. package/dist/application-onboarding/schemas.js +4 -2
  10. package/dist/application-onboarding/schemas.js.map +1 -1
  11. package/dist/application-onboarding/scm-credentials.d.ts +5 -2
  12. package/dist/application-onboarding/scm-credentials.js +64 -13
  13. package/dist/application-onboarding/scm-credentials.js.map +1 -1
  14. package/dist/cli.js +4 -2
  15. package/dist/cli.js.map +1 -1
  16. package/dist/command-catalog.js +252 -15
  17. package/dist/command-catalog.js.map +1 -1
  18. package/dist/integration-bootstrap/client.d.ts +23 -0
  19. package/dist/integration-bootstrap/client.js +124 -0
  20. package/dist/integration-bootstrap/client.js.map +1 -0
  21. package/dist/integration-bootstrap/commands.d.ts +20 -0
  22. package/dist/integration-bootstrap/commands.js +129 -0
  23. package/dist/integration-bootstrap/commands.js.map +1 -0
  24. package/dist/integration-bootstrap/schemas.d.ts +422 -0
  25. package/dist/integration-bootstrap/schemas.js +216 -0
  26. package/dist/integration-bootstrap/schemas.js.map +1 -0
  27. package/dist/jenkins/commands.d.ts +10 -0
  28. package/dist/jenkins/commands.js +15 -0
  29. package/dist/jenkins/commands.js.map +1 -0
  30. package/dist/jenkins-jobs/client.d.ts +12 -12
  31. package/dist/jenkins-jobs/schemas.d.ts +96 -8
  32. package/dist/jenkins-jobs/schemas.js +2 -2
  33. package/dist/jenkins-jobs/schemas.js.map +1 -1
  34. package/dist/pipeline/client.d.ts +5 -0
  35. package/dist/pipeline/commands.js +2 -0
  36. package/dist/pipeline/commands.js.map +1 -1
  37. package/dist/pipeline/schemas.d.ts +6 -0
  38. package/dist/pipeline/schemas.js +2 -0
  39. package/dist/pipeline/schemas.js.map +1 -1
  40. package/dist/platform-build-job-replans/client.d.ts +283 -0
  41. package/dist/platform-build-job-replans/client.js +148 -0
  42. package/dist/platform-build-job-replans/client.js.map +1 -0
  43. package/dist/platform-build-job-replans/commands.d.ts +6 -0
  44. package/dist/platform-build-job-replans/commands.js +371 -0
  45. package/dist/platform-build-job-replans/commands.js.map +1 -0
  46. package/dist/platform-build-job-replans/schemas.d.ts +145 -0
  47. package/dist/platform-build-job-replans/schemas.js +150 -0
  48. package/dist/platform-build-job-replans/schemas.js.map +1 -0
  49. package/dist/platform-build-rollouts/client.d.ts +346 -0
  50. package/dist/platform-build-rollouts/client.js +153 -0
  51. package/dist/platform-build-rollouts/client.js.map +1 -0
  52. package/dist/platform-build-rollouts/commands.d.ts +98 -0
  53. package/dist/platform-build-rollouts/commands.js +465 -0
  54. package/dist/platform-build-rollouts/commands.js.map +1 -0
  55. package/dist/platform-build-rollouts/schemas.d.ts +348 -0
  56. package/dist/platform-build-rollouts/schemas.js +257 -0
  57. package/dist/platform-build-rollouts/schemas.js.map +1 -0
  58. package/dist/platform-builds/client.d.ts +147 -0
  59. package/dist/platform-builds/client.js +115 -0
  60. package/dist/platform-builds/client.js.map +1 -0
  61. package/dist/platform-builds/commands.d.ts +7 -0
  62. package/dist/platform-builds/commands.js +226 -0
  63. package/dist/platform-builds/commands.js.map +1 -0
  64. package/dist/platform-builds/schemas.d.ts +127 -0
  65. package/dist/platform-builds/schemas.js +66 -0
  66. package/dist/platform-builds/schemas.js.map +1 -0
  67. package/dist/publications/client.d.ts +30 -0
  68. package/dist/publications/client.js +6 -1
  69. package/dist/publications/client.js.map +1 -1
  70. package/dist/publications/commands.d.ts +2 -0
  71. package/dist/publications/commands.js +84 -5
  72. package/dist/publications/commands.js.map +1 -1
  73. package/dist/repositories/client.d.ts +6 -0
  74. package/dist/repositories/commands.d.ts +3 -1
  75. package/dist/repositories/commands.js +22 -8
  76. package/dist/repositories/commands.js.map +1 -1
  77. package/dist/repositories/errors.d.ts +2 -1
  78. package/dist/repositories/errors.js +4 -2
  79. package/dist/repositories/errors.js.map +1 -1
  80. package/dist/repositories/schemas.d.ts +32 -0
  81. package/dist/repositories/schemas.js +4 -0
  82. package/dist/repositories/schemas.js.map +1 -1
  83. package/package.json +4 -4
  84. package/skills/numa-create-application/SKILL.md +26 -13
  85. package/skills/numa-create-application/agents/openai.yaml +2 -2
  86. package/skills/numa-create-application/evals/evals.json +72 -12
  87. package/skills/numa-create-application/references/checklist.md +12 -5
  88. package/skills/numa-create-application/references/numa-cli.md +55 -13
  89. package/skills/numa-create-application/references/promote-workflows.md +63 -24
  90. package/skills/numa-create-application/scripts/inspect-project.mjs +1 -0
@@ -0,0 +1,422 @@
1
+ import { z } from "zod";
2
+ export declare const IntegrationBootstrapSessionStatusSchema: z.ZodEnum<{
3
+ AUTHORIZING: "AUTHORIZING";
4
+ AWAITING_AUTHORIZATION: "AWAITING_AUTHORIZATION";
5
+ EXPIRED: "EXPIRED";
6
+ FAILED: "FAILED";
7
+ INSPECTING: "INSPECTING";
8
+ SUCCEEDED: "SUCCEEDED";
9
+ }>;
10
+ export declare const IntegrationBootstrapPlanStateSchema: z.ZodEnum<{
11
+ BLOCKED: "BLOCKED";
12
+ READY: "READY";
13
+ }>;
14
+ export declare const IntegrationBootstrapRemoteStateSchema: z.ZodEnum<{
15
+ COLLISION: "COLLISION";
16
+ DRIFTED: "DRIFTED";
17
+ MATCHED: "MATCHED";
18
+ MISSING: "MISSING";
19
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
20
+ UNAVAILABLE: "UNAVAILABLE";
21
+ }>;
22
+ export declare const IntegrationBootstrapActionSchema: z.ZodEnum<{
23
+ BLOCKED: "BLOCKED";
24
+ CREATE: "CREATE";
25
+ GENERATE: "GENERATE";
26
+ GRANT: "GRANT";
27
+ NOOP: "NOOP";
28
+ ROTATE: "ROTATE";
29
+ UPDATE: "UPDATE";
30
+ }>;
31
+ export declare const IntegrationBootstrapComponentSchema: z.ZodEnum<{
32
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
33
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
34
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
35
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
36
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
37
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
38
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
39
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
40
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
41
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
42
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
43
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
44
+ }>;
45
+ export declare const IntegrationBootstrapChangeSchema: z.ZodObject<{
46
+ component: z.ZodEnum<{
47
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
48
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
49
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
50
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
51
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
52
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
53
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
54
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
55
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
56
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
57
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
58
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
59
+ }>;
60
+ action: z.ZodEnum<{
61
+ BLOCKED: "BLOCKED";
62
+ CREATE: "CREATE";
63
+ GENERATE: "GENERATE";
64
+ GRANT: "GRANT";
65
+ NOOP: "NOOP";
66
+ ROTATE: "ROTATE";
67
+ UPDATE: "UPDATE";
68
+ }>;
69
+ target: z.ZodString;
70
+ reasonCode: z.ZodString;
71
+ }, z.core.$strict>;
72
+ export declare const IntegrationBootstrapBlockerSchema: z.ZodObject<{
73
+ component: z.ZodEnum<{
74
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
75
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
76
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
77
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
78
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
79
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
80
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
81
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
82
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
83
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
84
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
85
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
86
+ }>;
87
+ target: z.ZodString;
88
+ reasonCode: z.ZodString;
89
+ }, z.core.$strict>;
90
+ export declare const IntegrationBootstrapJenkinsInstancePlanSchema: z.ZodObject<{
91
+ instanceId: z.ZodNumber;
92
+ instanceVersion: z.ZodNumber;
93
+ instanceCode: z.ZodLiteral<"numa">;
94
+ status: z.ZodString;
95
+ inventoryGeneration: z.ZodNumber;
96
+ inventorySnapshotDigest: z.ZodString;
97
+ adminCredentialRecordId: z.ZodNumber;
98
+ adminCredentialRecordVersion: z.ZodNumber;
99
+ adminCredentialRecordStatus: z.ZodString;
100
+ snapshotFolderState: z.ZodEnum<{
101
+ COLLISION: "COLLISION";
102
+ DRIFTED: "DRIFTED";
103
+ MATCHED: "MATCHED";
104
+ MISSING: "MISSING";
105
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
106
+ UNAVAILABLE: "UNAVAILABLE";
107
+ }>;
108
+ snapshotFolderAclDigest: z.ZodString;
109
+ snapshotFolderAction: z.ZodEnum<{
110
+ BLOCKED: "BLOCKED";
111
+ CREATE: "CREATE";
112
+ GENERATE: "GENERATE";
113
+ GRANT: "GRANT";
114
+ NOOP: "NOOP";
115
+ ROTATE: "ROTATE";
116
+ UPDATE: "UPDATE";
117
+ }>;
118
+ credentialState: z.ZodEnum<{
119
+ COLLISION: "COLLISION";
120
+ DRIFTED: "DRIFTED";
121
+ MATCHED: "MATCHED";
122
+ MISSING: "MISSING";
123
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
124
+ UNAVAILABLE: "UNAVAILABLE";
125
+ }>;
126
+ action: z.ZodEnum<{
127
+ BLOCKED: "BLOCKED";
128
+ CREATE: "CREATE";
129
+ GENERATE: "GENERATE";
130
+ GRANT: "GRANT";
131
+ NOOP: "NOOP";
132
+ ROTATE: "ROTATE";
133
+ UPDATE: "UPDATE";
134
+ }>;
135
+ }, z.core.$strict>;
136
+ export declare const IntegrationBootstrapPlanSchema: z.ZodObject<{
137
+ schemaVersion: z.ZodLiteral<"integration-bootstrap-plan/v1">;
138
+ profileCode: z.ZodLiteral<"JENKINS_GITOPS_IMAGE_WRITER">;
139
+ profileVersion: z.ZodLiteral<"1">;
140
+ profileDigest: z.ZodString;
141
+ state: z.ZodEnum<{
142
+ BLOCKED: "BLOCKED";
143
+ READY: "READY";
144
+ }>;
145
+ realm: z.ZodString;
146
+ serviceClientId: z.ZodLiteral<"mci-devops-platform-jenkins-gitops-writer">;
147
+ roleClientId: z.ZodLiteral<"mci-devops-platform">;
148
+ audience: z.ZodLiteral<"mci-devops-platform">;
149
+ roleName: z.ZodLiteral<"mci-devops-platform-gitops-image-writer">;
150
+ roleId: z.ZodNumber;
151
+ roleVersion: z.ZodNumber;
152
+ localRoleSnapshotDigest: z.ZodString;
153
+ credentialId: z.ZodLiteral<"mci-devops-platform-gitops-writer">;
154
+ credentialKind: z.ZodLiteral<"USERNAME_PASSWORD">;
155
+ credentialStore: z.ZodLiteral<"FOLDER_STORE">;
156
+ credentialFolderFullName: z.ZodLiteral<"mci-platform-snapshots">;
157
+ credentialDomain: z.ZodLiteral<"GLOBAL_DOMAIN">;
158
+ credentialScope: z.ZodLiteral<"GLOBAL">;
159
+ credentialUsername: z.ZodLiteral<"mci-devops-platform-jenkins-gitops-writer">;
160
+ managedDescriptionMarker: z.ZodLiteral<"managed-by=mci-devops-platform;profile=jenkins-gitops-image-writer/v1">;
161
+ keycloakSnapshotDigest: z.ZodString;
162
+ jenkinsInventorySnapshotDigest: z.ZodString;
163
+ jenkinsInstance: z.ZodObject<{
164
+ instanceId: z.ZodNumber;
165
+ instanceVersion: z.ZodNumber;
166
+ instanceCode: z.ZodLiteral<"numa">;
167
+ status: z.ZodString;
168
+ inventoryGeneration: z.ZodNumber;
169
+ inventorySnapshotDigest: z.ZodString;
170
+ adminCredentialRecordId: z.ZodNumber;
171
+ adminCredentialRecordVersion: z.ZodNumber;
172
+ adminCredentialRecordStatus: z.ZodString;
173
+ snapshotFolderState: z.ZodEnum<{
174
+ COLLISION: "COLLISION";
175
+ DRIFTED: "DRIFTED";
176
+ MATCHED: "MATCHED";
177
+ MISSING: "MISSING";
178
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
179
+ UNAVAILABLE: "UNAVAILABLE";
180
+ }>;
181
+ snapshotFolderAclDigest: z.ZodString;
182
+ snapshotFolderAction: z.ZodEnum<{
183
+ BLOCKED: "BLOCKED";
184
+ CREATE: "CREATE";
185
+ GENERATE: "GENERATE";
186
+ GRANT: "GRANT";
187
+ NOOP: "NOOP";
188
+ ROTATE: "ROTATE";
189
+ UPDATE: "UPDATE";
190
+ }>;
191
+ credentialState: z.ZodEnum<{
192
+ COLLISION: "COLLISION";
193
+ DRIFTED: "DRIFTED";
194
+ MATCHED: "MATCHED";
195
+ MISSING: "MISSING";
196
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
197
+ UNAVAILABLE: "UNAVAILABLE";
198
+ }>;
199
+ action: z.ZodEnum<{
200
+ BLOCKED: "BLOCKED";
201
+ CREATE: "CREATE";
202
+ GENERATE: "GENERATE";
203
+ GRANT: "GRANT";
204
+ NOOP: "NOOP";
205
+ ROTATE: "ROTATE";
206
+ UPDATE: "UPDATE";
207
+ }>;
208
+ }, z.core.$strict>;
209
+ changes: z.ZodArray<z.ZodObject<{
210
+ component: z.ZodEnum<{
211
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
212
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
213
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
214
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
215
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
216
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
217
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
218
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
219
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
220
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
221
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
222
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
223
+ }>;
224
+ action: z.ZodEnum<{
225
+ BLOCKED: "BLOCKED";
226
+ CREATE: "CREATE";
227
+ GENERATE: "GENERATE";
228
+ GRANT: "GRANT";
229
+ NOOP: "NOOP";
230
+ ROTATE: "ROTATE";
231
+ UPDATE: "UPDATE";
232
+ }>;
233
+ target: z.ZodString;
234
+ reasonCode: z.ZodString;
235
+ }, z.core.$strict>>;
236
+ blockers: z.ZodArray<z.ZodObject<{
237
+ component: z.ZodEnum<{
238
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
239
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
240
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
241
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
242
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
243
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
244
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
245
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
246
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
247
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
248
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
249
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
250
+ }>;
251
+ target: z.ZodString;
252
+ reasonCode: z.ZodString;
253
+ }, z.core.$strict>>;
254
+ authorizationSessionNo: z.ZodString;
255
+ platformActor: z.ZodString;
256
+ bootstrapSubject: z.ZodString;
257
+ bootstrapUsername: z.ZodString;
258
+ reviewedAt: z.ZodString;
259
+ reviewExpiresAt: z.ZodString;
260
+ planDigest: z.ZodString;
261
+ }, z.core.$strict>;
262
+ export declare const IntegrationBootstrapStartSchema: z.ZodObject<{
263
+ sessionNo: z.ZodString;
264
+ profileCode: z.ZodLiteral<"JENKINS_GITOPS_IMAGE_WRITER">;
265
+ status: z.ZodEnum<{
266
+ AUTHORIZING: "AUTHORIZING";
267
+ AWAITING_AUTHORIZATION: "AWAITING_AUTHORIZATION";
268
+ EXPIRED: "EXPIRED";
269
+ FAILED: "FAILED";
270
+ INSPECTING: "INSPECTING";
271
+ SUCCEEDED: "SUCCEEDED";
272
+ }>;
273
+ loginUrl: z.ZodNullable<z.ZodString>;
274
+ expiresAt: z.ZodString;
275
+ }, z.core.$strict>;
276
+ export declare const IntegrationBootstrapSessionSchema: z.ZodObject<{
277
+ sessionNo: z.ZodString;
278
+ profileCode: z.ZodLiteral<"JENKINS_GITOPS_IMAGE_WRITER">;
279
+ status: z.ZodEnum<{
280
+ AUTHORIZING: "AUTHORIZING";
281
+ AWAITING_AUTHORIZATION: "AWAITING_AUTHORIZATION";
282
+ EXPIRED: "EXPIRED";
283
+ FAILED: "FAILED";
284
+ INSPECTING: "INSPECTING";
285
+ SUCCEEDED: "SUCCEEDED";
286
+ }>;
287
+ loginUrl: z.ZodNullable<z.ZodString>;
288
+ plan: z.ZodNullable<z.ZodObject<{
289
+ schemaVersion: z.ZodLiteral<"integration-bootstrap-plan/v1">;
290
+ profileCode: z.ZodLiteral<"JENKINS_GITOPS_IMAGE_WRITER">;
291
+ profileVersion: z.ZodLiteral<"1">;
292
+ profileDigest: z.ZodString;
293
+ state: z.ZodEnum<{
294
+ BLOCKED: "BLOCKED";
295
+ READY: "READY";
296
+ }>;
297
+ realm: z.ZodString;
298
+ serviceClientId: z.ZodLiteral<"mci-devops-platform-jenkins-gitops-writer">;
299
+ roleClientId: z.ZodLiteral<"mci-devops-platform">;
300
+ audience: z.ZodLiteral<"mci-devops-platform">;
301
+ roleName: z.ZodLiteral<"mci-devops-platform-gitops-image-writer">;
302
+ roleId: z.ZodNumber;
303
+ roleVersion: z.ZodNumber;
304
+ localRoleSnapshotDigest: z.ZodString;
305
+ credentialId: z.ZodLiteral<"mci-devops-platform-gitops-writer">;
306
+ credentialKind: z.ZodLiteral<"USERNAME_PASSWORD">;
307
+ credentialStore: z.ZodLiteral<"FOLDER_STORE">;
308
+ credentialFolderFullName: z.ZodLiteral<"mci-platform-snapshots">;
309
+ credentialDomain: z.ZodLiteral<"GLOBAL_DOMAIN">;
310
+ credentialScope: z.ZodLiteral<"GLOBAL">;
311
+ credentialUsername: z.ZodLiteral<"mci-devops-platform-jenkins-gitops-writer">;
312
+ managedDescriptionMarker: z.ZodLiteral<"managed-by=mci-devops-platform;profile=jenkins-gitops-image-writer/v1">;
313
+ keycloakSnapshotDigest: z.ZodString;
314
+ jenkinsInventorySnapshotDigest: z.ZodString;
315
+ jenkinsInstance: z.ZodObject<{
316
+ instanceId: z.ZodNumber;
317
+ instanceVersion: z.ZodNumber;
318
+ instanceCode: z.ZodLiteral<"numa">;
319
+ status: z.ZodString;
320
+ inventoryGeneration: z.ZodNumber;
321
+ inventorySnapshotDigest: z.ZodString;
322
+ adminCredentialRecordId: z.ZodNumber;
323
+ adminCredentialRecordVersion: z.ZodNumber;
324
+ adminCredentialRecordStatus: z.ZodString;
325
+ snapshotFolderState: z.ZodEnum<{
326
+ COLLISION: "COLLISION";
327
+ DRIFTED: "DRIFTED";
328
+ MATCHED: "MATCHED";
329
+ MISSING: "MISSING";
330
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
331
+ UNAVAILABLE: "UNAVAILABLE";
332
+ }>;
333
+ snapshotFolderAclDigest: z.ZodString;
334
+ snapshotFolderAction: z.ZodEnum<{
335
+ BLOCKED: "BLOCKED";
336
+ CREATE: "CREATE";
337
+ GENERATE: "GENERATE";
338
+ GRANT: "GRANT";
339
+ NOOP: "NOOP";
340
+ ROTATE: "ROTATE";
341
+ UPDATE: "UPDATE";
342
+ }>;
343
+ credentialState: z.ZodEnum<{
344
+ COLLISION: "COLLISION";
345
+ DRIFTED: "DRIFTED";
346
+ MATCHED: "MATCHED";
347
+ MISSING: "MISSING";
348
+ PRESENT_UNVERIFIED: "PRESENT_UNVERIFIED";
349
+ UNAVAILABLE: "UNAVAILABLE";
350
+ }>;
351
+ action: z.ZodEnum<{
352
+ BLOCKED: "BLOCKED";
353
+ CREATE: "CREATE";
354
+ GENERATE: "GENERATE";
355
+ GRANT: "GRANT";
356
+ NOOP: "NOOP";
357
+ ROTATE: "ROTATE";
358
+ UPDATE: "UPDATE";
359
+ }>;
360
+ }, z.core.$strict>;
361
+ changes: z.ZodArray<z.ZodObject<{
362
+ component: z.ZodEnum<{
363
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
364
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
365
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
366
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
367
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
368
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
369
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
370
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
371
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
372
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
373
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
374
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
375
+ }>;
376
+ action: z.ZodEnum<{
377
+ BLOCKED: "BLOCKED";
378
+ CREATE: "CREATE";
379
+ GENERATE: "GENERATE";
380
+ GRANT: "GRANT";
381
+ NOOP: "NOOP";
382
+ ROTATE: "ROTATE";
383
+ UPDATE: "UPDATE";
384
+ }>;
385
+ target: z.ZodString;
386
+ reasonCode: z.ZodString;
387
+ }, z.core.$strict>>;
388
+ blockers: z.ZodArray<z.ZodObject<{
389
+ component: z.ZodEnum<{
390
+ JENKINS_SNAPSHOT_FOLDER: "JENKINS_SNAPSHOT_FOLDER";
391
+ JENKINS_SNAPSHOT_FOLDER_ACL: "JENKINS_SNAPSHOT_FOLDER_ACL";
392
+ JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT: "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT";
393
+ JENKINS_WRITER_CREDENTIAL: "JENKINS_WRITER_CREDENTIAL";
394
+ KEYCLOAK_AUDIENCE_MAPPER: "KEYCLOAK_AUDIENCE_MAPPER";
395
+ KEYCLOAK_CLIENT_ROLE: "KEYCLOAK_CLIENT_ROLE";
396
+ KEYCLOAK_CLIENT_SCOPE_CONTRACT: "KEYCLOAK_CLIENT_SCOPE_CONTRACT";
397
+ KEYCLOAK_ROLE_CLAIM_MAPPER: "KEYCLOAK_ROLE_CLAIM_MAPPER";
398
+ KEYCLOAK_ROLE_CLIENT: "KEYCLOAK_ROLE_CLIENT";
399
+ KEYCLOAK_ROLE_GRANT: "KEYCLOAK_ROLE_GRANT";
400
+ KEYCLOAK_SERVICE_CLIENT: "KEYCLOAK_SERVICE_CLIENT";
401
+ KEYCLOAK_SERVICE_CREDENTIAL: "KEYCLOAK_SERVICE_CREDENTIAL";
402
+ }>;
403
+ target: z.ZodString;
404
+ reasonCode: z.ZodString;
405
+ }, z.core.$strict>>;
406
+ authorizationSessionNo: z.ZodString;
407
+ platformActor: z.ZodString;
408
+ bootstrapSubject: z.ZodString;
409
+ bootstrapUsername: z.ZodString;
410
+ reviewedAt: z.ZodString;
411
+ reviewExpiresAt: z.ZodString;
412
+ planDigest: z.ZodString;
413
+ }, z.core.$strict>>;
414
+ errorCode: z.ZodNullable<z.ZodString>;
415
+ errorSummary: z.ZodNullable<z.ZodString>;
416
+ createdAt: z.ZodString;
417
+ expiresAt: z.ZodString;
418
+ completedAt: z.ZodNullable<z.ZodString>;
419
+ }, z.core.$strict>;
420
+ export type IntegrationBootstrapStart = z.infer<typeof IntegrationBootstrapStartSchema>;
421
+ export type IntegrationBootstrapPlan = z.infer<typeof IntegrationBootstrapPlanSchema>;
422
+ export type IntegrationBootstrapSession = z.infer<typeof IntegrationBootstrapSessionSchema>;
@@ -0,0 +1,216 @@
1
+ import { z } from "zod";
2
+ const CONTROL_CHARACTERS = /[\u0000-\u001f\u007f]/u;
3
+ const SAFE_KEY = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/u;
4
+ const DIGEST = /^[a-f0-9]{64}$/u;
5
+ const SESSION_NO = /^ibps_[0-9a-f]{32}$/u;
6
+ const UUID = /(?:^|[^0-9a-f])[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:$|[^0-9a-f])/iu;
7
+ const safeText = (maximum) => z.string().min(1).max(maximum)
8
+ .refine((value) => value === value.trim() && !CONTROL_CHARACTERS.test(value), "leading/trailing whitespace and control characters are not allowed");
9
+ const safeKey = (maximum) => safeText(maximum).regex(SAFE_KEY);
10
+ const safePlanTarget = safeText(320).refine((value) => !/(?:https?:\/\/|@)/iu.test(value) && !UUID.test(value), "target cannot contain a URL, username, or UUID");
11
+ const digest = z.string().regex(DIGEST);
12
+ const instant = z.string().datetime({ offset: true });
13
+ const positiveInt64 = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
14
+ const nonnegativeInt64 = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
15
+ const nonnegativeInt32 = z.number().int().nonnegative().max(2_147_483_647);
16
+ const LoginUrlSchema = z.string().max(8_192).refine((value) => {
17
+ try {
18
+ const url = new URL(value);
19
+ const safeTransport = url.protocol === "https:"
20
+ || (url.protocol === "http:"
21
+ && ["127.0.0.1", "localhost", "[::1]"].includes(url.hostname));
22
+ return value === value.trim()
23
+ && safeTransport
24
+ && url.username === ""
25
+ && url.password === ""
26
+ && url.hash === "";
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ }, "loginUrl must be an absolute HTTP(S) URL without userinfo or fragment");
32
+ export const IntegrationBootstrapSessionStatusSchema = z.enum([
33
+ "AWAITING_AUTHORIZATION",
34
+ "AUTHORIZING",
35
+ "INSPECTING",
36
+ "SUCCEEDED",
37
+ "FAILED",
38
+ "EXPIRED"
39
+ ]);
40
+ export const IntegrationBootstrapPlanStateSchema = z.enum(["READY", "BLOCKED"]);
41
+ export const IntegrationBootstrapRemoteStateSchema = z.enum([
42
+ "MISSING",
43
+ "PRESENT_UNVERIFIED",
44
+ "MATCHED",
45
+ "DRIFTED",
46
+ "COLLISION",
47
+ "UNAVAILABLE"
48
+ ]);
49
+ export const IntegrationBootstrapActionSchema = z.enum([
50
+ "CREATE",
51
+ "UPDATE",
52
+ "GRANT",
53
+ "GENERATE",
54
+ "ROTATE",
55
+ "NOOP",
56
+ "BLOCKED"
57
+ ]);
58
+ export const IntegrationBootstrapComponentSchema = z.enum([
59
+ "KEYCLOAK_SERVICE_CLIENT",
60
+ "KEYCLOAK_SERVICE_CREDENTIAL",
61
+ "KEYCLOAK_ROLE_CLIENT",
62
+ "KEYCLOAK_CLIENT_ROLE",
63
+ "KEYCLOAK_AUDIENCE_MAPPER",
64
+ "KEYCLOAK_ROLE_CLAIM_MAPPER",
65
+ "KEYCLOAK_CLIENT_SCOPE_CONTRACT",
66
+ "KEYCLOAK_ROLE_GRANT",
67
+ "JENKINS_SNAPSHOT_FOLDER",
68
+ "JENKINS_SNAPSHOT_FOLDER_ACL",
69
+ "JENKINS_SNAPSHOT_FOLDER_CREDENTIAL_CONTRACT",
70
+ "JENKINS_WRITER_CREDENTIAL"
71
+ ]);
72
+ export const IntegrationBootstrapChangeSchema = z.object({
73
+ component: IntegrationBootstrapComponentSchema,
74
+ action: IntegrationBootstrapActionSchema,
75
+ target: safePlanTarget,
76
+ reasonCode: safeKey(160)
77
+ }).strict();
78
+ export const IntegrationBootstrapBlockerSchema = z.object({
79
+ component: IntegrationBootstrapComponentSchema,
80
+ target: safePlanTarget,
81
+ reasonCode: safeKey(160)
82
+ }).strict();
83
+ export const IntegrationBootstrapJenkinsInstancePlanSchema = z.object({
84
+ instanceId: positiveInt64,
85
+ instanceVersion: nonnegativeInt32,
86
+ instanceCode: z.literal("numa"),
87
+ status: safeKey(64),
88
+ inventoryGeneration: nonnegativeInt64,
89
+ inventorySnapshotDigest: digest,
90
+ adminCredentialRecordId: positiveInt64,
91
+ adminCredentialRecordVersion: nonnegativeInt32,
92
+ adminCredentialRecordStatus: safeKey(64),
93
+ snapshotFolderState: IntegrationBootstrapRemoteStateSchema,
94
+ snapshotFolderAclDigest: digest,
95
+ snapshotFolderAction: IntegrationBootstrapActionSchema,
96
+ credentialState: IntegrationBootstrapRemoteStateSchema,
97
+ action: IntegrationBootstrapActionSchema
98
+ }).strict();
99
+ export const IntegrationBootstrapPlanSchema = z.object({
100
+ schemaVersion: z.literal("integration-bootstrap-plan/v1"),
101
+ profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
102
+ profileVersion: z.literal("1"),
103
+ profileDigest: digest,
104
+ state: IntegrationBootstrapPlanStateSchema,
105
+ realm: safeKey(256),
106
+ serviceClientId: z.literal("mci-devops-platform-jenkins-gitops-writer"),
107
+ roleClientId: z.literal("mci-devops-platform"),
108
+ audience: z.literal("mci-devops-platform"),
109
+ roleName: z.literal("mci-devops-platform-gitops-image-writer"),
110
+ roleId: positiveInt64,
111
+ roleVersion: nonnegativeInt32,
112
+ localRoleSnapshotDigest: digest,
113
+ credentialId: z.literal("mci-devops-platform-gitops-writer"),
114
+ credentialKind: z.literal("USERNAME_PASSWORD"),
115
+ credentialStore: z.literal("FOLDER_STORE"),
116
+ credentialFolderFullName: z.literal("mci-platform-snapshots"),
117
+ credentialDomain: z.literal("GLOBAL_DOMAIN"),
118
+ credentialScope: z.literal("GLOBAL"),
119
+ credentialUsername: z.literal("mci-devops-platform-jenkins-gitops-writer"),
120
+ managedDescriptionMarker: z.literal("managed-by=mci-devops-platform;profile=jenkins-gitops-image-writer/v1"),
121
+ keycloakSnapshotDigest: digest,
122
+ jenkinsInventorySnapshotDigest: digest,
123
+ jenkinsInstance: IntegrationBootstrapJenkinsInstancePlanSchema,
124
+ changes: z.array(IntegrationBootstrapChangeSchema).max(64),
125
+ blockers: z.array(IntegrationBootstrapBlockerSchema).max(64),
126
+ authorizationSessionNo: z.string().regex(SESSION_NO),
127
+ platformActor: safeText(320),
128
+ bootstrapSubject: safeText(320),
129
+ bootstrapUsername: safeText(320),
130
+ reviewedAt: instant,
131
+ reviewExpiresAt: instant,
132
+ planDigest: digest
133
+ }).strict().superRefine((plan, context) => {
134
+ if (plan.state === "READY" && plan.blockers.length !== 0) {
135
+ context.addIssue({ code: "custom", path: ["blockers"], message: "READY plan cannot contain blockers" });
136
+ }
137
+ if (plan.state === "BLOCKED" && plan.blockers.length === 0) {
138
+ context.addIssue({ code: "custom", path: ["blockers"], message: "BLOCKED plan requires blockers" });
139
+ }
140
+ if (Date.parse(plan.reviewExpiresAt) <= Date.parse(plan.reviewedAt)) {
141
+ context.addIssue({
142
+ code: "custom",
143
+ path: ["reviewExpiresAt"],
144
+ message: "reviewExpiresAt must be later than reviewedAt"
145
+ });
146
+ }
147
+ });
148
+ export const IntegrationBootstrapStartSchema = z.object({
149
+ sessionNo: z.string().regex(SESSION_NO),
150
+ profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
151
+ status: IntegrationBootstrapSessionStatusSchema,
152
+ loginUrl: LoginUrlSchema.nullable(),
153
+ expiresAt: instant
154
+ }).strict().superRefine((started, context) => {
155
+ const awaiting = started.status === "AWAITING_AUTHORIZATION";
156
+ if (awaiting !== (started.loginUrl != null)) {
157
+ context.addIssue({
158
+ code: "custom",
159
+ path: ["loginUrl"],
160
+ message: "loginUrl is present only while awaiting authorization"
161
+ });
162
+ }
163
+ });
164
+ const IntegrationBootstrapSessionBaseSchema = z.object({
165
+ sessionNo: z.string().regex(SESSION_NO),
166
+ profileCode: z.literal("JENKINS_GITOPS_IMAGE_WRITER"),
167
+ status: IntegrationBootstrapSessionStatusSchema,
168
+ loginUrl: LoginUrlSchema.nullable(),
169
+ plan: IntegrationBootstrapPlanSchema.nullable(),
170
+ errorCode: safeKey(100).nullable(),
171
+ errorSummary: safeText(800).nullable(),
172
+ createdAt: instant,
173
+ expiresAt: instant,
174
+ completedAt: instant.nullable()
175
+ }).strict();
176
+ export const IntegrationBootstrapSessionSchema = IntegrationBootstrapSessionBaseSchema
177
+ .superRefine((session, context) => {
178
+ const issue = (path, message) => context.addIssue({
179
+ code: "custom",
180
+ path: [path],
181
+ message
182
+ });
183
+ if (session.plan != null && session.plan.authorizationSessionNo !== session.sessionNo) {
184
+ issue("plan", "plan authorizationSessionNo must match sessionNo");
185
+ }
186
+ switch (session.status) {
187
+ case "AWAITING_AUTHORIZATION":
188
+ if (session.loginUrl == null)
189
+ issue("loginUrl", "AWAITING_AUTHORIZATION requires loginUrl");
190
+ if (session.plan != null || session.errorCode != null || session.errorSummary != null
191
+ || session.completedAt != null)
192
+ issue("status", "AWAITING_AUTHORIZATION tuple is invalid");
193
+ break;
194
+ case "AUTHORIZING":
195
+ case "INSPECTING":
196
+ if (session.loginUrl != null || session.plan != null || session.errorCode != null
197
+ || session.errorSummary != null || session.completedAt != null) {
198
+ issue("status", `${session.status} tuple is invalid`);
199
+ }
200
+ break;
201
+ case "SUCCEEDED":
202
+ if (session.loginUrl != null || session.plan == null || session.errorCode != null
203
+ || session.errorSummary != null || session.completedAt == null) {
204
+ issue("status", "SUCCEEDED tuple is invalid");
205
+ }
206
+ break;
207
+ case "FAILED":
208
+ case "EXPIRED":
209
+ if (session.loginUrl != null || session.plan != null || session.errorCode == null
210
+ || session.errorSummary == null || session.completedAt == null) {
211
+ issue("status", `${session.status} tuple is invalid`);
212
+ }
213
+ break;
214
+ }
215
+ });
216
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/integration-bootstrap/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AACpD,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C,MAAM,IAAI,GAAG,yGAAyG,CAAC;AAEvH,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;KACjE,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EACpE,oEAAoE,CACrE,CAAC;AACJ,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACvE,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAClE,gDAAgD,CACjD,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC/E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACrF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAE3E,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ;eAC1C,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO;mBACvB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;eACxB,aAAa;eACb,GAAG,CAAC,QAAQ,KAAK,EAAE;eACnB,GAAG,CAAC,QAAQ,KAAK,EAAE;eACnB,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,EAAE,uEAAuE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5D,wBAAwB;IACxB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1D,SAAS;IACT,oBAAoB;IACpB,SAAS;IACT,SAAS;IACT,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,IAAI,CAAC;IACrD,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,UAAU;IACV,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,IAAI,CAAC;IACxD,yBAAyB;IACzB,6BAA6B;IAC7B,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,4BAA4B;IAC5B,gCAAgC;IAChC,qBAAqB;IACrB,yBAAyB;IACzB,6BAA6B;IAC7B,6CAA6C;IAC7C,2BAA2B;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,mCAAmC;IAC9C,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;CACzB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,SAAS,EAAE,mCAAmC;IAC9C,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;CACzB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6CAA6C,GAAG,CAAC,CAAC,MAAM,CAAC;IACpE,UAAU,EAAE,aAAa;IACzB,eAAe,EAAE,gBAAgB;IACjC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnB,mBAAmB,EAAE,gBAAgB;IACrC,uBAAuB,EAAE,MAAM;IAC/B,uBAAuB,EAAE,aAAa;IACtC,4BAA4B,EAAE,gBAAgB;IAC9C,2BAA2B,EAAE,OAAO,CAAC,EAAE,CAAC;IACxC,mBAAmB,EAAE,qCAAqC;IAC1D,uBAAuB,EAAE,MAAM;IAC/B,oBAAoB,EAAE,gCAAgC;IACtD,eAAe,EAAE,qCAAqC;IACtD,MAAM,EAAE,gCAAgC;CACzC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,aAAa,EAAE,MAAM;IACrB,KAAK,EAAE,mCAAmC;IAC1C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;IACnB,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC;IACvE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC;IAC9D,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,gBAAgB;IAC7B,uBAAuB,EAAE,MAAM;IAC/B,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC;IAC5D,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC1C,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAC5C,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC;IAC1E,wBAAwB,EAAE,CAAC,CAAC,OAAO,CACjC,uEAAuE,CACxE;IACD,sBAAsB,EAAE,MAAM;IAC9B,8BAA8B,EAAE,MAAM;IACtC,eAAe,EAAE,6CAA6C;IAC9D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5D,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACpD,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC/B,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC;IAChC,UAAU,EAAE,OAAO;IACnB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,MAAM;CACnB,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACxC,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,iBAAiB,CAAC;YACzB,OAAO,EAAE,+CAA+C;SACzD,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,MAAM,EAAE,uCAAuC;IAC/C,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,wBAAwB,CAAC;IAC7D,IAAI,QAAQ,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,OAAO,EAAE,uDAAuD;SACjE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACrD,MAAM,EAAE,uCAAuC;IAC/C,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,8BAA8B,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,qCAAqC;KACnF,WAAW,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAChC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,IAAI,CAAC;QACZ,OAAO;KACR,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;QACtF,KAAK,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAC;IACpE,CAAC;IACD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,wBAAwB;YAC3B,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;gBAAE,KAAK,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;YAC5F,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI;mBAC9E,OAAO,CAAC,WAAW,IAAI,IAAI;gBAAE,KAAK,CAAC,QAAQ,EAAE,yCAAyC,CAAC,CAAC;YAC/F,MAAM;QACR,KAAK,aAAa,CAAC;QACnB,KAAK,YAAY;YACf,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;mBAC1E,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;gBACnE,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;YACxD,CAAC;YACD,MAAM;QACR,KAAK,WAAW;YACd,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;mBAC1E,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;gBACnE,KAAK,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;YAChD,CAAC;YACD,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;mBAC1E,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;gBACnE,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;YACxD,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Command } from "commander";
2
+ import { type JenkinsJobCommandDependencies } from "../jenkins-jobs/commands.js";
3
+ import { type PlatformBuildRolloutCommandDependencies } from "../platform-build-rollouts/commands.js";
4
+ import { type PlatformBuildJobCommandDependencies } from "../platform-build-job-replans/commands.js";
5
+ export interface JenkinsCommandDependencies {
6
+ job?: JenkinsJobCommandDependencies;
7
+ platformBuildRollout?: PlatformBuildRolloutCommandDependencies;
8
+ platformBuildJob?: PlatformBuildJobCommandDependencies;
9
+ }
10
+ export declare function registerJenkinsCommands(program: Command, dependencies?: JenkinsCommandDependencies): void;