@uipath/packager-tool-bpmn 1.201.0-preview.115 → 1.201.0-preview.121

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.
@@ -16,6 +16,74 @@ export declare class BpmnTool extends ProjectTool {
16
16
  * Copy all files from source path to content folder
17
17
  */
18
18
  private copyFiles;
19
+ /**
20
+ * Regenerate `entry-points.json` and `bindings_v2.json` in the staging
21
+ * content folder from the BPMN model.
22
+ *
23
+ * `package-descriptor.json` declares both files unconditionally, but they
24
+ * only reached the package if the project source already carried them —
25
+ * which depends on who authored it. A Studio Web `.uis` export omits both
26
+ * for ProcessOrchestration, so those packages were rejected by the Solution
27
+ * Feed every time (`1203`, or `1205` for the missing entry point) while
28
+ * `uip solution pack` still reported success (cli#3299).
29
+ *
30
+ * Regenerating unconditionally — rather than only filling gaps — matches
31
+ * `packager-tool-flow` and `uip maestro refresh`, and is safe here because
32
+ * entry-point identity is read from the BPMN and never minted:
33
+ * `<bpmn:startEvent id>` supplies the filePath fragment and
34
+ * `<uipath:entryPointId value>` the `uniqueId`. So a stale copy on disk
35
+ * cannot ship, and repacking the same source is idempotent. Author-owned
36
+ * detail survives: `buildBpmnPackageMetadata` merges existing JSON-schema
37
+ * annotations, and `buildConnectionResources` preserves resource entries it
38
+ * does not manage.
39
+ *
40
+ * Writes into `contentFolder` (the staging copy), never back into the
41
+ * user's project.
42
+ *
43
+ * Additive by design: when the model yields no entry point the project's own
44
+ * artifacts are left exactly as they were. `validateAsync` accepts a
45
+ * `<bpmn:startEvent>` without a `uipath:entryPointId` (a subprocess-only or
46
+ * event-triggered process is a legitimate shape), so deriving is an
47
+ * improvement where it is possible rather than a new gate — failing here
48
+ * would reject projects that pack today on something validation permits.
49
+ * Declining to derive is not the same as fabricating: an entry-point id is
50
+ * never minted, because a wrong one deploys clean and faults at run time.
51
+ */
52
+ private generateBpmnPackagingArtifacts;
53
+ /**
54
+ * Derive and write the artifacts. Returns `undefined` on success, or a
55
+ * human-readable reason why derivation was not possible — the caller decides
56
+ * whether that is fatal.
57
+ */
58
+ private deriveBpmnArtifacts;
59
+ /**
60
+ * Decide which BPMN model the artifacts are derived from.
61
+ *
62
+ * `project.uiproj` declares the answer in `MainFile`, so it decides. A
63
+ * directory listing must not: `readdir` order is filesystem-dependent, and
64
+ * a project may legitimately hold several models — a called subprocess, or a
65
+ * second process kept alongside the main one. Deriving from the wrong one
66
+ * mints entry points for a process nobody invokes, which publishes cleanly
67
+ * and then faults at run time, so an ambiguous project is declined instead
68
+ * of guessed.
69
+ *
70
+ * `MainFile` is absent from hand-authored and older projects, so a lone
71
+ * `.bpmn` file still resolves without it — that is unambiguous by itself.
72
+ *
73
+ * Returns the file name, or the reason no single model could be identified.
74
+ */
75
+ private selectBpmnFile;
76
+ /**
77
+ * `MainFile` from the staged `project.uiproj`, or `undefined` when the
78
+ * project does not declare one.
79
+ */
80
+ private readMainFile;
81
+ /**
82
+ * Read the artifacts already staged in content/, so regeneration can carry
83
+ * forward author-owned detail. Absent or unparseable files are treated as
84
+ * absent — the model is the source of truth.
85
+ */
86
+ private readExistingArtifacts;
19
87
  /**
20
88
  * Create operate.json file if it doesn't already exist
21
89
  */