pypeline 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +448 -0
  2. package/lib/commands/pypeline/build.d.ts +18 -0
  3. package/lib/commands/pypeline/build.js +86 -0
  4. package/lib/commands/pypeline/build.js.map +1 -0
  5. package/lib/commands/pypeline/deploy/training.d.ts +15 -0
  6. package/lib/commands/pypeline/deploy/training.js +62 -0
  7. package/lib/commands/pypeline/deploy/training.js.map +1 -0
  8. package/lib/commands/pypeline/package.d.ts +11 -0
  9. package/lib/commands/pypeline/package.js +27 -0
  10. package/lib/commands/pypeline/package.js.map +1 -0
  11. package/lib/commands/pypeline/prd.d.ts +16 -0
  12. package/lib/commands/pypeline/prd.js +78 -0
  13. package/lib/commands/pypeline/prd.js.map +1 -0
  14. package/lib/commands/pypeline/quickdeploy.d.ts +18 -0
  15. package/lib/commands/pypeline/quickdeploy.js +116 -0
  16. package/lib/commands/pypeline/quickdeploy.js.map +1 -0
  17. package/lib/commands/pypeline/run.d.ts +19 -0
  18. package/lib/commands/pypeline/run.js +161 -0
  19. package/lib/commands/pypeline/run.js.map +1 -0
  20. package/lib/commands/pypeline/training.d.ts +15 -0
  21. package/lib/commands/pypeline/training.js +67 -0
  22. package/lib/commands/pypeline/training.js.map +1 -0
  23. package/lib/commands/pypeline/validate/prd.d.ts +16 -0
  24. package/lib/commands/pypeline/validate/prd.js +78 -0
  25. package/lib/commands/pypeline/validate/prd.js.map +1 -0
  26. package/lib/config.d.ts +23 -0
  27. package/lib/config.js +72 -0
  28. package/lib/config.js.map +1 -0
  29. package/lib/fileUtils.d.ts +2 -0
  30. package/lib/fileUtils.js +78 -0
  31. package/lib/fileUtils.js.map +1 -0
  32. package/lib/index.d.ts +2 -0
  33. package/lib/index.js +2 -0
  34. package/lib/index.js.map +1 -0
  35. package/messages/pypeline.build.md +16 -0
  36. package/messages/pypeline.deploy.training.md +15 -0
  37. package/messages/pypeline.package.md +8 -0
  38. package/messages/pypeline.quickdeploy.md +22 -0
  39. package/messages/pypeline.run.md +26 -0
  40. package/messages/pypeline.validate.prd.md +15 -0
  41. package/oclif.lock +7808 -0
  42. package/oclif.manifest.json +544 -0
  43. package/package.json +163 -0
