@camunda8/cli 3.1.0 → 3.2.0-alpha.10

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 (311) hide show
  1. package/CONTEXT.md +7 -15
  2. package/EXAMPLES.md +253 -1
  3. package/PLUGIN-HELP.md +1 -1
  4. package/README.md +50 -180
  5. package/dist/command-dispatch.d.ts +1 -1
  6. package/dist/command-dispatch.d.ts.map +1 -1
  7. package/dist/command-dispatch.js +1 -1
  8. package/dist/command-dispatch.js.map +1 -1
  9. package/dist/commands/completion.d.ts +1 -1
  10. package/dist/commands/completion.d.ts.map +1 -1
  11. package/dist/commands/completion.js +2 -3
  12. package/dist/commands/completion.js.map +1 -1
  13. package/dist/commands/deploy.d.ts +13 -0
  14. package/dist/commands/deploy.d.ts.map +1 -0
  15. package/dist/commands/deploy.js +328 -0
  16. package/dist/commands/deploy.js.map +1 -0
  17. package/dist/commands/forms.d.ts +1 -1
  18. package/dist/commands/forms.d.ts.map +1 -1
  19. package/dist/commands/forms.js +8 -8
  20. package/dist/commands/forms.js.map +1 -1
  21. package/dist/commands/helpers/deploy-helpers.d.ts +120 -0
  22. package/dist/commands/helpers/deploy-helpers.d.ts.map +1 -0
  23. package/dist/{deployments.js → commands/helpers/deploy-helpers.js} +307 -155
  24. package/dist/commands/helpers/deploy-helpers.js.map +1 -0
  25. package/dist/commands/identity-authorizations.d.ts +5 -18
  26. package/dist/commands/identity-authorizations.d.ts.map +1 -1
  27. package/dist/commands/identity-authorizations.js +8 -10
  28. package/dist/commands/identity-authorizations.js.map +1 -1
  29. package/dist/commands/identity-groups.d.ts +5 -5
  30. package/dist/commands/identity-groups.d.ts.map +1 -1
  31. package/dist/commands/identity-groups.js +7 -8
  32. package/dist/commands/identity-groups.js.map +1 -1
  33. package/dist/commands/identity-mapping-rules.d.ts +5 -5
  34. package/dist/commands/identity-mapping-rules.d.ts.map +1 -1
  35. package/dist/commands/identity-mapping-rules.js +7 -8
  36. package/dist/commands/identity-mapping-rules.js.map +1 -1
  37. package/dist/commands/identity-roles.d.ts +5 -5
  38. package/dist/commands/identity-roles.d.ts.map +1 -1
  39. package/dist/commands/identity-roles.js +7 -8
  40. package/dist/commands/identity-roles.js.map +1 -1
  41. package/dist/commands/identity-tenants.d.ts +5 -5
  42. package/dist/commands/identity-tenants.d.ts.map +1 -1
  43. package/dist/commands/identity-tenants.js +7 -8
  44. package/dist/commands/identity-tenants.js.map +1 -1
  45. package/dist/commands/identity-users.d.ts +5 -5
  46. package/dist/commands/identity-users.d.ts.map +1 -1
  47. package/dist/commands/identity-users.js +7 -8
  48. package/dist/commands/identity-users.js.map +1 -1
  49. package/dist/commands/identity.d.ts +11 -31
  50. package/dist/commands/identity.d.ts.map +1 -1
  51. package/dist/commands/identity.js +15 -15
  52. package/dist/commands/identity.js.map +1 -1
  53. package/dist/commands/incidents.d.ts +3 -3
  54. package/dist/commands/incidents.d.ts.map +1 -1
  55. package/dist/commands/incidents.js +6 -6
  56. package/dist/commands/incidents.js.map +1 -1
  57. package/dist/commands/jobs.d.ts +4 -4
  58. package/dist/commands/jobs.d.ts.map +1 -1
  59. package/dist/commands/jobs.js +7 -7
  60. package/dist/commands/jobs.js.map +1 -1
  61. package/dist/commands/mcp-proxy.d.ts +1 -1
  62. package/dist/commands/mcp-proxy.d.ts.map +1 -1
  63. package/dist/commands/mcp-proxy.js +5 -9
  64. package/dist/commands/mcp-proxy.js.map +1 -1
  65. package/dist/commands/messages.d.ts +2 -2
  66. package/dist/commands/messages.d.ts.map +1 -1
  67. package/dist/commands/messages.js +4 -4
  68. package/dist/commands/messages.js.map +1 -1
  69. package/dist/commands/open.d.ts +4 -4
  70. package/dist/commands/open.d.ts.map +1 -1
  71. package/dist/commands/open.js +6 -6
  72. package/dist/commands/open.js.map +1 -1
  73. package/dist/commands/plugins.d.ts +9 -9
  74. package/dist/commands/plugins.d.ts.map +1 -1
  75. package/dist/commands/plugins.js +2 -7
  76. package/dist/commands/plugins.js.map +1 -1
  77. package/dist/commands/process-definitions.d.ts +2 -2
  78. package/dist/commands/process-definitions.d.ts.map +1 -1
  79. package/dist/commands/process-definitions.js +5 -5
  80. package/dist/commands/process-definitions.js.map +1 -1
  81. package/dist/commands/process-instances.d.ts +5 -5
  82. package/dist/commands/process-instances.d.ts.map +1 -1
  83. package/dist/commands/process-instances.js +8 -9
  84. package/dist/commands/process-instances.js.map +1 -1
  85. package/dist/commands/profiles.d.ts +4 -36
  86. package/dist/commands/profiles.d.ts.map +1 -1
  87. package/dist/commands/profiles.js +43 -41
  88. package/dist/commands/profiles.js.map +1 -1
  89. package/dist/commands/run.d.ts +2 -2
  90. package/dist/commands/run.d.ts.map +1 -1
  91. package/dist/commands/run.js +4 -4
  92. package/dist/commands/run.js.map +1 -1
  93. package/dist/commands/search.d.ts +7 -7
  94. package/dist/commands/search.d.ts.map +1 -1
  95. package/dist/commands/search.js +9 -11
  96. package/dist/commands/search.js.map +1 -1
  97. package/dist/commands/session.d.ts +4 -4
  98. package/dist/commands/session.d.ts.map +1 -1
  99. package/dist/commands/session.js +26 -5
  100. package/dist/commands/session.js.map +1 -1
  101. package/dist/commands/topology.d.ts +1 -1
  102. package/dist/commands/topology.d.ts.map +1 -1
  103. package/dist/commands/topology.js +2 -2
  104. package/dist/commands/topology.js.map +1 -1
  105. package/dist/commands/user-tasks.d.ts +2 -2
  106. package/dist/commands/user-tasks.d.ts.map +1 -1
  107. package/dist/commands/user-tasks.js +5 -5
  108. package/dist/commands/user-tasks.js.map +1 -1
  109. package/dist/commands/variables.d.ts +1 -1
  110. package/dist/commands/variables.d.ts.map +1 -1
  111. package/dist/commands/variables.js +3 -3
  112. package/dist/commands/variables.js.map +1 -1
  113. package/dist/commands/watch.d.ts +2 -2
  114. package/dist/commands/watch.d.ts.map +1 -1
  115. package/dist/commands/watch.js +86 -19
  116. package/dist/commands/watch.js.map +1 -1
  117. package/dist/core/client.d.ts.map +1 -0
  118. package/dist/core/client.js.map +1 -0
  119. package/dist/{config.d.ts → core/config.d.ts} +28 -2
  120. package/dist/core/config.d.ts.map +1 -0
  121. package/dist/{config.js → core/config.js} +61 -5
  122. package/dist/core/config.js.map +1 -0
  123. package/dist/core/errors.d.ts.map +1 -0
  124. package/dist/core/errors.js.map +1 -0
  125. package/dist/core/index.d.ts +7 -0
  126. package/dist/core/index.d.ts.map +1 -0
  127. package/dist/core/index.js +13 -0
  128. package/dist/core/index.js.map +1 -0
  129. package/dist/core/logger.d.ts.map +1 -0
  130. package/dist/core/logger.js.map +1 -0
  131. package/dist/core/runtime.d.ts.map +1 -0
  132. package/dist/{runtime.js → core/runtime.js} +2 -2
  133. package/dist/core/runtime.js.map +1 -0
  134. package/dist/core/update-check.d.ts.map +1 -0
  135. package/dist/core/update-check.js.map +1 -0
  136. package/dist/default-plugins/bpmn/README.md +12 -3
  137. package/dist/default-plugins/bpmn/c8ctl-plugin.js +7376 -108
  138. package/dist/default-plugins/bpmn/package.json +8 -1
  139. package/dist/default-plugins/cluster/c8ctl-plugin.js +66 -9
  140. package/dist/default-plugins/element-template/README.md +6 -3
  141. package/dist/default-plugins/element-template/c8ctl-plugin.js +10195 -229
  142. package/dist/default-plugins/element-template/docs/design.md +1 -1
  143. package/dist/default-plugins/element-template/package.json +11 -1
  144. package/dist/default-plugins/feel/c8ctl-plugin.js +14030 -584
  145. package/dist/default-plugins/feel/package.json +4 -1
  146. package/dist/{command-framework.d.ts → framework/command-framework.d.ts} +23 -9
  147. package/dist/framework/command-framework.d.ts.map +1 -0
  148. package/dist/{command-framework.js → framework/command-framework.js} +16 -29
  149. package/dist/framework/command-framework.js.map +1 -0
  150. package/dist/{command-registry.d.ts → framework/command-registry.d.ts} +35 -8
  151. package/dist/framework/command-registry.d.ts.map +1 -0
  152. package/dist/{command-registry.js → framework/command-registry.js} +74 -9
  153. package/dist/framework/command-registry.js.map +1 -0
  154. package/dist/{command-validation.d.ts → framework/command-validation.d.ts} +0 -14
  155. package/dist/framework/command-validation.d.ts.map +1 -0
  156. package/dist/{command-validation.js → framework/command-validation.js} +1 -34
  157. package/dist/framework/command-validation.js.map +1 -0
  158. package/dist/framework/index.d.ts +10 -0
  159. package/dist/framework/index.d.ts.map +1 -0
  160. package/dist/framework/index.js +16 -0
  161. package/dist/framework/index.js.map +1 -0
  162. package/dist/{plugin-loader.d.ts → framework/plugins/plugin-loader.d.ts} +30 -5
  163. package/dist/framework/plugins/plugin-loader.d.ts.map +1 -0
  164. package/dist/{plugin-loader.js → framework/plugins/plugin-loader.js} +26 -10
  165. package/dist/framework/plugins/plugin-loader.js.map +1 -0
  166. package/dist/framework/plugins/plugin-registry.d.ts.map +1 -0
  167. package/dist/{plugin-registry.js → framework/plugins/plugin-registry.js} +1 -1
  168. package/dist/framework/plugins/plugin-registry.js.map +1 -0
  169. package/dist/framework/plugins/plugin-version.d.ts.map +1 -0
  170. package/dist/framework/plugins/plugin-version.js.map +1 -0
  171. package/dist/{completion.d.ts → framework/ui/completion.d.ts} +2 -2
  172. package/dist/framework/ui/completion.d.ts.map +1 -0
  173. package/dist/{completion.js → framework/ui/completion.js} +7 -9
  174. package/dist/framework/ui/completion.js.map +1 -0
  175. package/dist/framework/ui/help.d.ts.map +1 -0
  176. package/dist/{help.js → framework/ui/help.js} +4 -4
  177. package/dist/framework/ui/help.js.map +1 -0
  178. package/dist/framework/ui/prompt.d.ts +132 -0
  179. package/dist/framework/ui/prompt.d.ts.map +1 -0
  180. package/dist/framework/ui/prompt.js +298 -0
  181. package/dist/framework/ui/prompt.js.map +1 -0
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +24 -20
  184. package/dist/index.js.map +1 -1
  185. package/dist/utils/command-local/deploy-version.d.ts +21 -0
  186. package/dist/utils/command-local/deploy-version.d.ts.map +1 -0
  187. package/dist/utils/command-local/deploy-version.js +31 -0
  188. package/dist/utils/command-local/deploy-version.js.map +1 -0
  189. package/dist/{mcp-proxy-helpers.d.ts → utils/command-local/mcp-proxy-helpers.d.ts} +1 -1
  190. package/dist/utils/command-local/mcp-proxy-helpers.d.ts.map +1 -0
  191. package/dist/{mcp-proxy-helpers.js → utils/command-local/mcp-proxy-helpers.js} +1 -1
  192. package/dist/utils/command-local/mcp-proxy-helpers.js.map +1 -0
  193. package/dist/utils/command-local/open-helpers.d.ts.map +1 -0
  194. package/dist/{open-helpers.js → utils/command-local/open-helpers.js} +2 -2
  195. package/dist/utils/command-local/open-helpers.js.map +1 -0
  196. package/dist/{search-helpers.d.ts → utils/command-local/search-helpers.d.ts} +1 -1
  197. package/dist/utils/command-local/search-helpers.d.ts.map +1 -0
  198. package/dist/utils/command-local/search-helpers.js.map +1 -0
  199. package/dist/utils/command-local/watch-constants.d.ts.map +1 -0
  200. package/dist/utils/command-local/watch-constants.js.map +1 -0
  201. package/dist/utils/index.d.ts +10 -0
  202. package/dist/utils/index.d.ts.map +1 -0
  203. package/dist/utils/index.js +16 -0
  204. package/dist/utils/index.js.map +1 -0
  205. package/dist/utils/shared/date-filter.d.ts.map +1 -0
  206. package/dist/utils/shared/date-filter.js.map +1 -0
  207. package/dist/{ignore.d.ts → utils/shared/ignore.d.ts} +19 -1
  208. package/dist/utils/shared/ignore.d.ts.map +1 -0
  209. package/dist/utils/shared/ignore.js +234 -0
  210. package/dist/utils/shared/ignore.js.map +1 -0
  211. package/dist/utils/shared/resource-extensions.d.ts.map +1 -0
  212. package/dist/utils/shared/resource-extensions.js.map +1 -0
  213. package/dist/utils/shared/validation.d.ts +23 -0
  214. package/dist/utils/shared/validation.d.ts.map +1 -0
  215. package/dist/utils/shared/validation.js +43 -0
  216. package/dist/utils/shared/validation.js.map +1 -0
  217. package/dist/vendor/bpmnlint.cjs +25907 -0
  218. package/package.json +12 -14
  219. package/dist/client.d.ts.map +0 -1
  220. package/dist/client.js.map +0 -1
  221. package/dist/command-framework.d.ts.map +0 -1
  222. package/dist/command-framework.js.map +0 -1
  223. package/dist/command-registry.d.ts.map +0 -1
  224. package/dist/command-registry.js.map +0 -1
  225. package/dist/command-validation.d.ts.map +0 -1
  226. package/dist/command-validation.js.map +0 -1
  227. package/dist/commands/resource-extensions.d.ts.map +0 -1
  228. package/dist/commands/resource-extensions.js.map +0 -1
  229. package/dist/completion.d.ts.map +0 -1
  230. package/dist/completion.js.map +0 -1
  231. package/dist/config.d.ts.map +0 -1
  232. package/dist/config.js.map +0 -1
  233. package/dist/date-filter.d.ts.map +0 -1
  234. package/dist/date-filter.js.map +0 -1
  235. package/dist/default-plugins/bpmn/c8ctl-plugin.js.map +0 -1
  236. package/dist/default-plugins/bpmn/lint.js +0 -320
  237. package/dist/default-plugins/bpmn/lint.js.map +0 -1
  238. package/dist/default-plugins/element-template/c8ctl-plugin.js.map +0 -1
  239. package/dist/default-plugins/element-template/commands/apply.js +0 -336
  240. package/dist/default-plugins/element-template/commands/apply.js.map +0 -1
  241. package/dist/default-plugins/element-template/commands/get-properties.js +0 -344
  242. package/dist/default-plugins/element-template/commands/get-properties.js.map +0 -1
  243. package/dist/default-plugins/element-template/commands/get.js +0 -107
  244. package/dist/default-plugins/element-template/commands/get.js.map +0 -1
  245. package/dist/default-plugins/element-template/commands/info.js +0 -189
  246. package/dist/default-plugins/element-template/commands/info.js.map +0 -1
  247. package/dist/default-plugins/element-template/commands/search.js +0 -102
  248. package/dist/default-plugins/element-template/commands/search.js.map +0 -1
  249. package/dist/default-plugins/element-template/commands/sync.js +0 -36
  250. package/dist/default-plugins/element-template/commands/sync.js.map +0 -1
  251. package/dist/default-plugins/element-template/helpers.js +0 -429
  252. package/dist/default-plugins/element-template/helpers.js.map +0 -1
  253. package/dist/default-plugins/element-template/marketplace.js +0 -586
  254. package/dist/default-plugins/element-template/marketplace.js.map +0 -1
  255. package/dist/default-plugins/element-template/template-ref.js +0 -232
  256. package/dist/default-plugins/element-template/template-ref.js.map +0 -1
  257. package/dist/default-plugins/feel/c8ctl-plugin.js.map +0 -1
  258. package/dist/default-plugins/hello-world/README.md +0 -161
  259. package/dist/default-plugins/hello-world/c8ctl-plugin.js +0 -69
  260. package/dist/default-plugins/hello-world/package.json +0 -8
  261. package/dist/deployments.d.ts +0 -42
  262. package/dist/deployments.d.ts.map +0 -1
  263. package/dist/deployments.js.map +0 -1
  264. package/dist/errors.d.ts.map +0 -1
  265. package/dist/errors.js.map +0 -1
  266. package/dist/help.d.ts.map +0 -1
  267. package/dist/help.js.map +0 -1
  268. package/dist/ignore.d.ts.map +0 -1
  269. package/dist/ignore.js +0 -101
  270. package/dist/ignore.js.map +0 -1
  271. package/dist/logger.d.ts.map +0 -1
  272. package/dist/logger.js.map +0 -1
  273. package/dist/mcp-proxy-helpers.d.ts.map +0 -1
  274. package/dist/mcp-proxy-helpers.js.map +0 -1
  275. package/dist/open-helpers.d.ts.map +0 -1
  276. package/dist/open-helpers.js.map +0 -1
  277. package/dist/plugin-loader.d.ts.map +0 -1
  278. package/dist/plugin-loader.js.map +0 -1
  279. package/dist/plugin-registry.d.ts.map +0 -1
  280. package/dist/plugin-registry.js.map +0 -1
  281. package/dist/plugin-version.d.ts.map +0 -1
  282. package/dist/plugin-version.js.map +0 -1
  283. package/dist/runtime.d.ts.map +0 -1
  284. package/dist/runtime.js.map +0 -1
  285. package/dist/search-helpers.d.ts.map +0 -1
  286. package/dist/search-helpers.js.map +0 -1
  287. package/dist/update-check.d.ts.map +0 -1
  288. package/dist/update-check.js.map +0 -1
  289. package/dist/watch-constants.d.ts.map +0 -1
  290. package/dist/watch-constants.js.map +0 -1
  291. /package/dist/{client.d.ts → core/client.d.ts} +0 -0
  292. /package/dist/{client.js → core/client.js} +0 -0
  293. /package/dist/{errors.d.ts → core/errors.d.ts} +0 -0
  294. /package/dist/{errors.js → core/errors.js} +0 -0
  295. /package/dist/{logger.d.ts → core/logger.d.ts} +0 -0
  296. /package/dist/{logger.js → core/logger.js} +0 -0
  297. /package/dist/{runtime.d.ts → core/runtime.d.ts} +0 -0
  298. /package/dist/{update-check.d.ts → core/update-check.d.ts} +0 -0
  299. /package/dist/{update-check.js → core/update-check.js} +0 -0
  300. /package/dist/{plugin-registry.d.ts → framework/plugins/plugin-registry.d.ts} +0 -0
  301. /package/dist/{plugin-version.d.ts → framework/plugins/plugin-version.d.ts} +0 -0
  302. /package/dist/{plugin-version.js → framework/plugins/plugin-version.js} +0 -0
  303. /package/dist/{help.d.ts → framework/ui/help.d.ts} +0 -0
  304. /package/dist/{open-helpers.d.ts → utils/command-local/open-helpers.d.ts} +0 -0
  305. /package/dist/{search-helpers.js → utils/command-local/search-helpers.js} +0 -0
  306. /package/dist/{watch-constants.d.ts → utils/command-local/watch-constants.d.ts} +0 -0
  307. /package/dist/{watch-constants.js → utils/command-local/watch-constants.js} +0 -0
  308. /package/dist/{date-filter.d.ts → utils/shared/date-filter.d.ts} +0 -0
  309. /package/dist/{date-filter.js → utils/shared/date-filter.js} +0 -0
  310. /package/dist/{commands → utils/shared}/resource-extensions.d.ts +0 -0
  311. /package/dist/{commands → utils/shared}/resource-extensions.js +0 -0
