@olivervea/pipelines 0.0.0-stage → 2.0.0-beta.1
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/LICENSE +21 -0
- package/README.md +407 -2
- package/manifest.schema.json +524 -0
- package/package.json +60 -4
- package/src/assets.d.ts +10 -0
- package/src/build/build.ts +125 -0
- package/src/build/cli.ts +52 -0
- package/src/build/elf.ts +35 -0
- package/src/build/hashes.ts +67 -0
- package/src/build/project.ts +79 -0
- package/src/builder/pipeline.ts +291 -0
- package/src/builder/refs.ts +26 -0
- package/src/core/brands.ts +13 -0
- package/src/core/handlers.ts +44 -0
- package/src/core/models.ts +69 -0
- package/src/core/secrets.ts +13 -0
- package/src/core/steps.ts +107 -0
- package/src/core/types.ts +6 -0
- package/src/ctx/files.ts +161 -0
- package/src/ctx/index.ts +119 -0
- package/src/ctx/sh.ts +196 -0
- package/src/ctx/types.ts +113 -0
- package/src/describe/describe.ts +379 -0
- package/src/describe/manifest-schema.ts +131 -0
- package/src/describe/mapper-source.ts +238 -0
- package/src/describe/record.ts +107 -0
- package/src/dev/cli.ts +80 -0
- package/src/harness/env.ts +58 -0
- package/src/harness/execute.ts +94 -0
- package/src/harness/exit.ts +19 -0
- package/src/harness/index.ts +9 -0
- package/src/harness/main.ts +219 -0
- package/src/harness/result.ts +75 -0
- package/src/harness/validate.ts +74 -0
- package/src/index.ts +11 -0
- package/src/library/github-source.ts +77 -0
- package/src/library/helm-deploy-ssh.ts +151 -0
- package/src/library/http-health.ts +34 -0
- package/src/library/image-build.ts +134 -0
- package/src/library/index.ts +14 -0
- package/src/library/models.ts +63 -0
- package/src/library/script.ts +85 -0
- package/src/testing/index.ts +86 -0
- package/src/util/canonical.ts +19 -0
- package/src/util/handler-hash.ts +22 -0
- package/src/util/hash.ts +22 -0
- package/src/util/tar.ts +154 -0
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$defs": {
|
|
3
|
+
"InputType": {
|
|
4
|
+
"anyOf": [
|
|
5
|
+
{
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"model": {
|
|
9
|
+
"description": "Model name (key of `models`).",
|
|
10
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]*$",
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"optional": {
|
|
14
|
+
"description": "optional(Model): may be absent because its producer was skipped.",
|
|
15
|
+
"type": "boolean"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": [
|
|
19
|
+
"model",
|
|
20
|
+
"optional"
|
|
21
|
+
],
|
|
22
|
+
"type": "object"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"additionalProperties": false,
|
|
26
|
+
"properties": {
|
|
27
|
+
"schema": {
|
|
28
|
+
"$ref": "#/$defs/ModelSchemas",
|
|
29
|
+
"description": "A plain (unnamed) zod schema. Such inputs always have an explicit mapping."
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": [
|
|
33
|
+
"schema"
|
|
34
|
+
],
|
|
35
|
+
"type": "object"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"Json": {
|
|
40
|
+
"$ref": "#/$defs/__schema0",
|
|
41
|
+
"description": "Any JSON value."
|
|
42
|
+
},
|
|
43
|
+
"Manifest": {
|
|
44
|
+
"additionalProperties": false,
|
|
45
|
+
"properties": {
|
|
46
|
+
"apiVersion": {
|
|
47
|
+
"const": "2.0",
|
|
48
|
+
"type": "string"
|
|
49
|
+
},
|
|
50
|
+
"description": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"failureHandlers": {
|
|
54
|
+
"items": {
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"properties": {
|
|
57
|
+
"step": {
|
|
58
|
+
"$ref": "#/$defs/Step",
|
|
59
|
+
"description": "The handler step. Not part of any stage; its inputs are all FailureContext ({ref: 'failure'})."
|
|
60
|
+
},
|
|
61
|
+
"steps": {
|
|
62
|
+
"anyOf": [
|
|
63
|
+
{
|
|
64
|
+
"items": {
|
|
65
|
+
"description": "Step name: lower-case kebab, 1-63 chars. The step's identity.",
|
|
66
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$",
|
|
67
|
+
"type": "string"
|
|
68
|
+
},
|
|
69
|
+
"type": "array"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"type": "null"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"description": "Steps whose failure triggers the handler (null = any step)."
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"required": [
|
|
79
|
+
"step",
|
|
80
|
+
"steps"
|
|
81
|
+
],
|
|
82
|
+
"type": "object"
|
|
83
|
+
},
|
|
84
|
+
"type": "array"
|
|
85
|
+
},
|
|
86
|
+
"harness": {
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"description": "Harness identity. Already folded into every handlerHash.",
|
|
89
|
+
"properties": {
|
|
90
|
+
"bun": {
|
|
91
|
+
"description": "Bun runtime version compiled into the binary.",
|
|
92
|
+
"type": "string"
|
|
93
|
+
},
|
|
94
|
+
"sdk": {
|
|
95
|
+
"description": "@olve/pipelines package version.",
|
|
96
|
+
"type": "string"
|
|
97
|
+
},
|
|
98
|
+
"sdkHash": {
|
|
99
|
+
"description": "Hash of the SDK runtime sources + zod version.",
|
|
100
|
+
"pattern": "^sha256:[0-9a-f]{64}$",
|
|
101
|
+
"type": "string"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"bun",
|
|
106
|
+
"sdk",
|
|
107
|
+
"sdkHash"
|
|
108
|
+
],
|
|
109
|
+
"type": "object"
|
|
110
|
+
},
|
|
111
|
+
"input": {
|
|
112
|
+
"description": "Pipeline input model.",
|
|
113
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]*$",
|
|
114
|
+
"type": "string"
|
|
115
|
+
},
|
|
116
|
+
"models": {
|
|
117
|
+
"additionalProperties": {
|
|
118
|
+
"$ref": "#/$defs/ModelSchemas"
|
|
119
|
+
},
|
|
120
|
+
"description": "Every model referenced by the pipeline (input, step inputs/outputs).",
|
|
121
|
+
"propertyNames": {
|
|
122
|
+
"description": "Model name (key of `models`).",
|
|
123
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]*$",
|
|
124
|
+
"type": "string"
|
|
125
|
+
},
|
|
126
|
+
"type": "object"
|
|
127
|
+
},
|
|
128
|
+
"name": {
|
|
129
|
+
"minLength": 1,
|
|
130
|
+
"type": "string"
|
|
131
|
+
},
|
|
132
|
+
"secrets": {
|
|
133
|
+
"description": "All declared secrets (steps + poll triggers), sorted by name.",
|
|
134
|
+
"items": {
|
|
135
|
+
"additionalProperties": false,
|
|
136
|
+
"properties": {
|
|
137
|
+
"description": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
},
|
|
140
|
+
"name": {
|
|
141
|
+
"description": "Secret name; also the env var name in the step container.",
|
|
142
|
+
"pattern": "^[A-Z_][A-Z0-9_]*$",
|
|
143
|
+
"type": "string"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"required": [
|
|
147
|
+
"name",
|
|
148
|
+
"description"
|
|
149
|
+
],
|
|
150
|
+
"type": "object"
|
|
151
|
+
},
|
|
152
|
+
"type": "array"
|
|
153
|
+
},
|
|
154
|
+
"stages": {
|
|
155
|
+
"items": {
|
|
156
|
+
"$ref": "#/$defs/Stage"
|
|
157
|
+
},
|
|
158
|
+
"type": "array"
|
|
159
|
+
},
|
|
160
|
+
"triggers": {
|
|
161
|
+
"items": {
|
|
162
|
+
"$ref": "#/$defs/Trigger"
|
|
163
|
+
},
|
|
164
|
+
"type": "array"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"required": [
|
|
168
|
+
"apiVersion",
|
|
169
|
+
"name",
|
|
170
|
+
"input",
|
|
171
|
+
"harness",
|
|
172
|
+
"models",
|
|
173
|
+
"secrets",
|
|
174
|
+
"triggers",
|
|
175
|
+
"stages",
|
|
176
|
+
"failureHandlers"
|
|
177
|
+
],
|
|
178
|
+
"title": "Olve.Pipelines v2 manifest",
|
|
179
|
+
"type": "object"
|
|
180
|
+
},
|
|
181
|
+
"Mapping": {
|
|
182
|
+
"anyOf": [
|
|
183
|
+
{
|
|
184
|
+
"additionalProperties": false,
|
|
185
|
+
"description": "Value taken from the run pool. A ref whose root step was skipped yields no value (only allowed for optional inputs).",
|
|
186
|
+
"properties": {
|
|
187
|
+
"ref": {
|
|
188
|
+
"description": "'<root>' or '<root>.<field>.<field>…'. Root: 'input' (pipeline input), a step name (that step's output) or 'failure' (FailureContext, failure handlers only).",
|
|
189
|
+
"pattern": "^(?:input|failure|[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\\.[^.]+)*$",
|
|
190
|
+
"type": "string"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"required": [
|
|
194
|
+
"ref"
|
|
195
|
+
],
|
|
196
|
+
"type": "object"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"additionalProperties": false,
|
|
200
|
+
"description": "A JSON constant.",
|
|
201
|
+
"properties": {
|
|
202
|
+
"const": {
|
|
203
|
+
"$ref": "#/$defs/Json"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"required": [
|
|
207
|
+
"const"
|
|
208
|
+
],
|
|
209
|
+
"type": "object"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"additionalProperties": {
|
|
213
|
+
"$ref": "#/$defs/Mapping"
|
|
214
|
+
},
|
|
215
|
+
"description": "An object built field by field. Discrimination: an object whose only key is 'ref' (string value) is a ref, whose only key is 'const' is a constant, anything else is a nested object (describe never emits a nested object whose only key is 'ref' or 'const').",
|
|
216
|
+
"propertyNames": {
|
|
217
|
+
"type": "string"
|
|
218
|
+
},
|
|
219
|
+
"type": "object"
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
"ModelSchemas": {
|
|
224
|
+
"additionalProperties": false,
|
|
225
|
+
"properties": {
|
|
226
|
+
"input": {
|
|
227
|
+
"additionalProperties": {},
|
|
228
|
+
"description": "z.input view (defaults make fields optional; `default` values are listed). Present only when it differs from `output`.",
|
|
229
|
+
"propertyNames": {
|
|
230
|
+
"type": "string"
|
|
231
|
+
},
|
|
232
|
+
"type": "object"
|
|
233
|
+
},
|
|
234
|
+
"output": {
|
|
235
|
+
"additionalProperties": {},
|
|
236
|
+
"description": "z.output view: validates step outputs, trigger results and the pool. Every object has additionalProperties: false.",
|
|
237
|
+
"propertyNames": {
|
|
238
|
+
"type": "string"
|
|
239
|
+
},
|
|
240
|
+
"type": "object"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"required": [
|
|
244
|
+
"output"
|
|
245
|
+
],
|
|
246
|
+
"type": "object"
|
|
247
|
+
},
|
|
248
|
+
"Stage": {
|
|
249
|
+
"anyOf": [
|
|
250
|
+
{
|
|
251
|
+
"additionalProperties": false,
|
|
252
|
+
"properties": {
|
|
253
|
+
"steps": {
|
|
254
|
+
"description": "Steps run in parallel; the stage is a barrier.",
|
|
255
|
+
"items": {
|
|
256
|
+
"$ref": "#/$defs/Step"
|
|
257
|
+
},
|
|
258
|
+
"minItems": 1,
|
|
259
|
+
"type": "array"
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": [
|
|
263
|
+
"steps"
|
|
264
|
+
],
|
|
265
|
+
"type": "object"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"additionalProperties": false,
|
|
269
|
+
"properties": {
|
|
270
|
+
"stages": {
|
|
271
|
+
"items": {
|
|
272
|
+
"$ref": "#/$defs/Stage"
|
|
273
|
+
},
|
|
274
|
+
"type": "array"
|
|
275
|
+
},
|
|
276
|
+
"when": {
|
|
277
|
+
"additionalProperties": {
|
|
278
|
+
"items": {
|
|
279
|
+
"type": [
|
|
280
|
+
"string",
|
|
281
|
+
"number",
|
|
282
|
+
"boolean"
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
"minItems": 1,
|
|
286
|
+
"type": "array"
|
|
287
|
+
},
|
|
288
|
+
"description": "Pipeline-input field → accepted values (all fields must match). Empty object = always.",
|
|
289
|
+
"propertyNames": {
|
|
290
|
+
"type": "string"
|
|
291
|
+
},
|
|
292
|
+
"type": "object"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"required": [
|
|
296
|
+
"when",
|
|
297
|
+
"stages"
|
|
298
|
+
],
|
|
299
|
+
"type": "object"
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
},
|
|
303
|
+
"Step": {
|
|
304
|
+
"additionalProperties": false,
|
|
305
|
+
"properties": {
|
|
306
|
+
"config": {
|
|
307
|
+
"additionalProperties": {
|
|
308
|
+
"$ref": "#/$defs/Json"
|
|
309
|
+
},
|
|
310
|
+
"description": "Library-step configuration (display only; already covered by handlerHash).",
|
|
311
|
+
"propertyNames": {
|
|
312
|
+
"type": "string"
|
|
313
|
+
},
|
|
314
|
+
"type": "object"
|
|
315
|
+
},
|
|
316
|
+
"description": {
|
|
317
|
+
"description": "What the step does, shown in the UI (may be empty).",
|
|
318
|
+
"type": "string"
|
|
319
|
+
},
|
|
320
|
+
"handlerHash": {
|
|
321
|
+
"description": "Implementation identity: handler bundle (contract files excluded) + harness (bun + sdkHash); for library steps kind + config + harness.",
|
|
322
|
+
"pattern": "^sha256:[0-9a-f]{64}$",
|
|
323
|
+
"type": "string"
|
|
324
|
+
},
|
|
325
|
+
"image": {
|
|
326
|
+
"description": "Container image the step runs in.",
|
|
327
|
+
"minLength": 1,
|
|
328
|
+
"type": "string"
|
|
329
|
+
},
|
|
330
|
+
"input": {
|
|
331
|
+
"additionalProperties": {
|
|
332
|
+
"$ref": "#/$defs/Mapping"
|
|
333
|
+
},
|
|
334
|
+
"description": "How the service assembles input.json: one mapping per input key (same keys as inputTypes).",
|
|
335
|
+
"propertyNames": {
|
|
336
|
+
"type": "string"
|
|
337
|
+
},
|
|
338
|
+
"type": "object"
|
|
339
|
+
},
|
|
340
|
+
"inputTypes": {
|
|
341
|
+
"additionalProperties": {
|
|
342
|
+
"$ref": "#/$defs/InputType"
|
|
343
|
+
},
|
|
344
|
+
"description": "Declared input entries, keyed like input.json.",
|
|
345
|
+
"propertyNames": {
|
|
346
|
+
"type": "string"
|
|
347
|
+
},
|
|
348
|
+
"type": "object"
|
|
349
|
+
},
|
|
350
|
+
"kind": {
|
|
351
|
+
"description": "'custom' = handlers/<name>.ts; others are SDK library steps.",
|
|
352
|
+
"enum": [
|
|
353
|
+
"custom",
|
|
354
|
+
"script",
|
|
355
|
+
"gitHubSource",
|
|
356
|
+
"imageBuild",
|
|
357
|
+
"helmDeployOverSsh"
|
|
358
|
+
],
|
|
359
|
+
"type": "string"
|
|
360
|
+
},
|
|
361
|
+
"name": {
|
|
362
|
+
"description": "Step name: lower-case kebab, 1-63 chars. The step's identity.",
|
|
363
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$",
|
|
364
|
+
"type": "string"
|
|
365
|
+
},
|
|
366
|
+
"output": {
|
|
367
|
+
"anyOf": [
|
|
368
|
+
{
|
|
369
|
+
"description": "Model name (key of `models`).",
|
|
370
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]*$",
|
|
371
|
+
"type": "string"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"type": "null"
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
"description": "Output model, or null if the step produces no output."
|
|
378
|
+
},
|
|
379
|
+
"retries": {
|
|
380
|
+
"maximum": 9007199254740991,
|
|
381
|
+
"minimum": 0,
|
|
382
|
+
"type": "integer"
|
|
383
|
+
},
|
|
384
|
+
"secrets": {
|
|
385
|
+
"description": "Declared secrets (sorted). Mount exactly these, as env vars of the same name.",
|
|
386
|
+
"items": {
|
|
387
|
+
"description": "Secret name; also the env var name in the step container.",
|
|
388
|
+
"pattern": "^[A-Z_][A-Z0-9_]*$",
|
|
389
|
+
"type": "string"
|
|
390
|
+
},
|
|
391
|
+
"type": "array"
|
|
392
|
+
},
|
|
393
|
+
"timeoutSeconds": {
|
|
394
|
+
"exclusiveMinimum": 0,
|
|
395
|
+
"maximum": 9007199254740991,
|
|
396
|
+
"type": "integer"
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"required": [
|
|
400
|
+
"name",
|
|
401
|
+
"description",
|
|
402
|
+
"kind",
|
|
403
|
+
"image",
|
|
404
|
+
"inputTypes",
|
|
405
|
+
"input",
|
|
406
|
+
"output",
|
|
407
|
+
"secrets",
|
|
408
|
+
"handlerHash"
|
|
409
|
+
],
|
|
410
|
+
"type": "object"
|
|
411
|
+
},
|
|
412
|
+
"Trigger": {
|
|
413
|
+
"oneOf": [
|
|
414
|
+
{
|
|
415
|
+
"additionalProperties": false,
|
|
416
|
+
"description": "GitHub push. Event = the webhook payload.",
|
|
417
|
+
"properties": {
|
|
418
|
+
"kind": {
|
|
419
|
+
"const": "push",
|
|
420
|
+
"type": "string"
|
|
421
|
+
},
|
|
422
|
+
"name": {
|
|
423
|
+
"const": "push",
|
|
424
|
+
"type": "string"
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
"required": [
|
|
428
|
+
"kind",
|
|
429
|
+
"name"
|
|
430
|
+
],
|
|
431
|
+
"type": "object"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"additionalProperties": false,
|
|
435
|
+
"description": "Background poller.",
|
|
436
|
+
"properties": {
|
|
437
|
+
"headers": {
|
|
438
|
+
"additionalProperties": {
|
|
439
|
+
"type": "string"
|
|
440
|
+
},
|
|
441
|
+
"description": "Values may contain '$SECRET:NAME' (NAME ∈ secrets).",
|
|
442
|
+
"propertyNames": {
|
|
443
|
+
"type": "string"
|
|
444
|
+
},
|
|
445
|
+
"type": "object"
|
|
446
|
+
},
|
|
447
|
+
"intervalSeconds": {
|
|
448
|
+
"exclusiveMinimum": 0,
|
|
449
|
+
"maximum": 9007199254740991,
|
|
450
|
+
"type": "integer"
|
|
451
|
+
},
|
|
452
|
+
"kind": {
|
|
453
|
+
"const": "poll",
|
|
454
|
+
"type": "string"
|
|
455
|
+
},
|
|
456
|
+
"name": {
|
|
457
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$",
|
|
458
|
+
"type": "string"
|
|
459
|
+
},
|
|
460
|
+
"secrets": {
|
|
461
|
+
"items": {
|
|
462
|
+
"description": "Secret name; also the env var name in the step container.",
|
|
463
|
+
"pattern": "^[A-Z_][A-Z0-9_]*$",
|
|
464
|
+
"type": "string"
|
|
465
|
+
},
|
|
466
|
+
"type": "array"
|
|
467
|
+
},
|
|
468
|
+
"url": {
|
|
469
|
+
"type": "string"
|
|
470
|
+
},
|
|
471
|
+
"valuePath": {
|
|
472
|
+
"description": "Dot path into the JSON response; a change triggers map-trigger with {\"value\": <string>}.",
|
|
473
|
+
"type": "string"
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
"required": [
|
|
477
|
+
"kind",
|
|
478
|
+
"name",
|
|
479
|
+
"url",
|
|
480
|
+
"headers",
|
|
481
|
+
"secrets",
|
|
482
|
+
"valuePath",
|
|
483
|
+
"intervalSeconds"
|
|
484
|
+
],
|
|
485
|
+
"type": "object"
|
|
486
|
+
}
|
|
487
|
+
]
|
|
488
|
+
},
|
|
489
|
+
"__schema0": {
|
|
490
|
+
"anyOf": [
|
|
491
|
+
{
|
|
492
|
+
"type": "string"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"type": "number"
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"type": "boolean"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"type": "null"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"items": {
|
|
505
|
+
"$ref": "#/$defs/__schema0"
|
|
506
|
+
},
|
|
507
|
+
"type": "array"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"additionalProperties": {
|
|
511
|
+
"$ref": "#/$defs/__schema0"
|
|
512
|
+
},
|
|
513
|
+
"propertyNames": {
|
|
514
|
+
"type": "string"
|
|
515
|
+
},
|
|
516
|
+
"type": "object"
|
|
517
|
+
}
|
|
518
|
+
]
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
"$id": "https://olve.dev/schemas/pipelines/manifest-2.0.json",
|
|
522
|
+
"$ref": "#/$defs/Manifest",
|
|
523
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
524
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@olivervea/pipelines",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
|
+
"description": "Olve.Pipelines v2 SDK: typed pipeline authoring, the step harness, and the build tool.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Oliver Vea",
|
|
8
|
+
"homepage": "https://github.com/OliverVea/Olve.Pipelines/tree/v2/sdk#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/OliverVea/Olve.Pipelines.git",
|
|
12
|
+
"directory": "sdk"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/OliverVea/Olve.Pipelines/issues"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"pipelines",
|
|
19
|
+
"cd",
|
|
20
|
+
"gitops",
|
|
21
|
+
"kubernetes",
|
|
22
|
+
"bun"
|
|
23
|
+
],
|
|
24
|
+
"engines": {
|
|
25
|
+
"bun": ">=1.4.3"
|
|
26
|
+
},
|
|
27
|
+
"exports": {
|
|
28
|
+
".": "./src/index.ts",
|
|
29
|
+
"./harness": "./src/harness/index.ts",
|
|
30
|
+
"./testing": "./src/testing/index.ts",
|
|
31
|
+
"./assets": "./src/assets.d.ts",
|
|
32
|
+
"./manifest.schema.json": "./manifest.schema.json"
|
|
33
|
+
},
|
|
34
|
+
"bin": {
|
|
35
|
+
"olve-build": "./src/build/cli.ts",
|
|
36
|
+
"olve-dev": "./src/dev/cli.ts"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"src",
|
|
40
|
+
"manifest.schema.json",
|
|
41
|
+
"README.md",
|
|
42
|
+
"LICENSE"
|
|
43
|
+
],
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public",
|
|
46
|
+
"tag": "beta"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"typecheck": "tsc --noEmit -p .",
|
|
50
|
+
"test": "bun test",
|
|
51
|
+
"check-compile-fail": "bun scripts/check-compile-fail.ts",
|
|
52
|
+
"gen-schema": "bun scripts/gen-manifest-schema.ts",
|
|
53
|
+
"check": "tsc --noEmit -p . && bun scripts/check-compile-fail.ts && bun test"
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"zod": "4.6.7"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/bun": "1.4.3",
|
|
60
|
+
"typescript": "7.0.2"
|
|
61
|
+
}
|
|
62
|
+
}
|
package/src/assets.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// `import script from "./scripts/x.sh" with { type: "file" }` yields a path string
|
|
2
|
+
// (inside the compiled binary it points into the embedded /$bunfs filesystem).
|
|
3
|
+
declare module "*.sh" {
|
|
4
|
+
const path: string;
|
|
5
|
+
export default path;
|
|
6
|
+
}
|
|
7
|
+
declare module "*.bash" {
|
|
8
|
+
const path: string;
|
|
9
|
+
export default path;
|
|
10
|
+
}
|