@jahia/jahia-cli 0.2.0 → 0.3.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.
Files changed (128) hide show
  1. package/dist/commands/init.js +4 -4
  2. package/dist/commands/init.js.map +1 -1
  3. package/dist/commands/jahia/provision.d.ts +37 -2
  4. package/dist/commands/jahia/provision.d.ts.map +1 -1
  5. package/dist/commands/jahia/provision.js +241 -53
  6. package/dist/commands/jahia/provision.js.map +1 -1
  7. package/dist/commands/tests/artifacts.d.ts +25 -0
  8. package/dist/commands/tests/artifacts.d.ts.map +1 -0
  9. package/dist/commands/tests/artifacts.js +112 -0
  10. package/dist/commands/tests/artifacts.js.map +1 -0
  11. package/dist/commands/tests/build.d.ts +30 -0
  12. package/dist/commands/tests/build.d.ts.map +1 -0
  13. package/dist/commands/tests/build.js +90 -0
  14. package/dist/commands/tests/build.js.map +1 -0
  15. package/dist/commands/tests/run.d.ts +28 -0
  16. package/dist/commands/tests/run.d.ts.map +1 -0
  17. package/dist/commands/tests/run.js +166 -0
  18. package/dist/commands/tests/run.js.map +1 -0
  19. package/dist/commands/workflow/init.d.ts.map +1 -1
  20. package/dist/commands/workflow/init.js +15 -14
  21. package/dist/commands/workflow/init.js.map +1 -1
  22. package/dist/commands/workflow/run.d.ts +3 -1
  23. package/dist/commands/workflow/run.d.ts.map +1 -1
  24. package/dist/commands/workflow/run.js +62 -14
  25. package/dist/commands/workflow/run.js.map +1 -1
  26. package/dist/lib/artifacts/collect-all.d.ts +17 -0
  27. package/dist/lib/artifacts/collect-all.d.ts.map +1 -0
  28. package/dist/lib/artifacts/collect-all.js +107 -0
  29. package/dist/lib/artifacts/collect-all.js.map +1 -0
  30. package/dist/lib/artifacts/copy-container-artifacts.d.ts +13 -0
  31. package/dist/lib/artifacts/copy-container-artifacts.d.ts.map +1 -0
  32. package/dist/lib/artifacts/copy-container-artifacts.js +48 -0
  33. package/dist/lib/artifacts/copy-container-artifacts.js.map +1 -0
  34. package/dist/lib/artifacts/fetch-container-logs.d.ts +17 -0
  35. package/dist/lib/artifacts/fetch-container-logs.d.ts.map +1 -0
  36. package/dist/lib/artifacts/fetch-container-logs.js +36 -0
  37. package/dist/lib/artifacts/fetch-container-logs.js.map +1 -0
  38. package/dist/lib/artifacts/index.d.ts +6 -0
  39. package/dist/lib/artifacts/index.d.ts.map +1 -0
  40. package/dist/lib/artifacts/index.js +5 -0
  41. package/dist/lib/artifacts/index.js.map +1 -0
  42. package/dist/lib/artifacts/query-vlogs.d.ts +14 -0
  43. package/dist/lib/artifacts/query-vlogs.d.ts.map +1 -0
  44. package/dist/lib/artifacts/query-vlogs.js +33 -0
  45. package/dist/lib/artifacts/query-vlogs.js.map +1 -0
  46. package/dist/lib/artifacts/types.d.ts +28 -0
  47. package/dist/lib/artifacts/types.d.ts.map +1 -0
  48. package/dist/lib/artifacts/types.js +2 -0
  49. package/dist/lib/artifacts/types.js.map +1 -0
  50. package/dist/lib/components/cypress.d.ts +16 -0
  51. package/dist/lib/components/cypress.d.ts.map +1 -0
  52. package/dist/lib/components/cypress.js +35 -0
  53. package/dist/lib/components/cypress.js.map +1 -0
  54. package/dist/lib/components/index.d.ts.map +1 -1
  55. package/dist/lib/components/index.js +3 -0
  56. package/dist/lib/components/index.js.map +1 -1
  57. package/dist/lib/components/jahia.d.ts.map +1 -1
  58. package/dist/lib/components/jahia.js +1 -0
  59. package/dist/lib/components/jahia.js.map +1 -1
  60. package/dist/lib/components/smtp-server.d.ts.map +1 -1
  61. package/dist/lib/components/smtp-server.js +1 -0
  62. package/dist/lib/components/smtp-server.js.map +1 -1
  63. package/dist/lib/components/types.d.ts +12 -0
  64. package/dist/lib/components/types.d.ts.map +1 -1
  65. package/dist/lib/config/config-to-yaml-with-comments.d.ts.map +1 -1
  66. package/dist/lib/config/config-to-yaml-with-comments.js +28 -3
  67. package/dist/lib/config/config-to-yaml-with-comments.js.map +1 -1
  68. package/dist/lib/config/config-to-yaml.d.ts.map +1 -1
  69. package/dist/lib/config/config-to-yaml.js +13 -1
  70. package/dist/lib/config/config-to-yaml.js.map +1 -1
  71. package/dist/lib/config/parser.d.ts +17 -4
  72. package/dist/lib/config/parser.d.ts.map +1 -1
  73. package/dist/lib/config/parser.js +101 -12
  74. package/dist/lib/config/parser.js.map +1 -1
  75. package/dist/lib/config/types.d.ts +57 -3
  76. package/dist/lib/config/types.d.ts.map +1 -1
  77. package/dist/lib/providers/docker/container.d.ts +2 -0
  78. package/dist/lib/providers/docker/container.d.ts.map +1 -1
  79. package/dist/lib/providers/docker/container.js +5 -1
  80. package/dist/lib/providers/docker/container.js.map +1 -1
  81. package/dist/lib/provisioning/filter-files.d.ts +7 -0
  82. package/dist/lib/provisioning/filter-files.d.ts.map +1 -0
  83. package/dist/lib/provisioning/filter-files.js +14 -0
  84. package/dist/lib/provisioning/filter-files.js.map +1 -0
  85. package/dist/lib/provisioning/submit-file-action.d.ts +29 -0
  86. package/dist/lib/provisioning/submit-file-action.d.ts.map +1 -0
  87. package/dist/lib/provisioning/submit-file-action.js +75 -0
  88. package/dist/lib/provisioning/submit-file-action.js.map +1 -0
  89. package/dist/lib/provisioning/types.d.ts +11 -0
  90. package/dist/lib/provisioning/types.d.ts.map +1 -1
  91. package/dist/lib/tests/build-image.d.ts +33 -0
  92. package/dist/lib/tests/build-image.d.ts.map +1 -0
  93. package/dist/lib/tests/build-image.js +59 -0
  94. package/dist/lib/tests/build-image.js.map +1 -0
  95. package/dist/lib/workflow/build-sample-workflow.d.ts +5 -4
  96. package/dist/lib/workflow/build-sample-workflow.d.ts.map +1 -1
  97. package/dist/lib/workflow/build-sample-workflow.js +35 -31
  98. package/dist/lib/workflow/build-sample-workflow.js.map +1 -1
  99. package/dist/lib/workflow/executor.d.ts +3 -1
  100. package/dist/lib/workflow/executor.d.ts.map +1 -1
  101. package/dist/lib/workflow/executor.js +29 -0
  102. package/dist/lib/workflow/executor.js.map +1 -1
  103. package/dist/lib/workflow/format-workflow-sources.d.ts +17 -0
  104. package/dist/lib/workflow/format-workflow-sources.d.ts.map +1 -0
  105. package/dist/lib/workflow/format-workflow-sources.js +85 -0
  106. package/dist/lib/workflow/format-workflow-sources.js.map +1 -0
  107. package/dist/lib/workflow/load-global-workflows.d.ts +24 -0
  108. package/dist/lib/workflow/load-global-workflows.d.ts.map +1 -0
  109. package/dist/lib/workflow/load-global-workflows.js +49 -0
  110. package/dist/lib/workflow/load-global-workflows.js.map +1 -0
  111. package/dist/lib/workflow/merge-workflow-into-config.d.ts +4 -4
  112. package/dist/lib/workflow/merge-workflow-into-config.d.ts.map +1 -1
  113. package/dist/lib/workflow/merge-workflow-into-config.js +4 -4
  114. package/dist/lib/workflow/merge-workflow-into-config.js.map +1 -1
  115. package/dist/lib/workflow/merge-workflow-sources.d.ts +27 -0
  116. package/dist/lib/workflow/merge-workflow-sources.d.ts.map +1 -0
  117. package/dist/lib/workflow/merge-workflow-sources.js +55 -0
  118. package/dist/lib/workflow/merge-workflow-sources.js.map +1 -0
  119. package/dist/lib/workflow/resolve-workflow.d.ts +20 -0
  120. package/dist/lib/workflow/resolve-workflow.d.ts.map +1 -0
  121. package/dist/lib/workflow/resolve-workflow.js +38 -0
  122. package/dist/lib/workflow/resolve-workflow.js.map +1 -0
  123. package/dist/lib/workflow/resolve-workflows-file-path.d.ts +13 -0
  124. package/dist/lib/workflow/resolve-workflows-file-path.d.ts.map +1 -0
  125. package/dist/lib/workflow/resolve-workflows-file-path.js +22 -0
  126. package/dist/lib/workflow/resolve-workflows-file-path.js.map +1 -0
  127. package/oclif.manifest.json +318 -108
  128. package/package.json +4 -2
