@synergenius/flowweaver-pack-cicd 0.2.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 (126) hide show
  1. package/dist/artifacts.d.ts +13 -0
  2. package/dist/artifacts.d.ts.map +1 -0
  3. package/dist/artifacts.js +26 -0
  4. package/dist/artifacts.js.map +1 -0
  5. package/dist/detection.d.ts +28 -0
  6. package/dist/detection.d.ts.map +1 -0
  7. package/dist/detection.js +81 -0
  8. package/dist/detection.js.map +1 -0
  9. package/dist/index.d.ts +20 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +21 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/job-graph.d.ts +17 -0
  14. package/dist/job-graph.d.ts.map +1 -0
  15. package/dist/job-graph.js +185 -0
  16. package/dist/job-graph.js.map +1 -0
  17. package/dist/native-steps.d.ts +13 -0
  18. package/dist/native-steps.d.ts.map +1 -0
  19. package/dist/native-steps.js +30 -0
  20. package/dist/native-steps.js.map +1 -0
  21. package/dist/node-types/checkout.d.ts +12 -0
  22. package/dist/node-types/checkout.d.ts.map +1 -0
  23. package/dist/node-types/checkout.js +13 -0
  24. package/dist/node-types/checkout.js.map +1 -0
  25. package/dist/node-types/deploy-s3.d.ts +17 -0
  26. package/dist/node-types/deploy-s3.d.ts.map +1 -0
  27. package/dist/node-types/deploy-s3.js +18 -0
  28. package/dist/node-types/deploy-s3.js.map +1 -0
  29. package/dist/node-types/deploy-ssh.d.ts +16 -0
  30. package/dist/node-types/deploy-ssh.d.ts.map +1 -0
  31. package/dist/node-types/deploy-ssh.js +17 -0
  32. package/dist/node-types/deploy-ssh.js.map +1 -0
  33. package/dist/node-types/docker-build.d.ts +15 -0
  34. package/dist/node-types/docker-build.d.ts.map +1 -0
  35. package/dist/node-types/docker-build.js +16 -0
  36. package/dist/node-types/docker-build.js.map +1 -0
  37. package/dist/node-types/docker-login.d.ts +16 -0
  38. package/dist/node-types/docker-login.d.ts.map +1 -0
  39. package/dist/node-types/docker-login.js +17 -0
  40. package/dist/node-types/docker-login.js.map +1 -0
  41. package/dist/node-types/docker-push.d.ts +14 -0
  42. package/dist/node-types/docker-push.d.ts.map +1 -0
  43. package/dist/node-types/docker-push.js +15 -0
  44. package/dist/node-types/docker-push.js.map +1 -0
  45. package/dist/node-types/health-check.d.ts +17 -0
  46. package/dist/node-types/health-check.d.ts.map +1 -0
  47. package/dist/node-types/health-check.js +17 -0
  48. package/dist/node-types/health-check.js.map +1 -0
  49. package/dist/node-types/index.d.ts +16 -0
  50. package/dist/node-types/index.d.ts.map +1 -0
  51. package/dist/node-types/index.js +17 -0
  52. package/dist/node-types/index.js.map +1 -0
  53. package/dist/node-types/npm-build.d.ts +12 -0
  54. package/dist/node-types/npm-build.d.ts.map +1 -0
  55. package/dist/node-types/npm-build.js +13 -0
  56. package/dist/node-types/npm-build.js.map +1 -0
  57. package/dist/node-types/npm-install.d.ts +13 -0
  58. package/dist/node-types/npm-install.d.ts.map +1 -0
  59. package/dist/node-types/npm-install.js +17 -0
  60. package/dist/node-types/npm-install.js.map +1 -0
  61. package/dist/node-types/npm-test.d.ts +14 -0
  62. package/dist/node-types/npm-test.d.ts.map +1 -0
  63. package/dist/node-types/npm-test.js +14 -0
  64. package/dist/node-types/npm-test.js.map +1 -0
  65. package/dist/node-types/setup-node.d.ts +13 -0
  66. package/dist/node-types/setup-node.d.ts.map +1 -0
  67. package/dist/node-types/setup-node.js +14 -0
  68. package/dist/node-types/setup-node.js.map +1 -0
  69. package/dist/node-types/setup-python.d.ts +13 -0
  70. package/dist/node-types/setup-python.d.ts.map +1 -0
  71. package/dist/node-types/setup-python.js +14 -0
  72. package/dist/node-types/setup-python.js.map +1 -0
  73. package/dist/node-types/shell-command.d.ts +16 -0
  74. package/dist/node-types/shell-command.d.ts.map +1 -0
  75. package/dist/node-types/shell-command.js +16 -0
  76. package/dist/node-types/shell-command.js.map +1 -0
  77. package/dist/node-types/slack-notify.d.ts +15 -0
  78. package/dist/node-types/slack-notify.d.ts.map +1 -0
  79. package/dist/node-types/slack-notify.js +16 -0
  80. package/dist/node-types/slack-notify.js.map +1 -0
  81. package/dist/node-types/wait-for-url.d.ts +17 -0
  82. package/dist/node-types/wait-for-url.d.ts.map +1 -0
  83. package/dist/node-types/wait-for-url.js +17 -0
  84. package/dist/node-types/wait-for-url.js.map +1 -0
  85. package/dist/patterns/docker-build-push.d.ts +13 -0
  86. package/dist/patterns/docker-build-push.d.ts.map +1 -0
  87. package/dist/patterns/docker-build-push.js +14 -0
  88. package/dist/patterns/docker-build-push.js.map +1 -0
  89. package/dist/patterns/index.d.ts +2 -0
  90. package/dist/patterns/index.d.ts.map +1 -0
  91. package/dist/patterns/index.js +8 -0
  92. package/dist/patterns/index.js.map +1 -0
  93. package/dist/patterns/multi-env-deploy.d.ts +18 -0
  94. package/dist/patterns/multi-env-deploy.d.ts.map +1 -0
  95. package/dist/patterns/multi-env-deploy.js +19 -0
  96. package/dist/patterns/multi-env-deploy.js.map +1 -0
  97. package/dist/patterns/test-and-deploy.d.ts +15 -0
  98. package/dist/patterns/test-and-deploy.d.ts.map +1 -0
  99. package/dist/patterns/test-and-deploy.js +16 -0
  100. package/dist/patterns/test-and-deploy.js.map +1 -0
  101. package/dist/register.d.ts +9 -0
  102. package/dist/register.d.ts.map +1 -0
  103. package/dist/register.js +25 -0
  104. package/dist/register.js.map +1 -0
  105. package/dist/rules.d.ts +19 -0
  106. package/dist/rules.d.ts.map +1 -0
  107. package/dist/rules.js +247 -0
  108. package/dist/rules.js.map +1 -0
  109. package/dist/secrets-doc.d.ts +9 -0
  110. package/dist/secrets-doc.d.ts.map +1 -0
  111. package/dist/secrets-doc.js +47 -0
  112. package/dist/secrets-doc.js.map +1 -0
  113. package/dist/secrets.d.ts +19 -0
  114. package/dist/secrets.d.ts.map +1 -0
  115. package/dist/secrets.js +50 -0
  116. package/dist/secrets.js.map +1 -0
  117. package/dist/tag-handler.d.ts +12 -0
  118. package/dist/tag-handler.d.ts.map +1 -0
  119. package/dist/tag-handler.js +498 -0
  120. package/dist/tag-handler.js.map +1 -0
  121. package/dist/types.d.ts +90 -0
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +9 -0
  124. package/dist/types.js.map +1 -0
  125. package/flowweaver.manifest.json +514 -0
  126. package/package.json +44 -0