@@ -0,0 +1,544 @@
1
+ {
2
+ "commands": {
3
+ "pypeline:build": {
4
+ "aliases": [],
5
+ "args": {},
6
+ "description": "Lê o baseline.txt, faz git diff, copia os arquivos alterados para a pasta de build e calcula o novo baseline (sem gravar ainda — isso acontece após o validate PRD).",
7
+ "examples": [
8
+ "<%= config.bin %> pypeline build",
9
+ "<%= config.bin %> pypeline build --branch release-v5.0.0",
10
+ "<%= config.bin %> pypeline build --dry-run"
11
+ ],
12
+ "flags": {
13
+ "json": {
14
+ "description": "Format output as json.",
15
+ "helpGroup": "GLOBAL",
16
+ "name": "json",
17
+ "allowNo": false,
18
+ "type": "boolean"
19
+ },
20
+ "flags-dir": {
21
+ "helpGroup": "GLOBAL",
22
+ "name": "flags-dir",
23
+ "summary": "Import flag values from a directory.",
24
+ "hasDynamicHelp": false,
25
+ "multiple": false,
26
+ "type": "option"
27
+ },
28
+ "branch": {
29
+ "char": "b",
30
+ "name": "branch",
31
+ "summary": "Branch git a fazer checkout antes do build.",
32
+ "default": "release-v4.0.0",
33
+ "hasDynamicHelp": false,
34
+ "multiple": false,
35
+ "type": "option"
36
+ },
37
+ "dry-run": {
38
+ "name": "dry-run",
39
+ "summary": "Simula o build sem copiar arquivos nem executar comandos sf.",
40
+ "allowNo": false,
41
+ "type": "boolean"
42
+ }
43
+ },
44
+ "hasDynamicHelp": false,
45
+ "hiddenAliases": [],
46
+ "id": "pypeline:build",
47
+ "pluginAlias": "pypeline",
48
+ "pluginName": "pypeline",
49
+ "pluginType": "core",
50
+ "strict": true,
51
+ "summary": "Etapa 1: build e cópia de arquivos modificados desde o baseline.",
52
+ "enableJsonFlag": true,
53
+ "isESM": true,
54
+ "relativePath": [
55
+ "lib",
56
+ "commands",
57
+ "pypeline",
58
+ "build.js"
59
+ ],
60
+ "aliasPermutations": [],
61
+ "permutations": [
62
+ "pypeline:build",
63
+ "build:pypeline"
64
+ ]
65
+ },
66
+ "pypeline:package": {
67
+ "aliases": [],
68
+ "args": {},
69
+ "description": "Executa sf project generate manifest --source-dir sobre o BUILD_DIR gerado pela etapa de build.",
70
+ "examples": [
71
+ "<%= config.bin %> pypeline package"
72
+ ],
73
+ "flags": {
74
+ "json": {
75
+ "description": "Format output as json.",
76
+ "helpGroup": "GLOBAL",
77
+ "name": "json",
78
+ "allowNo": false,
79
+ "type": "boolean"
80
+ },
81
+ "flags-dir": {
82
+ "helpGroup": "GLOBAL",
83
+ "name": "flags-dir",
84
+ "summary": "Import flag values from a directory.",
85
+ "hasDynamicHelp": false,
86
+ "multiple": false,
87
+ "type": "option"
88
+ }
89
+ },
90
+ "hasDynamicHelp": false,
91
+ "hiddenAliases": [],
92
+ "id": "pypeline:package",
93
+ "pluginAlias": "pypeline",
94
+ "pluginName": "pypeline",
95
+ "pluginType": "core",
96
+ "strict": true,
97
+ "summary": "Etapa 2: gera o package.xml a partir da pasta de build.",
98
+ "enableJsonFlag": true,
99
+ "isESM": true,
100
+ "relativePath": [
101
+ "lib",
102
+ "commands",
103
+ "pypeline",
104
+ "package.js"
105
+ ],
106
+ "aliasPermutations": [],
107
+ "permutations": [
108
+ "pypeline:package",
109
+ "package:pypeline"
110
+ ]
111
+ },
112
+ "pypeline:prd": {
113
+ "aliases": [],
114
+ "args": {},
115
+ "description": "Executa sf project deploy validate contra a org de produção. Extrai e salva o Job ID em prd_job_id.txt para uso posterior no quick deploy. Grava o output em deploy_prd_output.log.",
116
+ "examples": [
117
+ "<%= config.bin %> pypeline validate prd",
118
+ "<%= config.bin %> pypeline validate prd --target-org producao --wait 300"
119
+ ],
120
+ "flags": {
121
+ "json": {
122
+ "description": "Format output as json.",
123
+ "helpGroup": "GLOBAL",
124
+ "name": "json",
125
+ "allowNo": false,
126
+ "type": "boolean"
127
+ },
128
+ "flags-dir": {
129
+ "helpGroup": "GLOBAL",
130
+ "name": "flags-dir",
131
+ "summary": "Import flag values from a directory.",
132
+ "hasDynamicHelp": false,
133
+ "multiple": false,
134
+ "type": "option"
135
+ },
136
+ "target-org": {
137
+ "name": "target-org",
138
+ "summary": "Alias da org de produção (padrão: devops).",
139
+ "default": "devops",
140
+ "hasDynamicHelp": false,
141
+ "multiple": false,
142
+ "type": "option"
143
+ },
144
+ "wait": {
145
+ "char": "w",
146
+ "name": "wait",
147
+ "summary": "Minutos de espera pela validação (padrão: 240).",
148
+ "default": 240,
149
+ "hasDynamicHelp": false,
150
+ "multiple": false,
151
+ "type": "option"
152
+ }
153
+ },
154
+ "hasDynamicHelp": false,
155
+ "hiddenAliases": [],
156
+ "id": "pypeline:prd",
157
+ "pluginAlias": "pypeline",
158
+ "pluginName": "pypeline",
159
+ "pluginType": "core",
160
+ "strict": true,
161
+ "summary": "Etapa 4: validação em PRD e extração do Job ID.",
162
+ "enableJsonFlag": true,
163
+ "isESM": true,
164
+ "relativePath": [
165
+ "lib",
166
+ "commands",
167
+ "pypeline",
168
+ "prd.js"
169
+ ],
170
+ "aliasPermutations": [],
171
+ "permutations": [
172
+ "pypeline:prd",
173
+ "prd:pypeline"
174
+ ]
175
+ },
176
+ "pypeline:quickdeploy": {
177
+ "aliases": [],
178
+ "args": {},
179
+ "description": "Lê o Job ID gravado em prd_job_id.txt (ou recebe via --job-id) e executa sf project deploy quick. Remove o arquivo após sucesso para evitar reuso. O Job ID expira 10 horas após o validate.",
180
+ "examples": [
181
+ "<%= config.bin %> pypeline quickdeploy",
182
+ "<%= config.bin %> pypeline quickdeploy --job-id 0Af000000000001AAA",
183
+ "<%= config.bin %> pypeline quickdeploy --no-prompt"
184
+ ],
185
+ "flags": {
186
+ "json": {
187
+ "description": "Format output as json.",
188
+ "helpGroup": "GLOBAL",
189
+ "name": "json",
190
+ "allowNo": false,
191
+ "type": "boolean"
192
+ },
193
+ "flags-dir": {
194
+ "helpGroup": "GLOBAL",
195
+ "name": "flags-dir",
196
+ "summary": "Import flag values from a directory.",
197
+ "hasDynamicHelp": false,
198
+ "multiple": false,
199
+ "type": "option"
200
+ },
201
+ "target-org": {
202
+ "name": "target-org",
203
+ "summary": "Alias da org de produção (padrão: devops).",
204
+ "default": "devops",
205
+ "hasDynamicHelp": false,
206
+ "multiple": false,
207
+ "type": "option"
208
+ },
209
+ "job-id": {
210
+ "char": "j",
211
+ "name": "job-id",
212
+ "summary": "Job ID da validação. Se omitido, lê de prd_job_id.txt.",
213
+ "hasDynamicHelp": false,
214
+ "multiple": false,
215
+ "type": "option"
216
+ },
217
+ "wait": {
218
+ "char": "w",
219
+ "name": "wait",
220
+ "summary": "Minutos de espera pelo deploy (padrão: 240).",
221
+ "default": 240,
222
+ "hasDynamicHelp": false,
223
+ "multiple": false,
224
+ "type": "option"
225
+ },
226
+ "no-prompt": {
227
+ "name": "no-prompt",
228
+ "summary": "Pula a confirmação interativa (útil em CI/CD).",
229
+ "allowNo": false,
230
+ "type": "boolean"
231
+ }
232
+ },
233
+ "hasDynamicHelp": false,
234
+ "hiddenAliases": [],
235
+ "id": "pypeline:quickdeploy",
236
+ "pluginAlias": "pypeline",
237
+ "pluginName": "pypeline",
238
+ "pluginType": "core",
239
+ "strict": true,
240
+ "summary": "Quick deploy em produção usando o Job ID da última validação.",
241
+ "enableJsonFlag": true,
242
+ "isESM": true,
243
+ "relativePath": [
244
+ "lib",
245
+ "commands",
246
+ "pypeline",
247
+ "quickdeploy.js"
248
+ ],
249
+ "aliasPermutations": [],
250
+ "permutations": [
251
+ "pypeline:quickdeploy",
252
+ "quickdeploy:pypeline"
253
+ ]
254
+ },
255
+ "pypeline:run": {
256
+ "aliases": [],
257
+ "args": {},
258
+ "description": "Orquestrador principal. Executa todas as etapas em sequência, com deploy em Training rodando em paralelo ao validate PRD. Em caso de falha, restaura o baseline.txt automaticamente (rollback). Ao final, grava o Job ID em prd_job_id.txt para o quick deploy.",
259
+ "examples": [
260
+ "<%= config.bin %> pypeline run",
261
+ "<%= config.bin %> pypeline run --branch release-v5.0.0",
262
+ "<%= config.bin %> pypeline run --skip-training",
263
+ "<%= config.bin %> pypeline run --prd-org producao --training-org homolog"
264
+ ],
265
+ "flags": {
266
+ "json": {
267
+ "description": "Format output as json.",
268
+ "helpGroup": "GLOBAL",
269
+ "name": "json",
270
+ "allowNo": false,
271
+ "type": "boolean"
272
+ },
273
+ "flags-dir": {
274
+ "helpGroup": "GLOBAL",
275
+ "name": "flags-dir",
276
+ "summary": "Import flag values from a directory.",
277
+ "hasDynamicHelp": false,
278
+ "multiple": false,
279
+ "type": "option"
280
+ },
281
+ "branch": {
282
+ "char": "b",
283
+ "name": "branch",
284
+ "summary": "Branch git a usar no build (sobrescreve o valor em config.ts).",
285
+ "hasDynamicHelp": false,
286
+ "multiple": false,
287
+ "type": "option"
288
+ },
289
+ "skip-training": {
290
+ "name": "skip-training",
291
+ "summary": "Pula o deploy em Training e roda apenas o validate PRD.",
292
+ "allowNo": false,
293
+ "type": "boolean"
294
+ },
295
+ "dry-run": {
296
+ "name": "dry-run",
297
+ "summary": "Passa --dry-run para a etapa de build (sem copiar arquivos).",
298
+ "allowNo": false,
299
+ "type": "boolean"
300
+ },
301
+ "prd-org": {
302
+ "name": "prd-org",
303
+ "summary": "Alias da org de produção (padrão: devops).",
304
+ "default": "devops",
305
+ "hasDynamicHelp": false,
306
+ "multiple": false,
307
+ "type": "option"
308
+ },
309
+ "training-org": {
310
+ "name": "training-org",
311
+ "summary": "Alias da org de treinamento (padrão: treino).",
312
+ "default": "treino",
313
+ "hasDynamicHelp": false,
314
+ "multiple": false,
315
+ "type": "option"
316
+ }
317
+ },
318
+ "hasDynamicHelp": false,
319
+ "hiddenAliases": [],
320
+ "id": "pypeline:run",
321
+ "pluginAlias": "pypeline",
322
+ "pluginName": "pypeline",
323
+ "pluginType": "core",
324
+ "strict": true,
325
+ "summary": "Pipeline completo: build → package.xml → training (paralelo) → validate PRD.",
326
+ "enableJsonFlag": true,
327
+ "isESM": true,
328
+ "relativePath": [
329
+ "lib",
330
+ "commands",
331
+ "pypeline",
332
+ "run.js"
333
+ ],
334
+ "aliasPermutations": [],
335
+ "permutations": [
336
+ "pypeline:run",
337
+ "run:pypeline"
338
+ ]
339
+ },
340
+ "pypeline:training": {
341
+ "aliases": [],
342
+ "args": {},
343
+ "description": "Executa sf project deploy start contra a org de treinamento com RunLocalTests. Grava o output em deploy_training_output.log.",
344
+ "examples": [
345
+ "<%= config.bin %> pypeline deploy training",
346
+ "<%= config.bin %> pypeline deploy training --target-org minha-org-treino --wait 120"
347
+ ],
348
+ "flags": {
349
+ "json": {
350
+ "description": "Format output as json.",
351
+ "helpGroup": "GLOBAL",
352
+ "name": "json",
353
+ "allowNo": false,
354
+ "type": "boolean"
355
+ },
356
+ "flags-dir": {
357
+ "helpGroup": "GLOBAL",
358
+ "name": "flags-dir",
359
+ "summary": "Import flag values from a directory.",
360
+ "hasDynamicHelp": false,
361
+ "multiple": false,
362
+ "type": "option"
363
+ },
364
+ "target-org": {
365
+ "name": "target-org",
366
+ "summary": "Alias da org de treinamento (padrão: treino).",
367
+ "default": "treino",
368
+ "hasDynamicHelp": false,
369
+ "multiple": false,
370
+ "type": "option"
371
+ },
372
+ "wait": {
373
+ "char": "w",
374
+ "name": "wait",
375
+ "summary": "Minutos de espera pelo resultado do deploy (padrão: 240).",
376
+ "default": 240,
377
+ "hasDynamicHelp": false,
378
+ "multiple": false,
379
+ "type": "option"
380
+ }
381
+ },
382
+ "hasDynamicHelp": false,
383
+ "hiddenAliases": [],
384
+ "id": "pypeline:training",
385
+ "pluginAlias": "pypeline",
386
+ "pluginName": "pypeline",
387
+ "pluginType": "core",
388
+ "strict": true,
389
+ "summary": "Etapa 3: deploy em Training.",
390
+ "enableJsonFlag": true,
391
+ "isESM": true,
392
+ "relativePath": [
393
+ "lib",
394
+ "commands",
395
+ "pypeline",
396
+ "training.js"
397
+ ],
398
+ "aliasPermutations": [],
399
+ "permutations": [
400
+ "pypeline:training",
401
+ "training:pypeline"
402
+ ]
403
+ },
404
+ "pypeline:deploy:training": {
405
+ "aliases": [],
406
+ "args": {},
407
+ "description": "Executa sf project deploy start contra a org de treinamento com RunLocalTests. Grava o output em deploy_training_output.log.",
408
+ "examples": [
409
+ "<%= config.bin %> pypeline deploy training",
410
+ "<%= config.bin %> pypeline deploy training --target-org minha-org-treino --wait 120"
411
+ ],
412
+ "flags": {
413
+ "json": {
414
+ "description": "Format output as json.",
415
+ "helpGroup": "GLOBAL",
416
+ "name": "json",
417
+ "allowNo": false,
418
+ "type": "boolean"
419
+ },
420
+ "flags-dir": {
421
+ "helpGroup": "GLOBAL",
422
+ "name": "flags-dir",
423
+ "summary": "Import flag values from a directory.",
424
+ "hasDynamicHelp": false,
425
+ "multiple": false,
426
+ "type": "option"
427
+ },
428
+ "target-org": {
429
+ "name": "target-org",
430
+ "summary": "Alias da org de treinamento (padrão: treino).",
431
+ "default": "treino",
432
+ "hasDynamicHelp": false,
433
+ "multiple": false,
434
+ "type": "option"
435
+ },
436
+ "wait": {
437
+ "char": "w",
438
+ "name": "wait",
439
+ "summary": "Minutos de espera pelo resultado do deploy (padrão: 240).",
440
+ "default": 240,
441
+ "hasDynamicHelp": false,
442
+ "multiple": false,
443
+ "type": "option"
444
+ }
445
+ },
446
+ "hasDynamicHelp": false,
447
+ "hiddenAliases": [],
448
+ "id": "pypeline:deploy:training",
449
+ "pluginAlias": "pypeline",
450
+ "pluginName": "pypeline",
451
+ "pluginType": "core",
452
+ "strict": true,
453
+ "summary": "Etapa 3: deploy em Training.",
454
+ "enableJsonFlag": true,
455
+ "isESM": true,
456
+ "relativePath": [
457
+ "lib",
458
+ "commands",
459
+ "pypeline",
460
+ "deploy",
461
+ "training.js"
462
+ ],
463
+ "aliasPermutations": [],
464
+ "permutations": [
465
+ "pypeline:deploy:training",
466
+ "deploy:pypeline:training",
467
+ "deploy:training:pypeline",
468
+ "pypeline:training:deploy",
469
+ "training:pypeline:deploy",
470
+ "training:deploy:pypeline"
471
+ ]
472
+ },
473
+ "pypeline:validate:prd": {
474
+ "aliases": [],
475
+ "args": {},
476
+ "description": "Executa sf project deploy validate contra a org de produção. Extrai e salva o Job ID em prd_job_id.txt para uso posterior no quick deploy. Grava o output em deploy_prd_output.log.",
477
+ "examples": [
478
+ "<%= config.bin %> pypeline validate prd",
479
+ "<%= config.bin %> pypeline validate prd --target-org producao --wait 300"
480
+ ],
481
+ "flags": {
482
+ "json": {
483
+ "description": "Format output as json.",
484
+ "helpGroup": "GLOBAL",
485
+ "name": "json",
486
+ "allowNo": false,
487
+ "type": "boolean"
488
+ },
489
+ "flags-dir": {
490
+ "helpGroup": "GLOBAL",
491
+ "name": "flags-dir",
492
+ "summary": "Import flag values from a directory.",
493
+ "hasDynamicHelp": false,
494
+ "multiple": false,
495
+ "type": "option"
496
+ },
497
+ "target-org": {
498
+ "name": "target-org",
499
+ "summary": "Alias da org de produção (padrão: devops).",
500
+ "default": "devops",
501
+ "hasDynamicHelp": false,
502
+ "multiple": false,
503
+ "type": "option"
504
+ },
505
+ "wait": {
506
+ "char": "w",
507
+ "name": "wait",
508
+ "summary": "Minutos de espera pela validação (padrão: 240).",
509
+ "default": 240,
510
+ "hasDynamicHelp": false,
511
+ "multiple": false,
512
+ "type": "option"
513
+ }
514
+ },
515
+ "hasDynamicHelp": false,
516
+ "hiddenAliases": [],
517
+ "id": "pypeline:validate:prd",
518
+ "pluginAlias": "pypeline",
519
+ "pluginName": "pypeline",
520
+ "pluginType": "core",
521
+ "strict": true,
522
+ "summary": "Etapa 4: validação em PRD e extração do Job ID.",
523
+ "enableJsonFlag": true,
524
+ "isESM": true,
525
+ "relativePath": [
526
+ "lib",
527
+ "commands",
528
+ "pypeline",
529
+ "validate",
530
+ "prd.js"
531
+ ],
532
+ "aliasPermutations": [],
533
+ "permutations": [
534
+ "pypeline:validate:prd",
535
+ "validate:pypeline:prd",
536
+ "validate:prd:pypeline",
537
+ "pypeline:prd:validate",
538
+ "prd:pypeline:validate",
539
+ "prd:validate:pypeline"
540
+ ]
541
+ }
542
+ },
543
+ "version": "1.0.0"
544
+ }