@@ -5,7 +5,7 @@ import { confirm, input } from '@inquirer/prompts';
5
5
  import { configToYamlWithComments } from '../lib/config/config-to-yaml-with-comments.js';
6
6
  import { DEFAULT_PROVIDER, DEFAULT_SCAFFOLDING_PATH, DEFAULT_SCAFFOLDING_REPOSITORY, DEFAULT_SCAFFOLDING_VERSION, generateEnvName, } from '../lib/config/defaults.js';
7
7
  import { jahia as jahiaComponent } from '../lib/components/jahia.js';
8
- import { buildSampleWorkflow } from '../lib/workflow/build-sample-workflow.js';
8
+ import { buildSampleWorkflows } from '../lib/workflow/build-sample-workflow.js';
9
9
  const DEFAULT_CONFIG_FILENAME = 'jahia-cli.config.yml';
10
10
  /**
11
11
  * Prompts the user for config file name and directory.
@@ -92,7 +92,7 @@ export const promptForTestsConfig = async () => {
92
92
  export const assembleConfig = (environment, tests) => ({
93
93
  environment,
94
94
  tests,
95
- workflow: buildSampleWorkflow(),
95
+ workflows: buildSampleWorkflows(),
96
96
  });
97
97
  /**
98
98
  * Builds the final success message shown after init completes.
@@ -147,8 +147,8 @@ export default class Init extends Command {
147
147
  // Step 4: Workflow (non-interactive — just include sample)
148
148
  if (!flags.json) {
149
149
  this.log('');
150
- this.log(' ── Workflow ──');
151
- this.log(' Adding sample workflow (init → create → alive → test → cleanup)');
150
+ this.log(' ── Workflows ──');
151
+ this.log(' Adding sample "main" workflow (init → create → alive → test → cleanup)');
152
152
  }
153
153
  // Assemble and write
154
154
  const config = assembleConfig(environment, tests);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,8BAA8B,EAC9B,2BAA2B,EAC3B,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAqB,EAAE;IAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;QAC3B,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,uBAAuB;KACjC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;QAC5B,OAAO,EAAE,uCAAuC;QAChD,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,IAAyC,EAAE;IACzF,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;QAC7B,OAAO,EAAE,iDAAiD;QAC1D,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,IAAgC,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;QACvB,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,eAAe,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,GAAG,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC;QAC7B,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,MAAM,2BAA2B,EAAE,CAAC;IAE/D,MAAM,SAAS,GAAG,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAElF,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,gBAAgB;QAC1B,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,OAAO;gBACb,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD;YACD,GAAG,kBAAkB;SACtB;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,IAA0B,EAAE;IACnE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC;QAC7B,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE,8BAA8B;KACxC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;QACvB,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;QAC1B,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE,2BAA2B;KACrC,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;KAC3C,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAA8B,EAC9B,KAAkB,EACF,EAAE,CAAC,CAAC;IACpB,WAAW;IACX,KAAK;IACL,QAAQ,EAAE,mBAAmB,EAAE;CAChC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,UAAkB,EAAU,EAAE,CACpE;IACE,8BAA8B,UAAU,EAAE;IAC1C,EAAE;IACF,eAAe;IACf,4BAA4B,UAAU,EAAE;IACxC,kEAAkE,UAAU,EAAE;IAC9E,4DAA4D,UAAU,EAAE;CACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAU,WAAW,GACzB,sFAAsF;QACtF,qFAAqF;QACrF,yDAAyD,CAAC;IAE5D,MAAM,CAAU,QAAQ,GAAG;QACzB,wBAAwB;QACxB,+BAA+B;KAChC,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gEAAgE;YAC7E,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAE/C,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,0BAA0B,EAAE,CAAC;QAEvD,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAE3C,2DAA2D;QAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QAChF,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,SAAS,CACZ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAC3C,SAAS,EACT,CAAC,CACF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;gBAChC,OAAO,EAAE,8BAA8B;gBACvC,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACb,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { Command } from '@oclif/core';
2
- import type { ProvisioningAttachment } from '../../lib/provisioning/types.js';
2
+ import type { FileActionResult, ProvisioningAttachment } from '../../lib/provisioning/types.js';
3
+ /**
4
+ * Detected provisioning mode based on provided flags.
5
+ */
6
+ export type ProvisionMode = 'manifest' | 'modules' | 'scripts';
3
7
  /**
4
8
  * Reads file attachments from disk and returns them as ProvisioningAttachment objects.
5
9
  */