@@ -1,336 +0,0 @@
1
- /**
2
- * `c8ctl element-template apply` — apply an element template to a BPMN
3
- * element via the prebuilt bpmn-js + bpmn-js-element-templates vendor bundle.
4
- */
5
- import { existsSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
6
- import { createRequire } from "node:module";
7
- import { dirname, resolve as resolvePath } from "node:path";
8
- import { fileURLToPath } from "node:url";
9
- import { applySetOverrides, findPropertiesByBindingName, installStdoutEpipeHandler, isRecord, parseArgs, parseSetArg, warnUnmetConditions, } from "../helpers.js";
10
- import { elementExistsInBpmn, getExecutionPlatformVersion, parseTemplateRef, readBpmnInput, readTemplateFromPathOrUrl, resolveOotbTemplate, } from "../template-ref.js";
11
- if (!globalThis.c8ctl)
12
- throw new Error("c8ctl runtime not initialised");
13
- const c8ctl = globalThis.c8ctl;
14
- const require = createRequire(import.meta.url);
15
- const __dirname = dirname(fileURLToPath(import.meta.url));
16
- /**
17
- * Locate the prebuilt vendor bundle. Plugins live in two places:
18
- * - dev: default-plugins/element-template/commands/apply.ts
19
- * vendor: ../../../dist/vendor/bpmn-element-templates.cjs
20
- * - production: dist/default-plugins/element-template/commands/apply.js
21
- * vendor: ../../../vendor/bpmn-element-templates.cjs
22
- */
23
- function resolveVendorBundle() {
24
- const candidates = [
25
- resolvePath(__dirname, "..", "..", "..", "dist", "vendor", "bpmn-element-templates.cjs"),
26
- resolvePath(__dirname, "..", "..", "..", "vendor", "bpmn-element-templates.cjs"),
27
- ];
28
- for (const path of candidates) {
29
- if (existsSync(path)) {
30
- return path;
31
- }
32
- }
33
- throw new Error("Vendor bundle not found. Run `npm run build:vendor` to build it.\n" +
34
- `Searched: ${candidates.join(", ")}`);
35
- }
36
- /**
37
- * Find the first child of `extensionElements` whose moddle `$type` matches.
38
- * Avoids importing bpmn-js's `is()` helper just for one shape check.
39
- */
40
- function findExtensionByType(extensionElements, type) {
41
- if (!extensionElements) {
42
- return undefined;
43
- }
44
- // biome-ignore lint/plugin: moddle API contract boundary — get() returns untyped collections
45
- const values = extensionElements.get("values");
46
- return values?.find((v) => v.$type === type);
47
- }
48
- /**
49
- * Force the source/value of each `--set` into the corresponding moddle child.
50
- *
51
- * bpmn-js-element-templates' applyTemplate preserves existing input/output/
52
- * header/property values on a re-apply (and unconditionally on Dropdown
53
- * properties — see ChangeElementTemplateHandler#shouldKeepValue, ref
54
- * bpmn-io/bpmn-js-properties-panel#767). For a CLI the user expectation is
55
- * "--set wins". After the first applyTemplate we walk the --set args, locate
56
- * the moddle entry that backs each binding, and update its value via
57
- * `modeling.updateModdleProperties` so the change goes through the same
58
- * command stack the library uses internally.
59
- *
60
- * Bindings whose moddle entry doesn't exist yet (because their condition was
61
- * not met against the pre-apply element state) are skipped here and picked
62
- * up by the second applyTemplate, which re-evaluates conditions against the
63
- * now-updated element and creates the missing entries using our mutated
64
- * `prop.value` as the default.
65
- */
66
- function forceSetValues(modeler, element, template, setArgs) {
67
- const modeling = modeler.get("modeling");
68
- // biome-ignore lint/plugin: moddle API contract boundary — get() returns untyped ModdleElement
69
- const extensionElements = element.businessObject.get("extensionElements");
70
- if (!extensionElements) {
71
- return;
72
- }
73
- const ioMapping = findExtensionByType(extensionElements, "zeebe:IoMapping");
74
- const taskHeaders = findExtensionByType(extensionElements, "zeebe:TaskHeaders");
75
- const taskDefinition = findExtensionByType(extensionElements, "zeebe:TaskDefinition");
76
- const zeebeProperties = findExtensionByType(extensionElements, "zeebe:Properties");
77
- for (const arg of setArgs) {
78
- const { bindingTypeFilter, name, value } = parseSetArg(arg);
79
- const matches = findPropertiesByBindingName(template.properties, name, bindingTypeFilter);
80
- for (const prop of matches) {
81
- updateModdleForProperty(modeling, element, prop, value, {
82
- ioMapping,
83
- taskHeaders,
84
- taskDefinition,
85
- zeebeProperties,
86
- });
87
- }
88
- }
89
- }
90
- function updateModdleForProperty(modeling, element, prop, value, containers) {
91
- const binding = prop.binding;
92
- if (!binding) {
93
- return;
94
- }
95
- switch (binding.type) {
96
- case "zeebe:input": {
97
- // biome-ignore lint/plugin: moddle API contract boundary — get() returns untyped collections
98
- const inputs = (containers.ioMapping?.get("inputParameters") ??
99
- []);
100
- const child = inputs.find((p) => p.target === binding.name);
101
- if (child) {
102
- modeling.updateModdleProperties(element, child, { source: value });
103
- }
104
- return;
105
- }
106
- case "zeebe:output": {
107
- // biome-ignore lint/plugin: moddle API contract boundary — get() returns untyped collections
108
- const outputs = (containers.ioMapping?.get("outputParameters") ??
109
- []);
110
- const child = outputs.find((p) => p.source === binding.source);
111
- if (child) {
112
- modeling.updateModdleProperties(element, child, { target: value });
113
- }
114
- return;
115
- }
116
- case "zeebe:taskHeader": {
117
- // biome-ignore lint/plugin: moddle API contract boundary — get() returns untyped collections
118
- const headers = (containers.taskHeaders?.get("values") ??
119
- []);
120
- const child = headers.find((h) => h.key === binding.key);
121
- if (child) {
122
- modeling.updateModdleProperties(element, child, { value });
123
- }
124
- return;
125
- }
126
- case "zeebe:property": {
127
- // biome-ignore lint/plugin: moddle API contract boundary — get() returns untyped collections
128
- const props = (containers.zeebeProperties?.get("properties") ??
129
- []);
130
- const child = props.find((p) => p.name === binding.name);
131
- if (child) {
132
- modeling.updateModdleProperties(element, child, { value });
133
- }
134
- return;
135
- }
136
- case "zeebe:taskDefinition": {
137
- if (containers.taskDefinition && binding.property) {
138
- modeling.updateModdleProperties(element, containers.taskDefinition, {
139
- [binding.property]: value,
140
- });
141
- }
142
- return;
143
- }
144
- }
145
- }
146
- /**
147
- * Apply an element template to a BPMN element using bpmn-js-headless and
148
- * bpmn-js-element-templates (same libraries as Web/Desktop Modeler).
149
- *
150
- * Loaded from a prebuilt CJS vendor bundle since the upstream libraries
151
- * use extensionless ESM imports that Node.js can't resolve without a bundler.
152
- *
153
- * Pass `setArgs` to honor `--set` overrides on re-apply. The first
154
- * applyTemplate uses the (already-mutated) template defaults for fresh
155
- * properties; `forceSetValues` then overrides preserved values; a second
156
- * applyTemplate picks up dependents whose conditions just became met.
157
- */
158
- async function applyElementTemplate(xml, template, elementId, setArgs) {
159
- const vendorPath = resolveVendorBundle();
160
- const vendor = require(vendorPath);
161
- const { Modeler, CloudElementTemplatesCoreModule, ZeebeModdleExtension, HeadlessTextRendererModule, } = vendor;
162
- // HeadlessTextRendererModule overrides bpmn-js's default textRenderer,
163
- // which would otherwise call document.createElementNS during importXML
164
- // (to measure external label bounds) and throw "document is not defined"
165
- // in Node. The errors are non-fatal but produce noisy stack traces.
166
- const modeler = new Modeler({
167
- additionalModules: [
168
- HeadlessTextRendererModule,
169
- CloudElementTemplatesCoreModule,
170
- ],
171
- moddleExtensions: { zeebe: ZeebeModdleExtension },
172
- });
173
- await modeler.importXML(xml);
174
- const elementRegistry = modeler.get("elementRegistry");
175
- const element = elementRegistry.get(elementId);
176
- if (!element) {
177
- throw new Error(`Element "${elementId}" not found in the BPMN diagram`);
178
- }
179
- const elementTemplates = modeler.get("elementTemplates");
180
- elementTemplates.set([template]);
181
- elementTemplates.applyTemplate(element, template);
182
- if (setArgs.length > 0) {
183
- forceSetValues(modeler, element, template, setArgs);
184
- // Second pass so dependents whose conditions are newly met get
185
- // created with our mutated defaults.
186
- elementTemplates.applyTemplate(element, template);
187
- }
188
- const result = await modeler.saveXML({ format: true });
189
- return result.xml;
190
- }
191
- export async function applySubcommand(args) {
192
- const logger = c8ctl.getLogger();
193
- // applySubcommand writes BPMN XML to stdout in the non-in-place path;
194
- // install the EPIPE handler before any downstream `head -c N` or
195
- // `| less` can sever the pipe.
196
- installStdoutEpipeHandler();
197
- const parsed = parseArgs(args);
198
- if (parsed.error) {
199
- throw new Error(parsed.error);
200
- }
201
- const [templateArg, elementId, bpmnFilePath] = parsed.positionals;
202
- if (parsed.positionals.length > 3) {
203
- throw new Error(`Unexpected argument: ${parsed.positionals[3]}. Usage: c8ctl element-template apply <template> <element-id> [<file.bpmn>]`);
204
- }
205
- if (!templateArg) {
206
- throw new Error("Missing template argument. Usage: c8ctl element-template apply <template> <element-id> [<file.bpmn>]");
207
- }
208
- if (!elementId) {
209
- throw new Error("Missing element-id argument. Usage: c8ctl element-template apply <template> <element-id> [<file.bpmn>]");
210
- }
211
- // Reject incompatible flag combinations before reading stdin —
212
- // otherwise a piped BPMN stream is consumed (and a long-running
213
- // producer can hang) just to surface a usage error.
214
- if (parsed.inPlace && !bpmnFilePath) {
215
- throw new Error("--in-place cannot be used with stdin input");
216
- }
217
- const input = await readBpmnInput(bpmnFilePath);
218
- if (!input) {
219
- throw new Error("No BPMN input provided. Pass a file path or pipe BPMN XML via stdin.");
220
- }
221
- const ref = parseTemplateRef(templateArg);
222
- if (!ref) {
223
- throw new Error("Missing template argument.");
224
- }
225
- let template;
226
- if (ref.kind === "id") {
227
- const executionPlatformVersion = await getExecutionPlatformVersion(input.xml);
228
- template = await resolveOotbTemplate(ref, { executionPlatformVersion });
229
- if (ref.version === undefined && !executionPlatformVersion) {
230
- logger.warn("BPMN has no modeler:executionPlatformVersion — applying latest version " +
231
- `(${template.version}) of ${ref.id}.`);
232
- }
233
- }
234
- else {
235
- template = await readTemplateFromPathOrUrl(ref.value);
236
- }
237
- // Validate --set overrides against the template before dry-run or real apply,
238
- // so `--dry-run --set notAProperty=x` fails just as the real apply would.
239
- let setProperties = [];
240
- if (parsed.setArgs.length > 0) {
241
- setProperties = applySetOverrides(template.properties, parsed.setArgs);
242
- }
243
- // Dry-run: describe what would happen without mutating anything
244
- if (c8ctl.dryRun) {
245
- // Validate the target element exists so dry-run only reports a successful
246
- // plan when the real apply would also succeed.
247
- if (!(await elementExistsInBpmn(input.xml, elementId))) {
248
- throw new Error(`Element "${elementId}" not found in the BPMN diagram`);
249
- }
250
- const fallbackId = ref.kind === "id" ? ref.id : ref.value;
251
- const info = {
252
- dryRun: true,
253
- command: "element-template apply",
254
- template: {
255
- id: template.id ?? fallbackId,
256
- name: template.name,
257
- version: template.version,
258
- },
259
- elementId,
260
- source: input.source,
261
- inPlace: parsed.inPlace && !!bpmnFilePath,
262
- setOverrides: parsed.setArgs,
263
- };
264
- if (c8ctl.outputMode === "json") {
265
- logger.json(info);
266
- }
267
- else {
268
- logger.output("Dry run — no changes applied.");
269
- logger.output(` Template: ${info.template.name ?? info.template.id}${info.template.version != null ? ` v${info.template.version}` : ""}`);
270
- logger.output(` Element: ${elementId}`);
271
- logger.output(` Source: ${input.source}`);
272
- if (info.inPlace) {
273
- logger.output(` Mode: in-place (would overwrite ${bpmnFilePath})`);
274
- }
275
- else {
276
- logger.output(" Mode: stdout (would print transformed XML)");
277
- }
278
- if (parsed.setArgs.length > 0) {
279
- logger.output(` --set: ${parsed.setArgs.join(", ")}`);
280
- }
281
- }
282
- return;
283
- }
284
- let resultXml;
285
- try {
286
- resultXml = await applyElementTemplate(input.xml, template, elementId, parsed.setArgs);
287
- }
288
- catch (error) {
289
- const message = error instanceof Error ? error.message : String(error);
290
- throw new Error(`Error applying template: ${message}`);
291
- }
292
- if (setProperties.length > 0) {
293
- warnUnmetConditions(logger, resultXml, setProperties);
294
- }
295
- if (parsed.inPlace && bpmnFilePath) {
296
- atomicOverwriteFile(bpmnFilePath, resultXml);
297
- logger.info(`Updated ${bpmnFilePath}`);
298
- return;
299
- }
300
- process.stdout.write(resultXml);
301
- }
302
- /**
303
- * Overwrite `targetPath` atomically: write to a sibling temp file in
304
- * the same directory, then `renameSync` over the target. POSIX
305
- * `rename` is atomic on the same filesystem, so a kill mid-write
306
- * never destroys the user's BPMN file.
307
- *
308
- * Falls back to a direct `writeFileSync` if the rename fails with
309
- * EXDEV (cross-device link) — vanishingly rare for a file's own
310
- * sibling, but covers exotic setups like FUSE mounts.
311
- */
312
- function atomicOverwriteFile(targetPath, contents) {
313
- const target = resolvePath(targetPath);
314
- const tmp = `${target}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
315
- try {
316
- writeFileSync(tmp, contents, "utf-8");
317
- renameSync(tmp, target);
318
- }
319
- catch (error) {
320
- try {
321
- unlinkSync(tmp);
322
- }
323
- catch {
324
- // Best-effort cleanup — the original error is what matters.
325
- }
326
- const code = isRecord(error) && typeof error.code === "string"
327
- ? error.code
328
- : undefined;
329
- if (code === "EXDEV") {
330
- writeFileSync(target, contents, "utf-8");
331
- return;
332
- }
333
- throw error;
334
- }
335
- }
336
- //# sourceMappingURL=apply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../default-plugins/element-template/commands/apply.ts"],"names":[],"mappings":"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"}