@@ -0,0 +1,498 @@
1
+ /**
2
+ * CI/CD tag handler for the TagHandlerRegistry.
3
+ *
4
+ * Handles all CI/CD annotation tags: @secret, @runner, @cache, @artifact,
5
+ * @environment, @matrix, @service, @concurrency, @job, @stage, @variables,
6
+ * @before_script, @tags, @includes, plus the synthetic _cicdTrigger tag.
7
+ *
8
+ * Extracted from core's src/extensions/cicd/tag-handler.ts.
9
+ */
10
+ export const cicdTagHandler = (tagName, comment, ctx) => {
11
+ const d = ctx.deploy;
12
+ const warnings = ctx.warnings;
13
+ const text = comment.trim();
14
+ switch (tagName) {
15
+ case 'secret':
16
+ parseSecret(text, d, warnings);
17
+ break;
18
+ case 'runner': {
19
+ const val = text.replace(/^["']|["']$/g, '');
20
+ if (val)
21
+ d['runner'] = val;
22
+ break;
23
+ }
24
+ case 'cache':
25
+ parseCache(text, d, warnings);
26
+ break;
27
+ case 'artifact':
28
+ parseArtifact(text, d, warnings);
29
+ break;
30
+ case 'environment':
31
+ parseEnvironment(text, d, warnings);
32
+ break;
33
+ case 'matrix':
34
+ parseMatrix(text, d, warnings);
35
+ break;
36
+ case 'service':
37
+ parseService(text, d, warnings);
38
+ break;
39
+ case 'concurrency':
40
+ parseConcurrency(text, d, warnings);
41
+ break;
42
+ case 'job':
43
+ parseJob(text, d, warnings);
44
+ break;
45
+ case 'stage':
46
+ parseStage(text, d, warnings);
47
+ break;
48
+ case 'variables':
49
+ parseVariables(text, d, warnings);
50
+ break;
51
+ case 'before_script':
52
+ parseBeforeScript(text, d, warnings);
53
+ break;
54
+ case 'tags':
55
+ parseTags(text, d, warnings);
56
+ break;
57
+ case 'includes':
58
+ parseIncludes(text, d, warnings);
59
+ break;
60
+ case '_cicdTrigger':
61
+ parseCicdTrigger(text, d, warnings);
62
+ break;
63
+ }
64
+ };
65
+ function parseSecret(text, d, warnings) {
66
+ if (!text) {
67
+ warnings.push('Empty @secret tag. Expected: @secret SECRET_NAME - description');
68
+ return;
69
+ }
70
+ const match = text.match(/^(\S+)(.*?)(?:\s+-\s+(.*))?$/);
71
+ if (!match) {
72
+ warnings.push(`Invalid @secret format: @secret ${text}`);
73
+ return;
74
+ }
75
+ const name = match[1];
76
+ const attrs = match[2] || '';
77
+ const description = match[3]?.trim();
78
+ const secret = { name };
79
+ if (description)
80
+ secret.description = description;
81
+ const scopeMatch = attrs.match(/scope\s*=\s*"([^"]+)"/);
82
+ if (scopeMatch)
83
+ secret.scope = scopeMatch[1];
84
+ const platformMatch = attrs.match(/platform\s*=\s*"([^"]+)"/);
85
+ if (platformMatch) {
86
+ const validPlatforms = ['github', 'gitlab', 'all'];
87
+ const p = platformMatch[1];
88
+ if (validPlatforms.includes(p)) {
89
+ secret.platform = p;
90
+ }
91
+ else {
92
+ warnings.push(`Invalid @secret platform "${platformMatch[1]}". Must be: github, gitlab, or all`);
93
+ }
94
+ }
95
+ const secrets = d['secrets'] ?? [];
96
+ secrets.push(secret);
97
+ d['secrets'] = secrets;
98
+ }
99
+ function parseCache(text, d, warnings) {
100
+ if (!text) {
101
+ warnings.push('Empty @cache tag. Expected: @cache npm key="package-lock.json"');
102
+ return;
103
+ }
104
+ const parts = text.match(/^(\S+)(.*)?$/);
105
+ if (!parts) {
106
+ warnings.push(`Invalid @cache format: @cache ${text}`);
107
+ return;
108
+ }
109
+ const cache = { strategy: parts[1] };
110
+ const rest = parts[2] || '';
111
+ const keyMatch = rest.match(/key\s*=\s*"([^"]+)"/);
112
+ if (keyMatch)
113
+ cache.key = keyMatch[1];
114
+ const pathMatch = rest.match(/path\s*=\s*"([^"]+)"/);
115
+ if (pathMatch)
116
+ cache.path = pathMatch[1];
117
+ const caches = d['caches'] ?? [];
118
+ caches.push(cache);
119
+ d['caches'] = caches;
120
+ }
121
+ function parseArtifact(text, d, warnings) {
122
+ if (!text) {
123
+ warnings.push('Empty @artifact tag. Expected: @artifact name path="dist/"');
124
+ return;
125
+ }
126
+ const nameMatch = text.match(/^(\S+)/);
127
+ if (!nameMatch) {
128
+ warnings.push(`Invalid @artifact format: @artifact ${text}`);
129
+ return;
130
+ }
131
+ const pathMatch = text.match(/path\s*=\s*"([^"]+)"/);
132
+ if (!pathMatch) {
133
+ warnings.push(`@artifact requires path="...": @artifact ${text}`);
134
+ return;
135
+ }
136
+ const artifact = {
137
+ name: nameMatch[1],
138
+ path: pathMatch[1],
139
+ };
140
+ const retentionMatch = text.match(/retention\s*=\s*(\d+)/);
141
+ if (retentionMatch)
142
+ artifact.retention = parseInt(retentionMatch[1], 10);
143
+ const artifacts = d['artifacts'] ?? [];
144
+ artifacts.push(artifact);
145
+ d['artifacts'] = artifacts;
146
+ }
147
+ function parseEnvironment(text, d, warnings) {
148
+ if (!text) {
149
+ warnings.push('Empty @environment tag. Expected: @environment production url="https://app.com"');
150
+ return;
151
+ }
152
+ const nameMatch = text.match(/^(\S+)/);
153
+ if (!nameMatch) {
154
+ warnings.push(`Invalid @environment format: @environment ${text}`);
155
+ return;
156
+ }
157
+ const env = { name: nameMatch[1] };
158
+ const urlMatch = text.match(/url\s*=\s*"([^"]+)"/);
159
+ if (urlMatch)
160
+ env.url = urlMatch[1];
161
+ const reviewersMatch = text.match(/reviewers\s*=\s*(\d+)/);
162
+ if (reviewersMatch)
163
+ env.reviewers = parseInt(reviewersMatch[1], 10);
164
+ const environments = d['environments'] ?? [];
165
+ environments.push(env);
166
+ d['environments'] = environments;
167
+ }
168
+ function parseMatrix(text, d, warnings) {
169
+ if (!text) {
170
+ warnings.push('Empty @matrix tag. Expected: @matrix node="18,20,22" os="ubuntu-latest"');
171
+ return;
172
+ }
173
+ const matrix = d['matrix'] ?? { dimensions: {} };
174
+ d['matrix'] = matrix;
175
+ const isInclude = text.startsWith('include ');
176
+ const isExclude = text.startsWith('exclude ');
177
+ if (isInclude || isExclude) {
178
+ const rest = text.slice(isInclude ? 8 : 8);
179
+ const entry = {};
180
+ const kvRegex = /(\w[\w-]*)\s*=\s*"([^"]+)"/g;
181
+ let m;
182
+ while ((m = kvRegex.exec(rest)) !== null) {
183
+ entry[m[1]] = m[2];
184
+ }
185
+ if (Object.keys(entry).length > 0) {
186
+ if (isInclude) {
187
+ matrix.include = matrix.include || [];
188
+ matrix.include.push(entry);
189
+ }
190
+ else {
191
+ matrix.exclude = matrix.exclude || [];
192
+ matrix.exclude.push(entry);
193
+ }
194
+ }
195
+ return;
196
+ }
197
+ const kvRegex = /(\w[\w-]*)\s*=\s*"([^"]+)"/g;
198
+ let m;
199
+ while ((m = kvRegex.exec(text)) !== null) {
200
+ matrix.dimensions[m[1]] = m[2].split(',').map(v => v.trim());
201
+ }
202
+ }
203
+ function parseService(text, d, warnings) {
204
+ if (!text) {
205
+ warnings.push('Empty @service tag. Expected: @service postgres image="postgres:16"');
206
+ return;
207
+ }
208
+ const nameMatch = text.match(/^(\S+)/);
209
+ if (!nameMatch) {
210
+ warnings.push(`Invalid @service format: @service ${text}`);
211
+ return;
212
+ }
213
+ const imageMatch = text.match(/image\s*=\s*"([^"]+)"/);
214
+ if (!imageMatch) {
215
+ warnings.push(`@service requires image="...": @service ${text}`);
216
+ return;
217
+ }
218
+ const svc = {
219
+ name: nameMatch[1],
220
+ image: imageMatch[1],
221
+ };
222
+ const envMatch = text.match(/env\s*=\s*"([^"]+)"/);
223
+ if (envMatch) {
224
+ svc.env = {};
225
+ for (const pair of envMatch[1].split(',')) {
226
+ const [k, ...vParts] = pair.split('=');
227
+ if (k && vParts.length > 0)
228
+ svc.env[k.trim()] = vParts.join('=').trim();
229
+ }
230
+ }
231
+ const portsMatch = text.match(/ports\s*=\s*"([^"]+)"/);
232
+ if (portsMatch) {
233
+ svc.ports = portsMatch[1].split(',').map(p => p.trim());
234
+ }
235
+ const services = d['services'] ?? [];
236
+ services.push(svc);
237
+ d['services'] = services;
238
+ }
239
+ function parseConcurrency(text, d, warnings) {
240
+ if (!text) {
241
+ warnings.push('Empty @concurrency tag. Expected: @concurrency group="deploy"');
242
+ return;
243
+ }
244
+ const groupMatch = text.match(/group\s*=\s*"([^"]+)"/);
245
+ if (!groupMatch) {
246
+ const bareMatch = text.match(/^(\S+)/);
247
+ if (bareMatch) {
248
+ d['concurrency'] = { group: bareMatch[1], cancelInProgress: false };
249
+ }
250
+ else {
251
+ warnings.push(`Invalid @concurrency format: @concurrency ${text}`);
252
+ }
253
+ return;
254
+ }
255
+ const cancelMatch = text.match(/cancel-in-progress\s*=\s*(true|false)/);
256
+ d['concurrency'] = {
257
+ group: groupMatch[1],
258
+ cancelInProgress: cancelMatch ? cancelMatch[1] === 'true' : false,
259
+ };
260
+ }
261
+ function parseJob(text, d, warnings) {
262
+ if (!text) {
263
+ warnings.push('Empty @job tag. Expected: @job <name> key=value ...');
264
+ return;
265
+ }
266
+ const spaceIdx = text.indexOf(' ');
267
+ const jobId = spaceIdx === -1 ? text : text.substring(0, spaceIdx);
268
+ const rest = spaceIdx === -1 ? '' : text.substring(spaceIdx + 1);
269
+ const jobs = d['jobs'] ?? [];
270
+ d['jobs'] = jobs;
271
+ let jc = jobs.find(j => j.id === jobId);
272
+ if (!jc) {
273
+ jc = { id: jobId };
274
+ jobs.push(jc);
275
+ }
276
+ if (!rest)
277
+ return;
278
+ const kvRegex = /(\w[\w-]*)\s*=\s*(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)'|([\S]+))/g;
279
+ let match;
280
+ while ((match = kvRegex.exec(rest)) !== null) {
281
+ const key = match[1];
282
+ const value = match[2] !== undefined ? match[2] : match[3] !== undefined ? match[3] : match[4];
283
+ switch (key) {
284
+ case 'retry': {
285
+ const n = parseInt(value, 10);
286
+ if (!isNaN(n) && n >= 0)
287
+ jc.retry = n;
288
+ else
289
+ warnings.push(`Invalid retry value "${value}" in @job ${jobId}`);
290
+ break;
291
+ }
292
+ case 'allow_failure':
293
+ jc.allowFailure = value === 'true';
294
+ break;
295
+ case 'timeout':
296
+ jc.timeout = value;
297
+ break;
298
+ case 'runner':
299
+ jc.runner = value;
300
+ break;
301
+ case 'tags':
302
+ jc.tags = value.split(',').map(t => t.trim()).filter(Boolean);
303
+ break;
304
+ case 'coverage':
305
+ jc.coverage = value;
306
+ break;
307
+ case 'extends':
308
+ jc.extends = value;
309
+ break;
310
+ case 'variables': {
311
+ jc.variables = jc.variables || {};
312
+ for (const pair of value.split(',')) {
313
+ const eqIdx = pair.indexOf('=');
314
+ if (eqIdx > 0) {
315
+ jc.variables[pair.substring(0, eqIdx).trim()] = pair.substring(eqIdx + 1).trim();
316
+ }
317
+ }
318
+ break;
319
+ }
320
+ case 'before_script':
321
+ jc.beforeScript = value.split(',').map(s => s.trim()).filter(Boolean);
322
+ break;
323
+ case 'rules':
324
+ jc.rules = jc.rules || [];
325
+ jc.rules.push({ if: value });
326
+ break;
327
+ case 'when': {
328
+ jc.rules = jc.rules || [];
329
+ if (jc.rules.length === 0)
330
+ jc.rules.push({});
331
+ jc.rules[jc.rules.length - 1].when = value;
332
+ break;
333
+ }
334
+ case 'changes': {
335
+ jc.rules = jc.rules || [];
336
+ if (jc.rules.length === 0)
337
+ jc.rules.push({});
338
+ jc.rules[jc.rules.length - 1].changes = value.split(',').map(s => s.trim()).filter(Boolean);
339
+ break;
340
+ }
341
+ case 'reports': {
342
+ jc.reports = jc.reports || [];
343
+ for (const pair of value.split(',')) {
344
+ const eqIdx = pair.indexOf('=');
345
+ if (eqIdx > 0) {
346
+ jc.reports.push({
347
+ type: pair.substring(0, eqIdx).trim(),
348
+ path: pair.substring(eqIdx + 1).trim(),
349
+ });
350
+ }
351
+ }
352
+ break;
353
+ }
354
+ default:
355
+ warnings.push(`Unknown @job attribute "${key}" in @job ${jobId}`);
356
+ }
357
+ }
358
+ }
359
+ function parseStage(text, d, warnings) {
360
+ if (!text) {
361
+ warnings.push('Empty @stage tag. Expected: @stage <name>');
362
+ return;
363
+ }
364
+ const stages = d['stages'] ?? [];
365
+ d['stages'] = stages;
366
+ const name = text.split(/\s+/)[0];
367
+ if (!stages.some(s => s.name === name)) {
368
+ stages.push({ name });
369
+ }
370
+ }
371
+ function parseVariables(text, d, warnings) {
372
+ if (!text) {
373
+ warnings.push('Empty @variables tag. Expected: @variables KEY=VALUE');
374
+ return;
375
+ }
376
+ const variables = d['variables'] ?? {};
377
+ d['variables'] = variables;
378
+ const kvRegex = /(\w[\w-]*)\s*=\s*(?:"((?:[^"\\]|\\.)*)"|(\S+))/g;
379
+ let match;
380
+ while ((match = kvRegex.exec(text)) !== null) {
381
+ variables[match[1]] = match[2] !== undefined ? match[2] : match[3];
382
+ }
383
+ }
384
+ function parseBeforeScript(text, d, warnings) {
385
+ if (!text) {
386
+ warnings.push('Empty @before_script tag. Expected: @before_script "cmd1" "cmd2"');
387
+ return;
388
+ }
389
+ const beforeScript = d['beforeScript'] ?? [];
390
+ d['beforeScript'] = beforeScript;
391
+ const strRegex = /"((?:[^"\\]|\\.)*)"/g;
392
+ let match;
393
+ const commands = [];
394
+ while ((match = strRegex.exec(text)) !== null) {
395
+ commands.push(match[1]);
396
+ }
397
+ if (commands.length > 0) {
398
+ beforeScript.push(...commands);
399
+ }
400
+ else {
401
+ beforeScript.push(text);
402
+ }
403
+ }
404
+ function parseTags(text, d, warnings) {
405
+ if (!text) {
406
+ warnings.push('Empty @tags tag. Expected: @tags tag1 tag2');
407
+ return;
408
+ }
409
+ d['tags'] = text.split(/[\s,]+/).filter(Boolean);
410
+ }
411
+ function parseIncludes(text, d, warnings) {
412
+ if (!text) {
413
+ warnings.push('Empty @includes tag. Expected: @includes local="path"');
414
+ return;
415
+ }
416
+ const includes = d['includes'] ?? [];
417
+ d['includes'] = includes;
418
+ const localMatch = text.match(/local\s*=\s*"([^"]+)"/);
419
+ const templateMatch = text.match(/template\s*=\s*"([^"]+)"/);
420
+ const remoteMatch = text.match(/remote\s*=\s*"([^"]+)"/);
421
+ const projectMatch = text.match(/project\s*=\s*"([^"]+)"/);
422
+ if (localMatch) {
423
+ includes.push({ type: 'local', file: localMatch[1] });
424
+ }
425
+ else if (templateMatch) {
426
+ includes.push({ type: 'template', file: templateMatch[1] });
427
+ }
428
+ else if (remoteMatch) {
429
+ includes.push({ type: 'remote', file: remoteMatch[1] });
430
+ }
431
+ else if (projectMatch) {
432
+ const fileMatch = text.match(/file\s*=\s*"([^"]+)"/);
433
+ const refMatch = text.match(/ref\s*=\s*"([^"]+)"/);
434
+ if (fileMatch) {
435
+ includes.push({
436
+ type: 'project',
437
+ file: fileMatch[1],
438
+ project: projectMatch[1],
439
+ ...(refMatch && { ref: refMatch[1] }),
440
+ });
441
+ }
442
+ else {
443
+ warnings.push(`@includes project requires file="...": @includes ${text}`);
444
+ }
445
+ }
446
+ else {
447
+ warnings.push(`Invalid @includes format: @includes ${text}. Expected: @includes local="path" or @includes template="name"`);
448
+ }
449
+ }
450
+ function parseCicdTrigger(text, d, warnings) {
451
+ const cicdMatch = text.match(/^(push|pull_request|dispatch|tag|schedule)\b(.*)?$/);
452
+ if (!cicdMatch) {
453
+ const cronOnlyMatch = text.match(/^cron\s*=\s*"([^"]+)"/);
454
+ if (cronOnlyMatch) {
455
+ const triggers = d['triggers'] ?? [];
456
+ d['triggers'] = triggers;
457
+ triggers.push({ type: 'schedule', cron: cronOnlyMatch[1] });
458
+ return;
459
+ }
460
+ warnings.push(`Invalid CI/CD trigger format: @trigger ${text}`);
461
+ return;
462
+ }
463
+ const type = cicdMatch[1];
464
+ const rest = (cicdMatch[2] || '').trim();
465
+ const triggerType = type;
466
+ const trigger = { type: triggerType };
467
+ const branchesMatch = rest.match(/branches\s*=\s*"([^"]+)"/);
468
+ if (branchesMatch)
469
+ trigger.branches = branchesMatch[1].split(',').map(b => b.trim());
470
+ const pathsMatch = rest.match(/(?<![a-z])paths\s*=\s*"([^"]+)"/);
471
+ if (pathsMatch)
472
+ trigger.paths = pathsMatch[1].split(',').map(p => p.trim());
473
+ const pathsIgnoreMatch = rest.match(/paths-ignore\s*=\s*"([^"]+)"/);
474
+ if (pathsIgnoreMatch)
475
+ trigger.pathsIgnore = pathsIgnoreMatch[1].split(',').map(p => p.trim());
476
+ const typesMatch = rest.match(/types\s*=\s*"([^"]+)"/);
477
+ if (typesMatch)
478
+ trigger.types = typesMatch[1].split(',').map(t => t.trim());
479
+ const patternMatch = rest.match(/pattern\s*=\s*"([^"]+)"/);
480
+ if (patternMatch)
481
+ trigger.pattern = patternMatch[1];
482
+ const cronMatch = rest.match(/cron\s*=\s*"([^"]+)"/);
483
+ if (cronMatch)
484
+ trigger.cron = cronMatch[1];
485
+ const inputsMatch = rest.match(/inputs\s*=\s*"([^"]+)"/);
486
+ if (inputsMatch) {
487
+ trigger.inputs = {};
488
+ for (const input of inputsMatch[1].split(',')) {
489
+ const name = input.trim();
490
+ if (name)
491
+ trigger.inputs[name] = {};
492
+ }
493
+ }
494
+ const triggers = d['triggers'] ?? [];
495
+ d['triggers'] = triggers;
496
+ triggers.push(trigger);
497
+ }
498
+ //# sourceMappingURL=tag-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-handler.js","sourceRoot":"","sources":["../src/tag-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * CI/CD runtime types used by the job graph builder, compile target,
3
+ * and platform-specific export targets (GitHub Actions, GitLab CI).
4
+ *
5
+ * AST-level types (TCICD*) live in core's ast/types.ts. These are the
6
+ * intermediate representations produced during export.
7
+ */
8
+ import type { TCICDMatrix, TCICDService, TCICDCache, TCICDArtifact } from '@synergenius/flow-weaver/ast';
9
+ export interface CICDStep {
10
+ /** Node instance ID */
11
+ id: string;
12
+ /** Human-readable step name */
13
+ name: string;
14
+ /** Node type (used for action mapping) */
15
+ nodeType: string;
16
+ /** Environment variables for this step */
17
+ env?: Record<string, string>;
18
+ /** Per-target deploy config from @deploy annotations on the node type */
19
+ nodeTypeDeploy?: Record<string, Record<string, unknown>>;
20
+ }
21
+ export interface CICDJob {
22
+ /** Job identifier (from [job: "name"]) */
23
+ id: string;
24
+ /** Human-readable job name */
25
+ name: string;
26
+ /** Runner label (from @runner or job-level override) */
27
+ runner?: string;
28
+ /** Jobs that must complete before this one */
29
+ needs: string[];
30
+ /** Steps in execution order */
31
+ steps: CICDStep[];
32
+ /** Deployment environment (from [environment: "name"]) */
33
+ environment?: string;
34
+ /** Secret names used by this job */
35
+ secrets: string[];
36
+ /** Matrix strategy */
37
+ matrix?: TCICDMatrix;
38
+ /** Sidecar services */
39
+ services?: TCICDService[];
40
+ /** Cache configuration */
41
+ cache?: TCICDCache;
42
+ /** Artifacts to upload after this job */
43
+ uploadArtifacts?: TCICDArtifact[];
44
+ /** Artifact names to download before this job */
45
+ downloadArtifacts?: string[];
46
+ /** Maximum retry count on failure (from @job) */
47
+ retry?: number;
48
+ /** Whether this job can fail without failing the pipeline (from @job) */
49
+ allowFailure?: boolean;
50
+ /** Job-level timeout duration (from @job) */
51
+ timeout?: string;
52
+ /** Environment variables (from @job or @variables) */
53
+ variables?: Record<string, string>;
54
+ /** Runner selection tags (from @job or @tags) */
55
+ tags?: string[];
56
+ /** Setup commands before main script (from @job or @before_script) */
57
+ beforeScript?: string[];
58
+ /** Conditional execution rules (from @job) */
59
+ rules?: Array<{
60
+ if?: string;
61
+ when?: string;
62
+ allowFailure?: boolean;
63
+ variables?: Record<string, string>;
64
+ changes?: string[];
65
+ }>;
66
+ /** Coverage regex pattern (from @job) */
67
+ coverage?: string;
68
+ /** Test/coverage report declarations (from @job) */
69
+ reports?: Array<{
70
+ type: string;
71
+ path: string;
72
+ }>;
73
+ /** GitLab template to extend (from @job) */
74
+ extends?: string;
75
+ /** Explicit stage name (from @stage) */
76
+ stage?: string;
77
+ }
78
+ export interface ActionMapping {
79
+ /** GitHub Actions `uses:` value */
80
+ githubAction?: string;
81
+ /** GitHub Actions `with:` defaults */
82
+ githubWith?: Record<string, string>;
83
+ /** GitLab CI script commands */
84
+ gitlabScript?: string[];
85
+ /** GitLab CI image override */
86
+ gitlabImage?: string;
87
+ /** Human-readable step name */
88
+ label?: string;
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CI/CD runtime types used by the job graph builder, compile target,
3
+ * and platform-specific export targets (GitHub Actions, GitLab CI).
4
+ *
5
+ * AST-level types (TCICD*) live in core's ast/types.ts. These are the
6
+ * intermediate representations produced during export.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}