@@ -15,12 +19,36 @@ export declare const formatProvisioningResultHuman: (result: {
15
19
  readonly manifest: string;
16
20
  readonly durationMs: number;
17
21
  }) => string;
22
+ /**
23
+ * Formats a single file action result for human-readable output.
24
+ */
25
+ export declare const formatFileActionResult: (result: FileActionResult) => string;
26
+ /**
27
+ * Detects the provisioning mode from provided flags.
28
+ * Exactly one of manifest, modules, or scripts must be provided.
29
+ */
30
+ export declare const detectProvisionMode: (flags: {
31
+ readonly manifest: string | undefined;
32
+ readonly modules: string | undefined;
33
+ readonly scripts: string | undefined;
34
+ }) => ProvisionMode;
35
+ /**
36
+ * Validates flag combinations for cross-flag business rules.
37
+ */
38
+ export declare const validateFlagCombinations: (mode: ProvisionMode, flags: {
39
+ readonly assets: string | undefined;
40
+ readonly file: readonly string[] | undefined;
41
+ readonly filter: string | undefined;
42
+ }) => void;
18
43
  export default class JahiaProvision extends Command {
19
44
  static description: string;
20
45
  static examples: string[];
21
46
  static flags: {
22
47
  state: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
- manifest: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
48
+ manifest: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
49
+ modules: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
50
+ scripts: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
51
+ filter: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
52
  url: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
53
  username: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
54
  password: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -29,5 +57,12 @@ export default class JahiaProvision extends Command {
29
57
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
58
  };
31
59
  run(): Promise<void>;
60
+ private runManifestMode;
61
+ private runFileActionMode;
62
+ /**
63
+ * Processes files sequentially, stopping on the first failure.
64
+ * Returns all results up to and including the failed one (if any).
65
+ */
66
+ private processFilesSequentially;
32
67
  }
33
68
  //# sourceMappingURL=provision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/commands/jahia/provision.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAM9E;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,SAAS,MAAM,EAAE,KAC3B,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAQ3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,GAAI,QAAQ;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,KAAG,MAkBH,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,OAAgB,WAAW,SAG2D;IAEtF,OAAgB,QAAQ,WAOtB;IAEF,OAAgB,KAAK;;;;;;;;;MA+BnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgGlC"}
1
+ {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/commands/jahia/provision.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAU7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAMhG;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,SAAS,MAAM,EAAE,KAC3B,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAQ3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,GAAI,QAAQ;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,KAAG,MAkBH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,gBAAgB,KAAG,MAIjE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,KAAG,aAqBH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,aAAa,EACnB,OAAO;IACL,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,KACA,IAYF,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,OAAgB,WAAW,SAMmE;IAE9F,OAAgB,QAAQ,WAQtB;IAEF,OAAgB,KAAK;;;;;;;;;;;;MA0CnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA+CnB,eAAe;YA0Ff,iBAAiB;IA6F/B;;;OAGG;YACW,wBAAwB;CAyCvC"}
@@ -3,8 +3,10 @@ import { basename } from 'node:path';
3
3
  import { Command, Flags } from '@oclif/core';
4
4
  import { detectManifestSource } from '../../lib/provisioning/detect-manifest-source.js';
5
5
  import { fetchManifest } from '../../lib/provisioning/fetch-manifest.js';
6
+ import { filterFiles } from '../../lib/provisioning/filter-files.js';
6
7
  import { readManifest } from '../../lib/provisioning/read-manifest.js';
7
8
  import { resolveAssetPaths } from '../../lib/provisioning/resolve-asset-paths.js';
9
+ import { submitFileAction } from '../../lib/provisioning/submit-file-action.js';
8
10
  import { submitProvisioning } from '../../lib/provisioning/submit-provisioning.js';
9
11
  import { getActiveEnvironment } from '../../lib/state/get-active-environment.js';
10
12
  import { getJahiaConnectionDefaults } from '../../lib/state/get-jahia-connection-defaults.js';
@@ -41,24 +43,83 @@ export const formatProvisioningResultHuman = (result) => {
41
43
  }
42
44
  return lines.join('\n');
43
45
  };
46
+ /**
47
+ * Formats a single file action result for human-readable output.
48
+ */
49
+ export const formatFileActionResult = (result) => {
50
+ const icon = result.success ? '✓' : '✗';
51
+ const status = result.success ? 'succeeded' : 'failed';
52
+ return ` ${icon} ${result.filename} — ${status} (HTTP ${String(result.statusCode)}, ${String(result.durationMs)}ms)`;
53
+ };
54
+ /**
55
+ * Detects the provisioning mode from provided flags.
56
+ * Exactly one of manifest, modules, or scripts must be provided.
57
+ */
58
+ export const detectProvisionMode = (flags) => {
59
+ const modes = [
60
+ ...(flags.manifest !== undefined ? ['manifest'] : []),
61
+ ...(flags.modules !== undefined ? ['modules'] : []),
62
+ ...(flags.scripts !== undefined ? ['scripts'] : []),
63
+ ];
64
+ if (modes.length === 0) {
65
+ throw new Error('One of --manifest, --modules, or --scripts is required.');
66
+ }
67
+ if (modes.length > 1) {
68
+ throw new Error('Only one of --manifest, --modules, or --scripts can be specified at a time.');
69
+ }
70
+ const mode = modes[0];
71
+ if (mode === undefined) {
72
+ throw new Error('One of --manifest, --modules, or --scripts is required.');
73
+ }
74
+ return mode;
75
+ };
76
+ /**
77
+ * Validates flag combinations for cross-flag business rules.
78
+ */
79
+ export const validateFlagCombinations = (mode, flags) => {
80
+ if (mode !== 'manifest' && flags.assets !== undefined) {
81
+ throw new Error('--assets can only be used with --manifest mode.');
82
+ }
83
+ if (mode !== 'manifest' && flags.file !== undefined && flags.file.length > 0) {
84
+ throw new Error('--file can only be used with --manifest mode.');
85
+ }
86
+ if (flags.filter !== undefined && mode === 'manifest' && flags.assets === undefined) {
87
+ throw new Error('--filter requires --assets when used with --manifest mode.');
88
+ }
89
+ };
44
90
  export default class JahiaProvision extends Command {
45
- static description = 'Execute a provisioning script against a running Jahia instance. ' +
46
- 'The manifest can be a local YAML file or a public URL (auto-detected). ' +
47
- 'Optional file attachments can be included via --file flags or --assets directory.';
91
+ static description = 'Execute provisioning operations against a running Jahia instance. ' +
92
+ 'Three modes are available (exactly one per invocation):\n' +
93
+ ' --manifest: Submit a YAML provisioning manifest with optional file attachments.\n' +
94
+ ' --modules: Upload module files (JARs) from a directory, one at a time.\n' +
95
+ ' --scripts: Execute provisioning scripts from a directory, one at a time.\n' +
96
+ 'Use --filter to limit which files are processed (glob pattern, matched against filename).';
48
97
  static examples = [
49
98
  '<%= config.bin %> jahia provision --manifest ./provisioning/setup.yaml',
50
- '<%= config.bin %> jahia provision --manifest https://raw.githubusercontent.com/org/repo/main/provisioning.yaml',
51
- '<%= config.bin %> jahia provision --manifest ./setup.yaml --file ./modules/mymodule.jar',
52
99
  '<%= config.bin %> jahia provision --manifest ./setup.yaml --assets ./artifacts',
53
- '<%= config.bin %> jahia provision --manifest ./setup.yaml --file ./mod1.jar --file ./mod2.jar --json',
54
- '<%= config.bin %> jahia provision --manifest ./setup.yaml --url http://localhost:8080 --username root --password secret',
100
+ '<%= config.bin %> jahia provision --manifest ./setup.yaml --assets ./artifacts --filter "*.jar"',
101
+ '<%= config.bin %> jahia provision --modules ./modules/',
102
+ '<%= config.bin %> jahia provision --modules ./modules/ --filter "*-SNAPSHOT.jar"',
103
+ '<%= config.bin %> jahia provision --scripts ./scripts/',
104
+ '<%= config.bin %> jahia provision --scripts ./scripts/ --filter "*.groovy"',
55
105
  ];
56
106
  static flags = {
57
107
  state: stateFlag,
58
108
  manifest: Flags.string({
59
109
  char: 'm',
60
110
  description: 'Path to a local YAML file or a public URL of the provisioning manifest',
61
- required: true,
111
+ exclusive: ['modules', 'scripts'],
112
+ }),
113
+ modules: Flags.string({
114
+ description: 'Path to a directory of module files to install (one at a time via installOrUpgradeBundle)',
115
+ exclusive: ['manifest', 'scripts', 'assets', 'file'],
116
+ }),
117
+ scripts: Flags.string({
118
+ description: 'Path to a directory of provisioning scripts to execute (one at a time via executeScript)',
119
+ exclusive: ['manifest', 'modules', 'assets', 'file'],
120
+ }),
121
+ filter: Flags.string({
122
+ description: 'Glob pattern to filter files in --assets, --modules, or --scripts directories (default: all files). Example: "*-SNAPSHOT.jar"',
62
123
  }),
63
124
  url: Flags.string({
64
125
  description: 'Jahia base URL (default: from state, or http://localhost:8080)',
@@ -73,12 +134,12 @@ export default class JahiaProvision extends Command {
73
134
  }),
74
135
  file: Flags.string({
75
136
  char: 'f',
76
- description: 'File attachment to include (can be specified multiple times)',
137
+ description: 'File attachment to include with --manifest (can be specified multiple times)',
77
138
  multiple: true,
78
139
  }),
79
140
  assets: Flags.string({
80
141
  char: 'a',
81
- description: 'Directory whose files are attached to the provisioning request (recursive)',
142
+ description: 'Directory whose files are attached to the --manifest provisioning request',
82
143
  }),
83
144
  json: Flags.boolean({
84
145
  description: 'Output result as structured JSON (for AI agents and scripting)',
@@ -87,21 +148,58 @@ export default class JahiaProvision extends Command {
87
148
  };
88
149
  async run() {
89
150
  const { flags } = await this.parse(JahiaProvision);
90
- const stateOverride = flags.state;
91
- const statePath = stateFilePath(stateOverride);
92
- const env = await getActiveEnvironment(stateOverride);
151
+ const statePath = stateFilePath(flags.state);
152
+ const env = await getActiveEnvironment(flags.state);
93
153
  const envName = env?.name ?? 'unknown';
94
154
  const defaults = getJahiaConnectionDefaults(env);
95
155
  const url = flags.url ?? defaults.url;
96
156
  const username = flags.username ?? defaults.username;
97
157
  const password = flags.password ?? defaults.password;
158
+ try {
159
+ const mode = detectProvisionMode({
160
+ manifest: flags.manifest,
161
+ modules: flags.modules,
162
+ scripts: flags.scripts,
163
+ });
164
+ validateFlagCombinations(mode, {
165
+ assets: flags.assets,
166
+ file: flags.file,
167
+ filter: flags.filter,
168
+ });
169
+ if (mode === 'manifest') {
170
+ await this.runManifestMode(flags, { url, username, password, envName, statePath });
171
+ }
172
+ else {
173
+ const dirPath = mode === 'modules' ? flags.modules : flags.scripts;
174
+ if (dirPath === undefined) {
175
+ throw new Error(`Missing directory path for --${mode} mode.`);
176
+ }
177
+ const actionType = mode === 'modules' ? 'module' : 'script';
178
+ await this.runFileActionMode(dirPath, actionType, mode, flags, { url, username, password, envName });
179
+ }
180
+ }
181
+ catch (error) {
182
+ const message = error instanceof Error ? error.message : String(error);
183
+ if (flags.json) {
184
+ this.log(JSON.stringify({ success: false, environment: envName, stateFile: statePath, error: message }, null, 2));
185
+ }
186
+ else {
187
+ this.log(`\n✗ ${message}`);
188
+ }
189
+ this.exit(1);
190
+ }
191
+ }
192
+ async runManifestMode(flags, connection) {
98
193
  const manifest = flags.manifest;
194
+ if (manifest === undefined) {
195
+ throw new Error('--manifest is required in manifest mode.');
196
+ }
99
197
  const source = detectManifestSource(manifest);
100
198
  if (!flags.json) {
101
- this.log(`Provisioning Jahia environment "${envName}"...`);
199
+ this.log(`Provisioning Jahia environment "${connection.envName}"...`);
102
200
  this.log(` Manifest: ${manifest} (${source})`);
103
- this.log(` URL: ${url}`);
104
- this.log(` State: ${statePath}`);
201
+ this.log(` URL: ${connection.url}`);
202
+ this.log(` State: ${connection.statePath}`);
105
203
  if (flags.file && flags.file.length > 0) {
106
204
  this.log(` Files: ${flags.file.join(', ')}`);
107
205
  }
@@ -110,55 +208,145 @@ export default class JahiaProvision extends Command {
110
208
  }
111
209
  this.log('');
112
210
  }
113
- try {
114
- // Load manifest
115
- if (!flags.json) {
116
- this.log(source === 'url' ? 'Downloading manifest...' : 'Reading manifest...');
117
- }
118
- const { content: manifestContent, filename: manifestFilename } = source === 'url'
119
- ? await fetchManifest(manifest)
120
- : await readManifest(manifest);
121
- // Load file attachments from --file flags and --assets directory
122
- const filePaths = flags.file ?? [];
123
- const assetPaths = flags.assets ? await resolveAssetPaths(flags.assets) : [];
124
- const allPaths = [...filePaths, ...assetPaths];
125
- const attachments = await loadAttachments(allPaths);
126
- if (!flags.json && attachments.length > 0) {
127
- this.log(`Attaching ${String(attachments.length)} file(s)...`);
128
- }
129
- if (!flags.json) {
130
- this.log('Submitting provisioning script...');
131
- }
132
- const result = await submitProvisioning({
133
- url,
134
- username,
135
- password,
136
- manifestContent,
137
- manifestFilename,
138
- attachments,
139
- });
211
+ if (!flags.json) {
212
+ this.log(source === 'url' ? 'Downloading manifest...' : 'Reading manifest...');
213
+ }
214
+ const { content: manifestContent, filename: manifestFilename } = source === 'url'
215
+ ? await fetchManifest(manifest)
216
+ : await readManifest(manifest);
217
+ const filePaths = flags.file ?? [];
218
+ const rawAssetPaths = flags.assets !== undefined ? await resolveAssetPaths(flags.assets) : [];
219
+ const assetPaths = flags.filter !== undefined
220
+ ? filterFiles(rawAssetPaths, flags.filter)
221
+ : rawAssetPaths;
222
+ const allPaths = [...filePaths, ...assetPaths];
223
+ const attachments = await loadAttachments(allPaths);
224
+ if (!flags.json && attachments.length > 0) {
225
+ this.log(`Attaching ${String(attachments.length)} file(s)...`);
226
+ }
227
+ if (!flags.json) {
228
+ this.log('Submitting provisioning script...');
229
+ }
230
+ const result = await submitProvisioning({
231
+ url: connection.url,
232
+ username: connection.username,
233
+ password: connection.password,
234
+ manifestContent,
235
+ manifestFilename,
236
+ attachments,
237
+ });
238
+ if (flags.json) {
239
+ this.log(JSON.stringify({ ...result, environment: connection.envName, stateFile: connection.statePath, source }, null, 2));
240
+ }
241
+ else {
242
+ this.log('');
243
+ this.log(formatProvisioningResultHuman(result));
244
+ }
245
+ if (!result.success) {
246
+ this.exit(1);
247
+ }
248
+ }
249
+ async runFileActionMode(dirPath, actionType, mode, flags, connection) {
250
+ const rawPaths = await resolveAssetPaths(dirPath);
251
+ const filePaths = flags.filter !== undefined
252
+ ? filterFiles(rawPaths, flags.filter)
253
+ : [...rawPaths].sort((a, b) => basename(a).localeCompare(basename(b)));
254
+ if (filePaths.length === 0) {
255
+ const filterNote = flags.filter !== undefined ? ` matching "${flags.filter}"` : '';
140
256
  if (flags.json) {
141
- this.log(JSON.stringify({ ...result, environment: envName, stateFile: statePath, source }, null, 2));
257
+ this.log(JSON.stringify({
258
+ success: true,
259
+ mode,
260
+ directory: dirPath,
261
+ filter: flags.filter ?? '*',
262
+ filesMatched: 0,
263
+ filesProcessed: 0,
264
+ results: [],
265
+ }, null, 2));
142
266
  }
143
267
  else {
144
- this.log('');
145
- this.log(formatProvisioningResultHuman(result));
268
+ this.log(`No files found in "${dirPath}"${filterNote}. Nothing to do.`);
146
269
  }
147
- if (!result.success) {
148
- this.exit(1);
270
+ return;
271
+ }
272
+ const modeLabel = mode === 'modules' ? 'module' : 'script';
273
+ if (!flags.json) {
274
+ this.log(`▶ Uploading ${String(filePaths.length)} ${modeLabel}(s) from "${dirPath}"...`);
275
+ this.log(` URL: ${connection.url}`);
276
+ if (flags.filter !== undefined) {
277
+ this.log(` Filter: ${flags.filter}`);
149
278
  }
279
+ this.log('');
150
280
  }
151
- catch (error) {
152
- const message = error instanceof Error ? error.message : String(error);
281
+ const results = await this.processFilesSequentially(filePaths, actionType, connection);
282
+ const lastResult = results[results.length - 1];
283
+ const hasFailed = lastResult !== undefined && !lastResult.success;
284
+ if (!flags.json) {
285
+ results.forEach((r) => {
286
+ this.log(formatFileActionResult(r));
287
+ });
288
+ }
289
+ if (hasFailed) {
153
290
  if (flags.json) {
154
- this.log(JSON.stringify({ success: false, environment: envName, stateFile: statePath, error: message }, null, 2));
291
+ this.log(JSON.stringify({
292
+ success: false,
293
+ mode,
294
+ directory: dirPath,
295
+ filter: flags.filter ?? '*',
296
+ filesMatched: filePaths.length,
297
+ filesProcessed: results.length,
298
+ failedAt: lastResult.filename,
299
+ results,
300
+ }, null, 2));
155
301
  }
156
302
  else {
157
- this.log('');
158
- this.log(`✗ ${message}`);
303
+ this.log(`\n✗ Stopped after failure on "${lastResult.filename}".`);
159
304
  }
160
305
  this.exit(1);
306
+ return;
307
+ }
308
+ if (flags.json) {
309
+ this.log(JSON.stringify({
310
+ success: true,
311
+ mode,
312
+ directory: dirPath,
313
+ filter: flags.filter ?? '*',
314
+ filesMatched: filePaths.length,
315
+ filesProcessed: results.length,
316
+ results,
317
+ }, null, 2));
161
318
  }
319
+ else {
320
+ this.log(`\n✓ All ${String(results.length)} ${modeLabel}(s) processed successfully.`);
321
+ }
322
+ }
323
+ /**
324
+ * Processes files sequentially, stopping on the first failure.
325
+ * Returns all results up to and including the failed one (if any).
326
+ */
327
+ async processFilesSequentially(filePaths, actionType, connection) {
328
+ const processNext = async (remaining, accumulated) => {
329
+ const nextPath = remaining[0];
330
+ if (nextPath === undefined) {
331
+ return accumulated;
332
+ }
333
+ const content = await readFile(nextPath);
334
+ const filename = basename(nextPath);
335
+ const result = await submitFileAction({
336
+ url: connection.url,
337
+ username: connection.username,
338
+ password: connection.password,
339
+ filename,
340
+ content,
341
+ actionType,
342
+ });
343
+ const updated = [...accumulated, result];
344
+ if (!result.success) {
345
+ return updated;
346
+ }
347
+ return processNext(remaining.slice(1), updated);
348
+ };
349
+ return processNext(filePaths, []);
162
350
  }
163
351
  }
164
352
  //# sourceMappingURL=provision.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/commands/jahia/provision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/commands/jahia/provision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Command } from '@oclif/core';
2
+ import type { CollectionResult, ComponentCollectionResult } from '../../lib/artifacts/types.js';
3
+ /**
4
+ * Formats a single component's collection result as human-readable text.
5
+ */
6
+ export declare const formatComponentResult: (c: ComponentCollectionResult) => string;
7
+ /**
8
+ * Formats the full collection result as human-readable output.
9
+ */
10
+ export declare const formatCollectionHuman: (result: CollectionResult) => string;
11
+ /**
12
+ * Builds JSON output for the collection result.
13
+ */
14
+ export declare const buildCollectionJson: (result: CollectionResult) => string;
15
+ export default class TestsArtifacts extends Command {
16
+ static description: string;
17
+ static examples: string[];
18
+ static flags: {
19
+ state: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ };
23
+ run(): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/commands/tests/artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAG7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAOhG;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,GAAG,yBAAyB,KAAG,MAcpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,gBAAgB,KAAG,MAYhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,gBAAgB,KAAG,MAqB5D,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,OAAgB,WAAW,SAG+B;IAE1D,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;MAUnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiClC"}